From 0eb44edd8acb059439bfa51f58723e25926a6b7f Mon Sep 17 00:00:00 2001 From: stephenlucerne <48700284+stephenlucerne@users.noreply.github.com> Date: Fri, 13 May 2022 19:51:33 +1000 Subject: [PATCH] Update README.md 2023.5.hotfix --- Documentation.meta | 8 + Documentation/FONT_EULA.pdf | Bin 0 -> 1390098 bytes Documentation/FONT_EULA.pdf.meta | 7 + Documentation/Full_Documentation.pdf | Bin 0 -> 1098441 bytes Documentation/Full_Documentation.pdf.meta | 7 + Documentation/LICENSE.md | 21 + Documentation/LICENSE.md.meta | 7 + Documentation/UPGRADING.md | 356 + Documentation/UPGRADING.md.meta | 7 + Editor.meta | 8 + Editor/ModIO.EditorCode.meta | 8 + Editor/ModIO.EditorCode/EditorMenu.cs | 77 + Editor/ModIO.EditorCode/EditorMenu.cs.meta | 11 + .../ModIO.EditorCode/SettingsAssetEditor.cs | 90 + .../SettingsAssetEditor.cs.meta | 11 + English.txt | 576 + English.txt.meta | 7 + Platform.meta | 8 + Platform/Editor.meta | 8 + .../Editor/ModIO.Implementation.Platform.meta | 8 + .../EditorDataService.cs | 179 + .../EditorDataService.cs.meta | 11 + .../PlatformConfiguration_Editor.cs | 50 + .../PlatformConfiguration_Editor.cs.meta | 11 + Platform/SystemIO.meta | 8 + .../ModIO.Implementation.Platform.meta | 8 + .../PlatformConfiguration_SystemIO.cs | 60 + .../PlatformConfiguration_SystemIO.cs.meta | 11 + .../SettingsAsset_Android.cs | 21 + .../SettingsAsset_Android.cs.meta | 11 + .../SettingsAsset_Standalone.cs | 21 + .../SettingsAsset_Standalone.cs.meta | 11 + .../SettingsAsset_iOS.cs | 21 + .../SettingsAsset_iOS.cs.meta | 11 + .../SystemIODataService.cs | 281 + .../SystemIODataService.cs.meta | 11 + README.md | 274 + README.md.meta | 7 + Runtime.meta | 8 + Runtime/Classes.meta | 8 + Runtime/Classes/CreationToken.cs | 15 + Runtime/Classes/CreationToken.cs.meta | 11 + Runtime/Classes/ModIoWebRequest.cs | 20 + Runtime/Classes/ModIoWebRequest.cs.meta | 11 + Runtime/Classes/ModProfileDetails.cs | 117 + Runtime/Classes/ModProfileDetails.cs.meta | 11 + Runtime/Classes/ModfileDetails.cs | 33 + Runtime/Classes/ModfileDetails.cs.meta | 11 + Runtime/Classes/ProgressHandle.cs | 51 + Runtime/Classes/ProgressHandle.cs.meta | 11 + Runtime/Classes/Report.cs | 50 + Runtime/Classes/Report.cs.meta | 11 + Runtime/Classes/ResultAnd.cs | 9 + Runtime/Classes/ResultAnd.cs.meta | 11 + Runtime/Classes/SearchFilter.cs | 142 + Runtime/Classes/SearchFilter.cs.meta | 11 + Runtime/Delegates.meta | 8 + Runtime/Delegates/LogMessageDelegate.cs | 6 + Runtime/Delegates/LogMessageDelegate.cs.meta | 11 + .../Delegates/ModManagementEventDelegate.cs | 8 + .../ModManagementEventDelegate.cs.meta | 11 + Runtime/Enums.meta | 8 + .../Enums/AuthenticationServiceProvider.cs | 101 + .../AuthenticationServiceProvider.cs.meta | 11 + Runtime/Enums/AvatarSize.cs | 9 + Runtime/Enums/AvatarSize.cs.meta | 11 + Runtime/Enums/CommunityOptions.cs | 9 + Runtime/Enums/CommunityOptions.cs.meta | 3 + Runtime/Enums/ContentWarnings.cs | 13 + Runtime/Enums/ContentWarnings.cs.meta | 11 + Runtime/Enums/LogLevel.cs | 15 + Runtime/Enums/LogLevel.cs.meta | 11 + Runtime/Enums/ModManagementEventType.cs | 19 + Runtime/Enums/ModManagementEventType.cs.meta | 11 + Runtime/Enums/ModManagementOperationType.cs | 14 + .../Enums/ModManagementOperationType.cs.meta | 11 + Runtime/Enums/ModRating.cs | 9 + Runtime/Enums/ModRating.cs.meta | 11 + Runtime/Enums/ModStatus.cs | 9 + Runtime/Enums/ModStatus.cs.meta | 11 + Runtime/Enums/OculusDevice.cs | 8 + Runtime/Enums/OculusDevice.cs.meta | 11 + Runtime/Enums/PlayStationEnvironment.cs | 9 + Runtime/Enums/PlayStationEnvironment.cs.meta | 11 + Runtime/Enums/ReportType.cs | 14 + Runtime/Enums/ReportType.cs.meta | 11 + Runtime/Enums/SortModsBy.cs | 20 + Runtime/Enums/SortModsBy.cs.meta | 11 + Runtime/Enums/SubscribedModStatus.cs | 22 + Runtime/Enums/SubscribedModStatus.cs.meta | 11 + Runtime/Enums/UserPortal.cs | 23 + Runtime/Enums/UserPortal.cs.meta | 11 + Runtime/Interfaces.meta | 8 + Runtime/Interfaces/IModIoWebRequest.cs | 12 + Runtime/Interfaces/IModIoWebRequest.cs.meta | 11 + Runtime/ModIO.Implementation.meta | 8 + Runtime/ModIO.Implementation/Classes.meta | 8 + .../Classes/CompressOperationBase.cs | 85 + .../Classes/CompressOperationBase.cs.meta | 11 + .../Classes/CompressOperationDirectory.cs | 93 + .../CompressOperationDirectory.cs.meta | 11 + .../Classes/CompressOperationMultiple.cs | 60 + .../Classes/CompressOperationMultiple.cs.meta | 11 + .../Classes/ExtractOperation.cs | 190 + .../Classes/ExtractOperation.cs.meta | 11 + .../Classes/FileStreamXXX.cs | 774 + .../Classes/FileStreamXXX.cs.meta | 11 + .../ModIO.Implementation/Classes/LogToPC.cs | 127 + .../Classes/LogToPC.cs.meta | 11 + .../ModIO.Implementation/Classes/Logger.cs | 96 + .../Classes/Logger.cs.meta | 11 + .../Classes/ModCollectionEntry.cs | 13 + .../Classes/ModCollectionEntry.cs.meta | 11 + .../Classes/ModCollectionManager.cs | 954 + .../Classes/ModCollectionManager.cs.meta | 11 + .../Classes/ModCollectionRegistry.cs | 17 + .../Classes/ModCollectionRegistry.cs.meta | 11 + .../Classes/ModIOUnityImplementation.cs | 2318 +++ .../Classes/ModIOUnityImplementation.cs.meta | 11 + .../Classes/ModIOVersion.cs | 105 + .../Classes/ModIOVersion.cs.meta | 11 + .../Classes/ModIdConverter.cs | 40 + .../Classes/ModIdConverter.cs.meta | 11 + .../Classes/ModManagement.cs | 970 + .../Classes/ModManagement.cs.meta | 11 + .../Classes/ModManagementJob.cs | 18 + .../Classes/ModManagementJob.cs.meta | 11 + .../Classes/OpenCallbacks.cs | 95 + .../Classes/OpenCallbacks.cs.meta | 11 + .../ModIO.Implementation/Classes/ResultAnd.cs | 23 + .../Classes/ResultAnd.cs.meta | 11 + .../Classes/ResultBuilder.cs | 18 + .../Classes/ResultBuilder.cs.meta | 11 + .../Classes/ResultCode.cs | 514 + .../Classes/ResultCode.cs.meta | 11 + .../ModIO.Implementation/Classes/Settings.cs | 12 + .../Classes/Settings.cs.meta | 11 + .../Classes/SettingsAsset.cs | 81 + .../Classes/SettingsAsset.cs.meta | 11 + .../Classes/TaskExtensions.cs | 26 + .../Classes/TaskExtensions.cs.meta | 11 + .../Classes/TaskPriority.cs | 8 + .../Classes/TaskPriority.cs.meta | 11 + .../Classes/TaskQueueRunner.cs | 258 + .../Classes/TaskQueueRunner.cs.meta | 11 + .../Classes/TaskQueueRunnerResult.cs | 86 + .../Classes/TaskQueueRunnerResult.cs.meta | 11 + .../Classes/UnityDispatcher.cs | 48 + .../Classes/UnityDispatcher.cs.meta | 11 + .../ModIO.Implementation/Classes/UserData.cs | 79 + .../Classes/UserData.cs.meta | 11 + .../Classes/UserModCollectionData.cs | 13 + .../Classes/UserModCollectionData.cs.meta | 11 + Runtime/ModIO.Implementation/Enums.meta | 8 + .../ModIO.Implementation/Enums/LogPrefix.cs | 14 + .../Enums/LogPrefix.cs.meta | 11 + .../Enums/ReportResourceType.cs | 9 + .../Enums/ReportResourceType.cs.meta | 11 + .../Implementation.API.meta | 8 + .../Implementation.API/Classes.meta | 8 + .../Classes/BinaryDataContainer.cs | 15 + .../Classes/BinaryDataContainer.cs.meta | 11 + .../Classes/CacheSizeStream.cs | 76 + .../Classes/CacheSizeStream.cs.meta | 11 + .../Classes/RequestHandle.cs | 12 + .../Classes/RequestHandle.cs.meta | 11 + .../Classes/ResponseCache.cs | 638 + .../Classes/ResponseCache.cs.meta | 11 + .../Classes/ResponseTranslator.cs | 346 + .../Classes/ResponseTranslator.cs.meta | 11 + .../Classes/ServerConstants.cs | 96 + .../Classes/ServerConstants.cs.meta | 11 + .../Classes/StreamUploadContainer.cs | 17 + .../Classes/StreamUploadContainer.cs.meta | 11 + .../Classes/UnityMainThreadDispatcher.cs | 138 + .../Classes/UnityMainThreadDispatcher.cs.meta | 11 + .../Classes/WebRequestConfig.cs | 40 + .../Classes/WebRequestConfig.cs.meta | 11 + .../Classes/WebRequestManager.cs | 105 + .../Classes/WebRequestManager.cs.meta | 11 + .../Classes/WebRequestRunner.cs | 694 + .../Classes/WebRequestRunner.cs.meta | 11 + .../Implementation.API/Enums.meta | 8 + .../Enums/ResponseCodeType.cs | 12 + .../Enums/ResponseCodeType.cs.meta | 11 + .../Enums/WebRequestMethodType.cs | 10 + .../Enums/WebRequestMethodType.cs.meta | 11 + .../Enums/WebRequestResponseType.cs | 9 + .../Enums/WebRequestResponseType.cs.meta | 11 + .../Implementation.API.Objects.meta | 8 + .../AccessTokenObject.cs | 10 + .../AccessTokenObject.cs.meta | 11 + .../AotTypeEnforcer.cs | 52 + .../AotTypeEnforcer.cs.meta | 11 + .../AvatarObject.cs | 11 + .../AvatarObject.cs.meta | 11 + .../DownloadObject.cs | 10 + .../DownloadObject.cs.meta | 11 + .../Implementation.API.Objects/Error.cs | 14 + .../Implementation.API.Objects/Error.cs.meta | 11 + .../Implementation.API.Objects/ErrorObject.cs | 8 + .../ErrorObject.cs.meta | 11 + .../FilehashObject.cs | 9 + .../FilehashObject.cs.meta | 11 + .../GameTagOptionObject.cs | 15 + .../GameTagOptionObject.cs.meta | 11 + .../Implementation.API.Objects/ImageObject.cs | 10 + .../ImageObject.cs.meta | 11 + .../Implementation.API.Objects/LogoObject.cs | 12 + .../LogoObject.cs.meta | 11 + .../MessageObject.cs | 9 + .../MessageObject.cs.meta | 11 + .../MetadataKVPObject.cs | 9 + .../MetadataKVPObject.cs.meta | 11 + .../ModEventObject.cs | 13 + .../ModEventObject.cs.meta | 11 + .../ModMediaObject.cs | 10 + .../ModMediaObject.cs.meta | 11 + .../Implementation.API.Objects/ModObject.cs | 31 + .../ModObject.cs.meta | 11 + .../ModStatsObject.cs | 20 + .../ModStatsObject.cs.meta | 11 + .../ModTagObject.cs | 9 + .../ModTagObject.cs.meta | 11 + .../ModfileObject.cs | 21 + .../ModfileObject.cs.meta | 11 + .../TermsButtonObject.cs | 9 + .../TermsButtonObject.cs.meta | 11 + .../TermsButtonOptionObject.cs | 9 + .../TermsButtonOptionObject.cs.meta | 11 + .../TermsLinkObject.cs | 11 + .../TermsLinkObject.cs.meta | 11 + .../TermsLinksObject.cs | 10 + .../TermsLinksObject.cs.meta | 11 + .../Implementation.API.Objects/TermsObject.cs | 11 + .../TermsObject.cs.meta | 11 + .../UserEventObject.cs | 13 + .../UserEventObject.cs.meta | 11 + .../Implementation.API.Objects/UserObject.cs | 16 + .../UserObject.cs.meta | 11 + .../Implementation.API.Requests.meta | 8 + .../Implementation.API.Requests/AddMod.cs | 47 + .../AddMod.cs.meta | 11 + .../AddModMedia.cs | 42 + .../AddModMedia.cs.meta | 11 + .../AddModRating.cs | 20 + .../AddModRating.cs.meta | 11 + .../Implementation.API.Requests/AddModTags.cs | 40 + .../AddModTags.cs.meta | 11 + .../Implementation.API.Requests/AddModfile.cs | 31 + .../AddModfile.cs.meta | 11 + .../AuthenticateUser.cs | 59 + .../AuthenticateUser.cs.meta | 11 + .../AuthenticateViaEmail.cs | 19 + .../AuthenticateViaEmail.cs.meta | 11 + .../Implementation.API.Requests/DeleteMod.cs | 19 + .../DeleteMod.cs.meta | 11 + .../DeleteModTags.cs | 26 + .../DeleteModTags.cs.meta | 11 + .../Implementation.API.Requests/EditMod.cs | 56 + .../EditMod.cs.meta | 11 + .../Implementation.API.Requests/Filtering.cs | 25 + .../Filtering.cs.meta | 11 + .../GetAuthenticatedUser.cs | 18 + .../GetAuthenticatedUser.cs.meta | 11 + .../GetCurrentUserCreations.cs | 31 + .../GetCurrentUserCreations.cs.meta | 11 + .../GetCurrentUserRatings.cs | 24 + .../GetCurrentUserRatings.cs.meta | 11 + .../GetGameTags.cs | 24 + .../GetGameTags.cs.meta | 11 + .../Implementation.API.Requests/GetMod.cs | 18 + .../GetMod.cs.meta | 11 + .../GetModDependencies.cs | 37 + .../GetModDependencies.cs.meta | 11 + .../GetModEvents.cs | 29 + .../GetModEvents.cs.meta | 11 + .../Implementation.API.Requests/GetMods.cs | 39 + .../GetMods.cs.meta | 11 + .../Implementation.API.Requests/GetTerms.cs | 19 + .../GetTerms.cs.meta | 11 + .../GetUserEvents.cs | 29 + .../GetUserEvents.cs.meta | 11 + .../GetUserSubscriptions.cs | 26 + .../GetUserSubscriptions.cs.meta | 11 + .../PaginatedResponse.cs | 17 + .../PaginatedResponse.cs.meta | 11 + .../Implementation.API.Requests/Report.cs | 24 + .../Report.cs.meta | 11 + .../SubscribeToMod.cs | 19 + .../SubscribeToMod.cs.meta | 11 + .../UnsubscribeFromMod.cs | 20 + .../UnsubscribeFromMod.cs.meta | 11 + .../Implementation.API.Requests/UserMute.cs | 20 + .../UserMute.cs.meta | 11 + .../Implementation.API.Requests/UserUnmute.cs | 16 + .../UserUnmute.cs.meta | 11 + .../Implementation.Platform.meta | 8 + .../Implementation.Platform/Classes.meta | 8 + .../Classes/FileStreamWrapper.cs | 902 + .../Classes/FileStreamWrapper.cs.meta | 11 + .../Classes/PlatformConfiguration.cs | 41 + .../Classes/PlatformConfiguration.cs.meta | 11 + .../Classes/SystemIOWrapper.cs | 847 + .../Classes/SystemIOWrapper.cs.meta | 11 + .../Implementation.Platform/Interfaces.meta | 8 + .../Interfaces/IDataService.cs | 61 + .../Interfaces/IDataService.cs.meta | 11 + .../Interfaces/IPersistentDataService.cs | 10 + .../Interfaces/IPersistentDataService.cs.meta | 11 + .../Interfaces/ITempDataService.cs | 10 + .../Interfaces/ITempDataService.cs.meta | 11 + .../Interfaces/IUserDataService.cs | 11 + .../Interfaces/IUserDataService.cs.meta | 11 + .../Interfaces/ModIOFileStream.cs | 16 + .../Interfaces/ModIOFileStream.cs.meta | 11 + Runtime/ModIO.Implementation/Interfaces.meta | 8 + .../Interfaces/IModIOZipOperation.cs | 11 + .../Interfaces/IModIOZipOperation.cs.meta | 11 + Runtime/ModIO.Implementation/Statics.meta | 8 + .../Statics/DataStorage.cs | 551 + .../Statics/DataStorage.cs.meta | 11 + .../Statics/FilterUtil.cs | 86 + .../Statics/FilterUtil.cs.meta | 11 + .../ModIO.Implementation/Statics/IOUtil.cs | 205 + .../Statics/IOUtil.cs.meta | 11 + .../TestAssemblyHelper.cs | 3 + .../TestAssemblyHelper.cs.meta | 11 + Runtime/ModIOUnity.cs | 2140 +++ Runtime/ModIOUnity.cs.meta | 11 + Runtime/ModIOUnityAsync.cs | 1425 ++ Runtime/ModIOUnityAsync.cs.meta | 11 + Runtime/Structs.meta | 8 + Runtime/Structs/BuildSettings.cs | 32 + Runtime/Structs/BuildSettings.cs.meta | 11 + Runtime/Structs/DownloadReference.cs | 28 + Runtime/Structs/DownloadReference.cs.meta | 11 + Runtime/Structs/InstalledMod.cs | 62 + Runtime/Structs/InstalledMod.cs.meta | 11 + Runtime/Structs/InstalledModExtensions.cs | 26 + .../Structs/InstalledModExtensions.cs.meta | 11 + Runtime/Structs/ModDependencies.cs | 18 + Runtime/Structs/ModDependencies.cs.meta | 11 + Runtime/Structs/ModDependenciesObject.cs | 18 + Runtime/Structs/ModDependenciesObject.cs.meta | 11 + Runtime/Structs/ModID.cs | 31 + Runtime/Structs/ModID.cs.meta | 11 + Runtime/Structs/ModPage.cs | 31 + Runtime/Structs/ModPage.cs.meta | 11 + Runtime/Structs/ModProfile.cs | 68 + Runtime/Structs/ModProfile.cs.meta | 11 + Runtime/Structs/ModStats.cs | 22 + Runtime/Structs/ModStats.cs.meta | 11 + Runtime/Structs/Rating.cs | 18 + Runtime/Structs/Rating.cs.meta | 11 + Runtime/Structs/RatingObject.cs | 16 + Runtime/Structs/RatingObject.cs.meta | 11 + Runtime/Structs/Result.cs | 88 + Runtime/Structs/Result.cs.meta | 11 + Runtime/Structs/ServerSettings.cs | 41 + Runtime/Structs/ServerSettings.cs.meta | 11 + Runtime/Structs/SubscribedMod.cs | 26 + Runtime/Structs/SubscribedMod.cs.meta | 11 + Runtime/Structs/Tag.cs | 16 + Runtime/Structs/Tag.cs.meta | 11 + Runtime/Structs/TagCategory.cs | 19 + Runtime/Structs/TagCategory.cs.meta | 11 + Runtime/Structs/TermsHash.cs | 18 + Runtime/Structs/TermsHash.cs.meta | 11 + Runtime/Structs/TermsOfUse.cs | 25 + Runtime/Structs/TermsOfUse.cs.meta | 11 + Runtime/Structs/TermsOfUseLink.cs | 16 + Runtime/Structs/TermsOfUseLink.cs.meta | 11 + Runtime/Structs/UserInstalledMod.cs | 54 + Runtime/Structs/UserInstalledMod.cs.meta | 11 + Runtime/Structs/UserProfile.cs | 32 + Runtime/Structs/UserProfile.cs.meta | 11 + Runtime/Utility.meta | 8 + Runtime/Utility/CoroutineRunner.cs | 11 + Runtime/Utility/CoroutineRunner.cs.meta | 11 + Runtime/Utility/MonoDispatcher.cs | 81 + Runtime/Utility/MonoDispatcher.cs.meta | 11 + Runtime/Utility/MonoSingleton.cs | 55 + Runtime/Utility/MonoSingleton.cs.meta | 11 + Runtime/Utility/Mutex.cs | 9 + Runtime/Utility/Mutex.cs.meta | 11 + Runtime/Utility/PrefabPool.cs | 75 + Runtime/Utility/PrefabPool.cs.meta | 11 + .../Utility/SelfInstancingMonoSingleton.cs | 68 + .../SelfInstancingMonoSingleton.cs.meta | 11 + Runtime/Utility/SimpleMessageHub.cs | 112 + Runtime/Utility/SimpleMessageHub.cs.meta | 11 + Runtime/Utility/SimpleMessageHubTester.cs | 45 + .../Utility/SimpleMessageHubTester.cs.meta | 11 + .../Utility/SimpleMessageUnsubscribeToken.cs | 18 + .../SimpleMessageUnsubscribeToken.cs.meta | 11 + Runtime/Utility/SimpleSingleton.cs | 30 + Runtime/Utility/SimpleSingleton.cs.meta | 11 + Runtime/Utility/Utility.cs | 163 + Runtime/Utility/Utility.cs.meta | 11 + Swedish.txt | 577 + Swedish.txt.meta | 7 + ThirdParty.meta | 8 + ThirdParty/SharpZip.meta | 8 + ThirdParty/SharpZip/LICENSE.txt | 17 + ThirdParty/SharpZip/LICENSE.txt.meta | 7 + ThirdParty/SharpZip/README.md | 41 + ThirdParty/SharpZip/README.md.meta | 7 + ThirdParty/SharpZip/src.meta | 8 + .../SharpZip/src/ICSharpCode.SharpZipLib.meta | 8 + .../src/ICSharpCode.SharpZipLib/BZip2.meta | 8 + .../ICSharpCode.SharpZipLib/BZip2/BZip2.cs | 79 + .../BZip2/BZip2.cs.meta | 11 + .../BZip2/BZip2Constants.cs | 117 + .../BZip2/BZip2Constants.cs.meta | 11 + .../BZip2/BZip2Exception.cs | 54 + .../BZip2/BZip2Exception.cs.meta | 11 + .../BZip2/BZip2InputStream.cs | 1053 ++ .../BZip2/BZip2InputStream.cs.meta | 11 + .../BZip2/BZip2OutputStream.cs | 2033 +++ .../BZip2/BZip2OutputStream.cs.meta | 11 + .../src/ICSharpCode.SharpZipLib/Checksum.meta | 8 + .../Checksum/Adler32.cs | 163 + .../Checksum/Adler32.cs.meta | 11 + .../Checksum/BZip2Crc.cs | 171 + .../Checksum/BZip2Crc.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Checksum/Crc32.cs | 173 + .../Checksum/Crc32.cs.meta | 11 + .../Checksum/CrcUtilities.cs | 158 + .../Checksum/CrcUtilities.cs.meta | 11 + .../Checksum/IChecksum.cs | 51 + .../Checksum/IChecksum.cs.meta | 11 + .../src/ICSharpCode.SharpZipLib/Core.meta | 8 + .../ICSharpCode.SharpZipLib/Core/EmptyRefs.cs | 15 + .../Core/EmptyRefs.cs.meta | 11 + .../Core/Exceptions.meta | 8 + .../Core/Exceptions/SharpZipBaseException.cs | 58 + .../Exceptions/SharpZipBaseException.cs.meta | 11 + .../Exceptions/StreamDecodingException.cs | 50 + .../StreamDecodingException.cs.meta | 11 + .../Exceptions/StreamUnsupportedException.cs | 49 + .../StreamUnsupportedException.cs.meta | 11 + .../UnexpectedEndOfStreamException.cs | 49 + .../UnexpectedEndOfStreamException.cs.meta | 11 + .../Exceptions/ValueOutOfRangeException.cs | 66 + .../ValueOutOfRangeException.cs.meta | 11 + .../Core/FileSystemScanner.cs | 545 + .../Core/FileSystemScanner.cs.meta | 11 + .../Core/INameTransform.cs | 22 + .../Core/INameTransform.cs.meta | 11 + .../Core/IScanFilter.cs | 15 + .../Core/IScanFilter.cs.meta | 11 + .../Core/InvalidNameException.cs | 53 + .../Core/InvalidNameException.cs.meta | 11 + .../Core/NameFilter.cs | 284 + .../Core/NameFilter.cs.meta | 11 + .../Core/PathFilter.cs | 318 + .../Core/PathFilter.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Core/PathUtils.cs | 53 + .../Core/PathUtils.cs.meta | 11 + .../Core/StreamUtils.cs | 284 + .../Core/StreamUtils.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Encryption.meta | 8 + .../Encryption/PkzipClassic.cs | 487 + .../Encryption/PkzipClassic.cs.meta | 11 + .../Encryption/ZipAESStream.cs | 230 + .../Encryption/ZipAESStream.cs.meta | 11 + .../Encryption/ZipAESTransform.cs | 224 + .../Encryption/ZipAESTransform.cs.meta | 11 + .../src/ICSharpCode.SharpZipLib/GZip.meta | 8 + .../src/ICSharpCode.SharpZipLib/GZip/GZip.cs | 92 + .../ICSharpCode.SharpZipLib/GZip/GZip.cs.meta | 11 + .../GZip/GZipConstants.cs | 78 + .../GZip/GZipConstants.cs.meta | 11 + .../GZip/GZipException.cs | 54 + .../GZip/GZipException.cs.meta | 11 + .../GZip/GzipInputStream.cs | 360 + .../GZip/GzipInputStream.cs.meta | 11 + .../GZip/GzipOutputStream.cs | 292 + .../GZip/GzipOutputStream.cs.meta | 11 + .../src/ICSharpCode.SharpZipLib/Lzw.meta | 8 + .../Lzw/LzwConstants.cs | 63 + .../Lzw/LzwConstants.cs.meta | 11 + .../Lzw/LzwException.cs | 54 + .../Lzw/LzwException.cs.meta | 11 + .../Lzw/LzwInputStream.cs | 572 + .../Lzw/LzwInputStream.cs.meta | 11 + .../src/ICSharpCode.SharpZipLib/Tar.meta | 8 + .../Tar/InvalidHeaderException.cs | 55 + .../Tar/InvalidHeaderException.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Tar/TarArchive.cs | 1026 ++ .../Tar/TarArchive.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Tar/TarBuffer.cs | 599 + .../Tar/TarBuffer.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Tar/TarEntry.cs | 598 + .../Tar/TarEntry.cs.meta | 11 + .../Tar/TarException.cs | 54 + .../Tar/TarException.cs.meta | 11 + .../Tar/TarExtendedHeaderReader.cs | 99 + .../Tar/TarExtendedHeaderReader.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Tar/TarHeader.cs | 1310 ++ .../Tar/TarHeader.cs.meta | 11 + .../Tar/TarInputStream.cs | 771 + .../Tar/TarInputStream.cs.meta | 11 + .../Tar/TarOutputStream.cs | 522 + .../Tar/TarOutputStream.cs.meta | 11 + .../src/ICSharpCode.SharpZipLib/Zip.meta | 8 + .../Zip/Compression.meta | 8 + .../Zip/Compression/Deflater.cs | 604 + .../Zip/Compression/Deflater.cs.meta | 11 + .../Zip/Compression/DeflaterConstants.cs | 146 + .../Zip/Compression/DeflaterConstants.cs.meta | 11 + .../Zip/Compression/DeflaterEngine.cs | 946 + .../Zip/Compression/DeflaterEngine.cs.meta | 11 + .../Zip/Compression/DeflaterHuffman.cs | 959 + .../Zip/Compression/DeflaterHuffman.cs.meta | 11 + .../Zip/Compression/DeflaterPending.cs | 17 + .../Zip/Compression/DeflaterPending.cs.meta | 11 + .../Zip/Compression/Inflater.cs | 887 + .../Zip/Compression/Inflater.cs.meta | 11 + .../Zip/Compression/InflaterDynHeader.cs | 151 + .../Zip/Compression/InflaterDynHeader.cs.meta | 11 + .../Zip/Compression/InflaterHuffmanTree.cs | 237 + .../Compression/InflaterHuffmanTree.cs.meta | 11 + .../Zip/Compression/PendingBuffer.cs | 268 + .../Zip/Compression/PendingBuffer.cs.meta | 11 + .../Zip/Compression/Streams.meta | 8 + .../Streams/DeflaterOutputStream.cs | 438 + .../Streams/DeflaterOutputStream.cs.meta | 11 + .../Streams/InflaterInputStream.cs | 713 + .../Streams/InflaterInputStream.cs.meta | 11 + .../Zip/Compression/Streams/OutputWindow.cs | 220 + .../Compression/Streams/OutputWindow.cs.meta | 11 + .../Compression/Streams/StreamManipulator.cs | 298 + .../Streams/StreamManipulator.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Zip/FastZip.cs | 975 ++ .../Zip/FastZip.cs.meta | 11 + .../Zip/IEntryFactory.cs | 67 + .../Zip/IEntryFactory.cs.meta | 11 + .../Zip/WindowsNameTransform.cs | 265 + .../Zip/WindowsNameTransform.cs.meta | 11 + .../Zip/ZipConstants.cs | 518 + .../Zip/ZipConstants.cs.meta | 11 + .../Zip/ZipEncryptionMethod.cs | 28 + .../Zip/ZipEncryptionMethod.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Zip/ZipEntry.cs | 1155 ++ .../Zip/ZipEntry.cs.meta | 11 + .../Zip/ZipEntryExtensions.cs | 28 + .../Zip/ZipEntryExtensions.cs.meta | 11 + .../Zip/ZipEntryFactory.cs | 375 + .../Zip/ZipEntryFactory.cs.meta | 11 + .../Zip/ZipException.cs | 54 + .../Zip/ZipException.cs.meta | 11 + .../Zip/ZipExtraData.cs | 980 ++ .../Zip/ZipExtraData.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Zip/ZipFile.cs | 4915 ++++++ .../Zip/ZipFile.cs.meta | 11 + .../Zip/ZipHelperStream.cs | 629 + .../Zip/ZipHelperStream.cs.meta | 11 + .../Zip/ZipInputStream.cs | 727 + .../Zip/ZipInputStream.cs.meta | 11 + .../Zip/ZipNameTransform.cs | 313 + .../Zip/ZipNameTransform.cs.meta | 11 + .../Zip/ZipOutputStream.cs | 1079 ++ .../Zip/ZipOutputStream.cs.meta | 11 + .../ICSharpCode.SharpZipLib/Zip/ZipStrings.cs | 194 + .../Zip/ZipStrings.cs.meta | 11 + UI.meta | 8 + UI/Animations.meta | 8 + UI/Animations/BrowserModListItem_Deflate.anim | 242 + .../BrowserModListItem_Deflate.anim.meta | 8 + UI/Animations/BrowserModListItem_Inflate.anim | 431 + .../BrowserModListItem_Inflate.anim.meta | 8 + ...wserModListItem_RegularSelected.controller | 101 + ...odListItem_RegularSelected.controller.meta | 8 + UI/Animations/Loading anim.controller | 72 + UI/Animations/Loading anim.controller.meta | 8 + UI/Animations/LoopingLoadingAnimation.anim | 314 + .../LoopingLoadingAnimation.anim.meta | 8 + .../SearchResultListItem_Deflate.anim | 242 + .../SearchResultListItem_Deflate.anim.meta | 8 + .../SearchResultListItem_Inflate.anim | 431 + .../SearchResultListItem_Inflate.anim.meta | 8 + ...hResultListItem_RegularSelected.controller | 101 + ...ltListItem_RegularSelected.controller.meta | 8 + UI/Color Scheme.meta | 8 + UI/Color Scheme/ColorApplierImage.cs | 77 + UI/Color Scheme/ColorApplierImage.cs.meta | 11 + UI/Color Scheme/ColorScheme.cs | 126 + UI/Color Scheme/ColorScheme.cs.meta | 11 + UI/Color Scheme/ColorSchemeBlock.cs | 34 + UI/Color Scheme/ColorSchemeBlock.cs.meta | 11 + UI/Color Scheme/ColorSetter.cs | 75 + UI/Color Scheme/ColorSetter.cs.meta | 11 + UI/Color Scheme/ColorSetterType.cs | 22 + UI/Color Scheme/ColorSetterType.cs.meta | 11 + UI/Color Scheme/MultiTargetButton.cs | 228 + UI/Color Scheme/MultiTargetButton.cs.meta | 11 + UI/Color Scheme/MultiTargetDropdown.cs | 242 + UI/Color Scheme/MultiTargetDropdown.cs.meta | 11 + UI/Color Scheme/MultiTargetToggle.cs | 216 + UI/Color Scheme/MultiTargetToggle.cs.meta | 11 + UI/Color Scheme/MultiTargetTransition.cs | 13 + UI/Color Scheme/MultiTargetTransition.cs.meta | 11 + UI/Color Scheme/Target.cs | 22 + UI/Color Scheme/Target.cs.meta | 11 + UI/Color Scheme/UI Component Prefabs.meta | 8 + .../Button with Cue Variant.prefab | 843 + .../Button with Cue Variant.prefab.meta | 7 + .../UI Component Prefabs/Button.prefab | 325 + .../UI Component Prefabs/Button.prefab.meta | 7 + .../UI Component Prefabs/Close (X).prefab | 273 + .../Close (X).prefab.meta | 7 + .../UI Component Prefabs/Dropdown.prefab | 1636 ++ .../UI Component Prefabs/Dropdown.prefab.meta | 7 + .../UI Component Prefabs/InputField.prefab | 1002 ++ .../InputField.prefab.meta | 7 + .../UI Component Prefabs/More options.prefab | 608 + .../More options.prefab.meta | 7 + UI/Editor.meta | 8 + UI/Editor/ButtonAttribute.cs | 7 + UI/Editor/ButtonAttribute.cs.meta | 11 + UI/Editor/ColorSchemeEditor.cs | 56 + UI/Editor/ColorSchemeEditor.cs.meta | 11 + UI/Editor/ColorSetterEditor.cs | 26 + UI/Editor/ColorSetterEditor.cs.meta | 11 + UI/Editor/MonoBehaviourCustomEditor.cs | 43 + UI/Editor/MonoBehaviourCustomEditor.cs.meta | 11 + UI/Editor/MultiTargetButtonEditor.cs | 119 + UI/Editor/MultiTargetButtonEditor.cs.meta | 11 + UI/Editor/MultiTargetDropdownEditor.cs | 118 + UI/Editor/MultiTargetDropdownEditor.cs.meta | 11 + UI/Editor/MultiTargetToggleEditor.cs | 122 + UI/Editor/MultiTargetToggleEditor.cs.meta | 11 + UI/Examples.meta | 8 + UI/Examples/Example Title Canvas.prefab | 5369 ++++++ UI/Examples/Example Title Canvas.prefab.meta | 7 + UI/Examples/Example.unity | 975 ++ UI/Examples/Example.unity.meta | 7 + UI/Examples/ExampleInputCapture.cs | 123 + UI/Examples/ExampleInputCapture.cs.meta | 11 + UI/Examples/ExampleTitleScene.cs | 101 + UI/Examples/ExampleTitleScene.cs.meta | 11 + UI/Examples/ExmapleGlyphSetter.cs | 53 + UI/Examples/ExmapleGlyphSetter.cs.meta | 11 + UI/Examples/ModIOBrowser.prefab | 4885 ++++++ UI/Examples/ModIOBrowser.prefab.meta | 7 + UI/Examples/Settings Panel.prefab | 7048 ++++++++ UI/Examples/Settings Panel.prefab.meta | 7 + UI/Fonts.meta | 8 + UI/Fonts/EuclidCircularB-Bold.otf | Bin 0 -> 115104 bytes UI/Fonts/EuclidCircularB-Bold.otf.meta | 25 + UI/Fonts/EuclidCircularB-BoldItalic.otf | Bin 0 -> 117752 bytes UI/Fonts/EuclidCircularB-BoldItalic.otf.meta | 26 + UI/Fonts/EuclidCircularB-Light.otf | Bin 0 -> 106492 bytes UI/Fonts/EuclidCircularB-Light.otf.meta | 29 + UI/Fonts/EuclidCircularB-LightItalic.otf | Bin 0 -> 109964 bytes UI/Fonts/EuclidCircularB-LightItalic.otf.meta | 28 + UI/Fonts/EuclidCircularB-Medium.otf | Bin 0 -> 116808 bytes UI/Fonts/EuclidCircularB-Medium.otf.meta | 22 + UI/Fonts/EuclidCircularB-MediumItalic.otf | Bin 0 -> 119648 bytes .../EuclidCircularB-MediumItalic.otf.meta | 27 + UI/Fonts/EuclidCircularB-Regular.otf | Bin 0 -> 115168 bytes UI/Fonts/EuclidCircularB-Regular.otf.meta | 23 + UI/Fonts/EuclidCircularB-RegularItalic.otf | Bin 0 -> 119480 bytes .../EuclidCircularB-RegularItalic.otf.meta | 30 + UI/Fonts/EuclidCircularB-Semibold.otf | Bin 0 -> 117828 bytes UI/Fonts/EuclidCircularB-Semibold.otf.meta | 31 + UI/Fonts/EuclidCircularB-SemiboldItalic.otf | Bin 0 -> 121384 bytes .../EuclidCircularB-SemiboldItalic.otf.meta | 24 + UI/Fonts/TMPro Fonts.meta | 8 + .../EuclidCircularB-Regular SDF.asset | 2690 +++ .../EuclidCircularB-Regular SDF.asset.meta | 8 + .../EuclidCircularB-Semibold SDF.asset | 2714 +++ .../EuclidCircularB-Semibold SDF.asset.meta | 8 + UI/Glyphs.meta | 8 + UI/Glyphs/Action_Buttons_Background.asset | 24 + .../Action_Buttons_Background.asset.meta | 8 + UI/Glyphs/Action_Buttons_Bottom.asset | 24 + UI/Glyphs/Action_Buttons_Bottom.asset.meta | 8 + UI/Glyphs/Action_Buttons_Left.asset | 24 + UI/Glyphs/Action_Buttons_Left.asset.meta | 8 + UI/Glyphs/Action_Buttons_Right.asset | 24 + UI/Glyphs/Action_Buttons_Right.asset.meta | 8 + UI/Glyphs/Action_Buttons_Top.asset | 24 + UI/Glyphs/Action_Buttons_Top.asset.meta | 8 + UI/Glyphs/LB.asset | 24 + UI/Glyphs/LB.asset.meta | 8 + UI/Glyphs/LB_Background.asset | 24 + UI/Glyphs/LB_Background.asset.meta | 8 + UI/Glyphs/Menu.asset | 24 + UI/Glyphs/Menu.asset.meta | 8 + UI/Glyphs/Menu_Background.asset | 24 + UI/Glyphs/Menu_Background.asset.meta | 8 + UI/Glyphs/RB.asset | 24 + UI/Glyphs/RB.asset.meta | 8 + UI/Glyphs/RB_Background.asset | 24 + UI/Glyphs/RB_Background.asset.meta | 8 + UI/Glyphs/RS.asset | 24 + UI/Glyphs/RS.asset.meta | 8 + UI/Glyphs/RS_Background.asset | 24 + UI/Glyphs/RS_Background.asset.meta | 8 + UI/ListItems.meta | 8 + UI/ListItems/CollectionModListItem.cs | 537 + UI/ListItems/CollectionModListItem.cs.meta | 11 + UI/ListItems/ContextMenuListItem.cs | 30 + UI/ListItems/ContextMenuListItem.cs.meta | 11 + UI/ListItems/DownloadQueueListItem.cs | 91 + UI/ListItems/DownloadQueueListItem.cs.meta | 11 + UI/ListItems/FeaturedModListItem.cs | 144 + UI/ListItems/FeaturedModListItem.cs.meta | 11 + UI/ListItems/GalleryImageButtonListItem.cs | 48 + .../GalleryImageButtonListItem.cs.meta | 11 + UI/ListItems/HomeModListItem.cs | 156 + UI/ListItems/HomeModListItem.cs.meta | 11 + UI/ListItems/ListItem.cs | 226 + UI/ListItems/ListItem.cs.meta | 11 + UI/ListItems/SearchResultListItem.cs | 159 + UI/ListItems/SearchResultListItem.cs.meta | 11 + UI/ListItems/TagCategoryListItem.cs | 21 + UI/ListItems/TagCategoryListItem.cs.meta | 11 + UI/ListItems/TagListItem.cs | 100 + UI/ListItems/TagListItem.cs.meta | 11 + UI/Overlays.meta | 8 + UI/Overlays/HomeModListItem_Overlay.cs | 171 + UI/Overlays/HomeModListItem_Overlay.cs.meta | 11 + UI/Overlays/SearchResultListItem_Overlay.cs | 178 + .../SearchResultListItem_Overlay.cs.meta | 11 + UI/Overlays/SelectionOverlayHandler.cs | 100 + UI/Overlays/SelectionOverlayHandler.cs.meta | 11 + UI/Prefabs.meta | 8 + UI/Prefabs/5DigitInputPopup.meta | 8 + .../5DigitInputPopup/5DigitInput.prefab | 4136 +++++ .../5DigitInputPopup/5DigitInput.prefab.meta | 7 + UI/Prefabs/Authentication Popup.meta | 8 + .../Authentication Popup.prefab | 11294 ++++++++++++ .../Authentication Popup.prefab.meta | 7 + UI/Prefabs/Collections.meta | 8 + .../CollectionListItem_Regular.prefab | 5816 ++++++ .../CollectionListItem_Regular.prefab.meta | 7 + UI/Prefabs/Collections/Mod Collection.prefab | 2779 +++ .../Collections/Mod Collection.prefab.meta | 7 + UI/Prefabs/ContextMenu.meta | 8 + UI/Prefabs/ContextMenu/ContextMenu.prefab | 416 + .../ContextMenu/ContextMenu.prefab.meta | 7 + .../ContextMenu/ContextMenuListItem.prefab | 448 + .../ContextMenuListItem.prefab.meta | 7 + UI/Prefabs/Details.meta | 8 + UI/Prefabs/Details/ModDetails Panel.prefab | 9863 +++++++++++ .../Details/ModDetails Panel.prefab.meta | 7 + UI/Prefabs/Download.meta | 8 + UI/Prefabs/Download/Downloads.prefab | 4492 +++++ UI/Prefabs/Download/Downloads.prefab.meta | 7 + UI/Prefabs/DownloadQueueListItem.prefab | 2042 +++ UI/Prefabs/DownloadQueueListItem.prefab.meta | 7 + UI/Prefabs/ExampleInputCapture.prefab | 59 + UI/Prefabs/ExampleInputCapture.prefab.meta | 7 + UI/Prefabs/GalleryImageButtonListItem.prefab | 152 + .../GalleryImageButtonListItem.prefab.meta | 7 + UI/Prefabs/GlyphSettings.prefab | 48 + UI/Prefabs/GlyphSettings.prefab.meta | 7 + UI/Prefabs/Home.meta | 8 + .../Home/BrowserModListItem_Featured.prefab | 793 + .../BrowserModListItem_Featured.prefab.meta | 7 + .../Home/BrowserModListItem_Regular.prefab | 1155 ++ .../BrowserModListItem_Regular.prefab.meta | 7 + .../BrowserModListItem_RegularSelected.prefab | 2219 +++ ...serModListItem_RegularSelected.prefab.meta | 7 + UI/Prefabs/Home/Home.prefab | 14582 ++++++++++++++++ UI/Prefabs/Home/Home.prefab.meta | 7 + UI/Prefabs/Input Navigation.prefab | 72 + UI/Prefabs/Input Navigation.prefab.meta | 7 + UI/Prefabs/Loading Icon.prefab | 298 + UI/Prefabs/Loading Icon.prefab.meta | 7 + UI/Prefabs/Log In & Settings.meta | 8 + .../Log in & settings.prefab | 1125 ++ .../Log in & settings.prefab.meta | 7 + UI/Prefabs/NavBar.meta | 8 + UI/Prefabs/NavBar/Top Nav Bar.prefab | 2917 ++++ UI/Prefabs/NavBar/Top Nav Bar.prefab.meta | 7 + UI/Prefabs/Notification Popup.meta | 8 + .../NotificationPopup.prefab | 1446 ++ .../NotificationPopup.prefab.meta | 7 + UI/Prefabs/ProgressTab.prefab | 565 + UI/Prefabs/ProgressTab.prefab.meta | 7 + UI/Prefabs/Report Panel.meta | 8 + UI/Prefabs/Report Panel/Report Panel.prefab | 8181 +++++++++ .../Report Panel/Report Panel.prefab.meta | 7 + UI/Prefabs/Search Panel.meta | 8 + UI/Prefabs/Search Panel/Search Panel.prefab | 3155 ++++ .../Search Panel/Search Panel.prefab.meta | 7 + .../SearchResultListItem_Regular.prefab | 1051 ++ .../SearchResultListItem_Regular.prefab.meta | 7 + ...earchResultListItem_RegularSelected.prefab | 1944 ++ ...ResultListItem_RegularSelected.prefab.meta | 7 + UI/Prefabs/SearchResults.meta | 8 + .../SearchResults/Search Results Panel.prefab | 6959 ++++++++ .../Search Results Panel.prefab.meta | 7 + UI/Prefabs/SelectionManager.prefab | 84 + UI/Prefabs/SelectionManager.prefab.meta | 7 + UI/Prefabs/SingletonSetup.prefab | 53 + UI/Prefabs/SingletonSetup.prefab.meta | 7 + UI/Prefabs/SoundPlayer.prefab | 52 + UI/Prefabs/SoundPlayer.prefab.meta | 7 + UI/Prefabs/TagCategoryListItem.prefab | 239 + UI/Prefabs/TagCategoryListItem.prefab.meta | 7 + UI/Prefabs/TagListItem.prefab | 705 + UI/Prefabs/TagListItem.prefab.meta | 7 + UI/Prefabs/Toast Notifications.meta | 8 + .../Toast Notifications.prefab | 807 + .../Toast Notifications.prefab.meta | 7 + UI/Prefabs/Translations.prefab | 55 + UI/Prefabs/Translations.prefab.meta | 7 + UI/Prefabs/Uninstall Confirmation Menu.meta | 8 + .../Uninstall Confirmation Menu.prefab | 1238 ++ .../Uninstall Confirmation Menu.prefab.meta | 7 + UI/Scripts.meta | 8 + UI/Scripts/Browser.cs | 373 + UI/Scripts/Browser.cs.meta | 11 + UI/Scripts/BrowserSpawnIn.cs | 23 + UI/Scripts/BrowserSpawnIn.cs.meta | 11 + UI/Scripts/ExampleSettingsPanel.cs | 95 + UI/Scripts/ExampleSettingsPanel.cs.meta | 11 + UI/Scripts/FindMissingReferences.cs | 92 + UI/Scripts/FindMissingReferences.cs.meta | 11 + UI/Scripts/ImageTransitions.cs | 58 + UI/Scripts/ImageTransitions.cs.meta | 11 + UI/Scripts/InputNavigation.cs | 96 + UI/Scripts/InputNavigation.cs.meta | 11 + UI/Scripts/InputReceiver.cs | 154 + UI/Scripts/InputReceiver.cs.meta | 11 + UI/Scripts/Mods.cs | 274 + UI/Scripts/Mods.cs.meta | 11 + UI/Scripts/Navigating.cs | 282 + UI/Scripts/Navigating.cs.meta | 11 + UI/Scripts/Panels.meta | 8 + UI/Scripts/Panels/5Digits.meta | 8 + UI/Scripts/Panels/5Digits/KeyInput5Digits.cs | 324 + .../Panels/5Digits/KeyInput5Digits.cs.meta | 11 + .../Panels/5Digits/KeyInput5DigitsUi.cs | 106 + .../Panels/5Digits/KeyInput5DigitsUi.cs.meta | 11 + UI/Scripts/Panels/Authentication.cs | 344 + UI/Scripts/Panels/Authentication.cs.meta | 11 + UI/Scripts/Panels/Authentication.meta | 8 + .../Authentication/AuthenticationPanels.cs | 719 + .../AuthenticationPanels.cs.meta | 11 + UI/Scripts/Panels/Authentication/Avatar.cs | 132 + .../Panels/Authentication/Avatar.cs.meta | 11 + UI/Scripts/Panels/Collection.cs | 565 + UI/Scripts/Panels/Collection.cs.meta | 11 + UI/Scripts/Panels/Details.cs | 598 + UI/Scripts/Panels/Details.cs.meta | 11 + UI/Scripts/Panels/DownloadQueue.cs | 222 + UI/Scripts/Panels/DownloadQueue.cs.meta | 11 + UI/Scripts/Panels/Home.cs | 629 + UI/Scripts/Panels/Home.cs.meta | 11 + UI/Scripts/Panels/ModioContextMenu.cs | 138 + UI/Scripts/Panels/ModioContextMenu.cs.meta | 11 + UI/Scripts/Panels/NavBar.cs | 52 + UI/Scripts/Panels/NavBar.cs.meta | 11 + UI/Scripts/Panels/NotificationPopup.cs | 94 + UI/Scripts/Panels/NotificationPopup.cs.meta | 11 + UI/Scripts/Panels/NotificationPopupButton.cs | 33 + .../Panels/NotificationPopupButton.cs.meta | 11 + UI/Scripts/Panels/Notifications.cs | 221 + UI/Scripts/Panels/Notifications.cs.meta | 11 + UI/Scripts/Panels/Reporting.cs | 244 + UI/Scripts/Panels/Reporting.cs.meta | 11 + UI/Scripts/Panels/SearchPanel.cs | 253 + UI/Scripts/Panels/SearchPanel.cs.meta | 11 + UI/Scripts/Panels/SearchResults.cs | 388 + UI/Scripts/Panels/SearchResults.cs.meta | 11 + UI/Scripts/SelectionManager.cs | 162 + UI/Scripts/SelectionManager.cs.meta | 11 + UI/Scripts/SelectionViewConfigItem.cs | 10 + UI/Scripts/SelectionViewConfigItem.cs.meta | 11 + UI/Scripts/SingletonAwakener.cs | 35 + UI/Scripts/SingletonAwakener.cs.meta | 11 + UI/Scripts/Sound.cs | 76 + UI/Scripts/Sound.cs.meta | 11 + UI/Scripts/SoundPlayer.cs | 107 + UI/Scripts/SoundPlayer.cs.meta | 11 + UI/Scripts/UiSettings.meta | 8 + UI/Scripts/UiSettings/UiSettings.cs | 29 + UI/Scripts/UiSettings/UiSettings.cs.meta | 11 + UI/Scripts/UiViews.cs | 34 + UI/Scripts/UiViews.cs.meta | 11 + UI/SoundClick.prefab | 143 + UI/SoundClick.prefab.meta | 7 + UI/SoundHover.prefab | 143 + UI/SoundHover.prefab.meta | 7 + UI/Sprites.meta | 8 + UI/Sprites/12px_circle.png | Bin 0 -> 250 bytes UI/Sprites/12px_circle.png.meta | 164 + UI/Sprites/20px-radius_dropshadow.png | Bin 0 -> 2734 bytes UI/Sprites/20px-radius_dropshadow.png.meta | 88 + UI/Sprites/20px_dropshadow.png | Bin 0 -> 2734 bytes UI/Sprites/20px_dropshadow.png.meta | 88 + UI/Sprites/20px_outline.png | Bin 0 -> 698 bytes UI/Sprites/20px_outline.png.meta | 88 + UI/Sprites/20px_outline_thin.png | Bin 0 -> 681 bytes UI/Sprites/20px_outline_thin.png.meta | 88 + UI/Sprites/40px_20px_capsule.png | Bin 0 -> 370 bytes UI/Sprites/40px_20px_capsule.png.meta | 164 + UI/Sprites/40px_outline.png | Bin 0 -> 1040 bytes UI/Sprites/40px_outline.png.meta | 88 + UI/Sprites/Icons.meta | 8 + UI/Sprites/Icons/Cog.png | Bin 0 -> 5016 bytes UI/Sprites/Icons/Cog.png.meta | 88 + UI/Sprites/Icons/Platform Icons.meta | 8 + UI/Sprites/Icons/Platform Icons/Apple.png | Bin 0 -> 398 bytes .../Icons/Platform Icons/Apple.png.meta | 88 + UI/Sprites/Icons/Platform Icons/Discord.png | Bin 0 -> 444 bytes .../Icons/Platform Icons/Discord.png.meta | 88 + UI/Sprites/Icons/Platform Icons/EpicGames.png | Bin 0 -> 616 bytes .../Icons/Platform Icons/EpicGames.png.meta | 88 + UI/Sprites/Icons/Platform Icons/Google.png | Bin 0 -> 497 bytes .../Icons/Platform Icons/Google.png.meta | 88 + UI/Sprites/Icons/Platform Icons/Meta.png | Bin 0 -> 473 bytes UI/Sprites/Icons/Platform Icons/Meta.png.meta | 88 + .../Icons/Platform Icons/Nintendo Switch.png | Bin 0 -> 761 bytes .../Platform Icons/Nintendo Switch.png.meta | 88 + UI/Sprites/Icons/Platform Icons/Nintendo.png | Bin 0 -> 401 bytes .../Icons/Platform Icons/Nintendo.png.meta | 88 + UI/Sprites/Icons/Platform Icons/Oculus.png | Bin 0 -> 359 bytes .../Icons/Platform Icons/Oculus.png.meta | 88 + .../Icons/Platform Icons/Playstation.png | Bin 0 -> 517 bytes .../Icons/Platform Icons/Playstation.png.meta | 88 + UI/Sprites/Icons/Platform Icons/Steam.png | Bin 0 -> 565 bytes .../Icons/Platform Icons/Steam.png.meta | 88 + UI/Sprites/Icons/Platform Icons/Xbox.png | Bin 0 -> 508 bytes UI/Sprites/Icons/Platform Icons/Xbox.png.meta | 88 + UI/Sprites/Icons/Platform Icons/gog.png | Bin 0 -> 527 bytes UI/Sprites/Icons/Platform Icons/gog.png.meta | 88 + UI/Sprites/Icons/Platform Icons/itch.io.png | Bin 0 -> 579 bytes .../Icons/Platform Icons/itch.io.png.meta | 88 + UI/Sprites/Icons/X_icon.png | Bin 0 -> 203 bytes UI/Sprites/Icons/X_icon.png.meta | 88 + UI/Sprites/Icons/Xbox_LB.png | Bin 0 -> 240 bytes UI/Sprites/Icons/Xbox_LB.png.meta | 88 + UI/Sprites/Icons/Xbox_LT.png | Bin 0 -> 290 bytes UI/Sprites/Icons/Xbox_LT.png.meta | 88 + UI/Sprites/Icons/Xbox_R-stick_press.png | Bin 0 -> 608 bytes UI/Sprites/Icons/Xbox_R-stick_press.png.meta | 88 + UI/Sprites/Icons/Xbox_RT.png | Bin 0 -> 299 bytes UI/Sprites/Icons/Xbox_RT.png.meta | 88 + UI/Sprites/Icons/Xbox_menu.png | Bin 0 -> 449 bytes UI/Sprites/Icons/Xbox_menu.png.meta | 88 + UI/Sprites/Icons/Xbox_start 1.png | Bin 0 -> 431 bytes UI/Sprites/Icons/Xbox_start 1.png.meta | 88 + UI/Sprites/Icons/Xbox_start.png | Bin 0 -> 324 bytes UI/Sprites/Icons/Xbox_start.png.meta | 88 + UI/Sprites/Icons/Xbox_view.png | Bin 0 -> 491 bytes UI/Sprites/Icons/Xbox_view.png.meta | 88 + UI/Sprites/Icons/arrow-down.png | Bin 0 -> 210 bytes UI/Sprites/Icons/arrow-down.png.meta | 88 + .../border_16px-radius_3px-thickness.png | Bin 0 -> 617 bytes .../border_16px-radius_3px-thickness.png.meta | 88 + UI/Sprites/Icons/check_thin_icon.png | Bin 0 -> 332 bytes UI/Sprites/Icons/check_thin_icon.png.meta | 88 + UI/Sprites/Icons/circle.png | Bin 0 -> 424 bytes UI/Sprites/Icons/circle.png.meta | 88 + UI/Sprites/Icons/error_icon.png | Bin 0 -> 694 bytes UI/Sprites/Icons/error_icon.png.meta | 88 + UI/Sprites/Icons/exclamation.png | Bin 0 -> 306 bytes UI/Sprites/Icons/exclamation.png.meta | 88 + UI/Sprites/Icons/icofont_flag.png | Bin 0 -> 404 bytes UI/Sprites/Icons/icofont_flag.png.meta | 88 + UI/Sprites/Icons/icofont_thumbs-down.png | Bin 0 -> 344 bytes UI/Sprites/Icons/icofont_thumbs-down.png.meta | 88 + UI/Sprites/Icons/icofont_thumbs-up.png | Bin 0 -> 352 bytes UI/Sprites/Icons/icofont_thumbs-up.png.meta | 88 + UI/Sprites/Icons/icon_FailedImage.png | Bin 0 -> 2509 bytes UI/Sprites/Icons/icon_FailedImage.png.meta | 88 + UI/Sprites/Icons/icon_mail.png | Bin 0 -> 399 bytes UI/Sprites/Icons/icon_mail.png.meta | 88 + UI/Sprites/Icons/icon_more.png | Bin 0 -> 177 bytes UI/Sprites/Icons/icon_more.png.meta | 88 + UI/Sprites/Icons/icon_search.png | Bin 0 -> 374 bytes UI/Sprites/Icons/icon_search.png.meta | 88 + UI/Sprites/Icons/icon_user_logged-out.png | Bin 0 -> 488 bytes .../Icons/icon_user_logged-out.png.meta | 88 + UI/Sprites/Icons/paging_arrow.png | Bin 0 -> 171 bytes UI/Sprites/Icons/paging_arrow.png.meta | 88 + UI/Sprites/Icons/tick.png | Bin 0 -> 185 bytes UI/Sprites/Icons/tick.png.meta | 88 + UI/Sprites/Icons/tick_BlackOnWhite.png | Bin 0 -> 374 bytes UI/Sprites/Icons/tick_BlackOnWhite.png.meta | 88 + UI/Sprites/Playstation.meta | 8 + UI/Sprites/Playstation/Key=Circle.png | Bin 0 -> 1429 bytes UI/Sprites/Playstation/Key=Circle.png.meta | 140 + UI/Sprites/Playstation/Key=Cross.png | Bin 0 -> 622 bytes UI/Sprites/Playstation/Key=Cross.png.meta | 140 + UI/Sprites/Playstation/Key=L1.png | Bin 0 -> 362 bytes UI/Sprites/Playstation/Key=L1.png.meta | 140 + UI/Sprites/Playstation/Key=L2.png | Bin 0 -> 723 bytes UI/Sprites/Playstation/Key=L2.png.meta | 140 + UI/Sprites/Playstation/Key=LS.png | Bin 0 -> 840 bytes UI/Sprites/Playstation/Key=LS.png.meta | 140 + UI/Sprites/Playstation/Key=Menu.png | Bin 0 -> 417 bytes UI/Sprites/Playstation/Key=Menu.png.meta | 140 + UI/Sprites/Playstation/Key=Options.png | Bin 0 -> 1357 bytes UI/Sprites/Playstation/Key=Options.png.meta | 140 + UI/Sprites/Playstation/Key=R1.png | Bin 0 -> 693 bytes UI/Sprites/Playstation/Key=R1.png.meta | 140 + UI/Sprites/Playstation/Key=R2.png | Bin 0 -> 910 bytes UI/Sprites/Playstation/Key=R2.png.meta | 140 + UI/Sprites/Playstation/Key=RS.png | Bin 0 -> 979 bytes UI/Sprites/Playstation/Key=RS.png.meta | 140 + UI/Sprites/Playstation/Key=Share.png | Bin 0 -> 1046 bytes UI/Sprites/Playstation/Key=Share.png.meta | 140 + UI/Sprites/Playstation/Key=Square.png | Bin 0 -> 365 bytes UI/Sprites/Playstation/Key=Square.png.meta | 140 + UI/Sprites/Playstation/Key=Triangle.png | Bin 0 -> 856 bytes UI/Sprites/Playstation/Key=Triangle.png.meta | 140 + UI/Sprites/Playstation/Shape=Capsule.png | Bin 0 -> 810 bytes UI/Sprites/Playstation/Shape=Capsule.png.meta | 140 + UI/Sprites/Playstation/Shape=Circle.png | Bin 0 -> 1627 bytes UI/Sprites/Playstation/Shape=Circle.png.meta | 140 + UI/Sprites/Playstation/Shape=L1-R1.png | Bin 0 -> 1066 bytes UI/Sprites/Playstation/Shape=L1-R1.png.meta | 140 + UI/Sprites/Playstation/Shape=L2-R2.png | Bin 0 -> 1241 bytes UI/Sprites/Playstation/Shape=L2-R2.png.meta | 140 + UI/Sprites/Playstation/Shape=Stick_Press.png | Bin 0 -> 3430 bytes .../Playstation/Shape=Stick_Press.png.meta | 140 + UI/Sprites/Switch.meta | 8 + UI/Sprites/Switch/Key=A.png | Bin 0 -> 762 bytes UI/Sprites/Switch/Key=A.png.meta | 140 + UI/Sprites/Switch/Key=B.png | Bin 0 -> 677 bytes UI/Sprites/Switch/Key=B.png.meta | 140 + UI/Sprites/Switch/Key=D-Pad_Bottom.png | Bin 0 -> 592 bytes UI/Sprites/Switch/Key=D-Pad_Bottom.png.meta | 140 + UI/Sprites/Switch/Key=D-Pad_Left.png | Bin 0 -> 577 bytes UI/Sprites/Switch/Key=D-Pad_Left.png.meta | 140 + UI/Sprites/Switch/Key=D-Pad_Right.png | Bin 0 -> 555 bytes UI/Sprites/Switch/Key=D-Pad_Right.png.meta | 140 + UI/Sprites/Switch/Key=D-Pad_Up.png | Bin 0 -> 589 bytes UI/Sprites/Switch/Key=D-Pad_Up.png.meta | 140 + UI/Sprites/Switch/Key=LS-1.png | Bin 0 -> 284 bytes UI/Sprites/Switch/Key=LS-1.png.meta | 140 + UI/Sprites/Switch/Key=LS.png | Bin 0 -> 860 bytes UI/Sprites/Switch/Key=LS.png.meta | 140 + UI/Sprites/Switch/Key=Minus.png | Bin 0 -> 215 bytes UI/Sprites/Switch/Key=Minus.png.meta | 140 + UI/Sprites/Switch/Key=Plus.png | Bin 0 -> 320 bytes UI/Sprites/Switch/Key=Plus.png.meta | 140 + UI/Sprites/Switch/Key=RS-1.png | Bin 0 -> 602 bytes UI/Sprites/Switch/Key=RS-1.png.meta | 140 + UI/Sprites/Switch/Key=RS.png | Bin 0 -> 979 bytes UI/Sprites/Switch/Key=RS.png.meta | 140 + UI/Sprites/Switch/Key=SL.png | Bin 0 -> 838 bytes UI/Sprites/Switch/Key=SL.png.meta | 140 + UI/Sprites/Switch/Key=SR.png | Bin 0 -> 985 bytes UI/Sprites/Switch/Key=SR.png.meta | 140 + UI/Sprites/Switch/Key=X.png | Bin 0 -> 709 bytes UI/Sprites/Switch/Key=X.png.meta | 140 + UI/Sprites/Switch/Key=Y.png | Bin 0 -> 592 bytes UI/Sprites/Switch/Key=Y.png.meta | 140 + UI/Sprites/Switch/Key=ZL.png | Bin 0 -> 548 bytes UI/Sprites/Switch/Key=ZL.png.meta | 140 + UI/Sprites/Switch/Key=ZR.png | Bin 0 -> 837 bytes UI/Sprites/Switch/Key=ZR.png.meta | 140 + UI/Sprites/Switch/Shape=Circle.png | Bin 0 -> 1627 bytes UI/Sprites/Switch/Shape=Circle.png.meta | 140 + UI/Sprites/Switch/Shape=L.png | Bin 0 -> 648 bytes UI/Sprites/Switch/Shape=L.png.meta | 140 + UI/Sprites/Switch/Shape=R.png | Bin 0 -> 666 bytes UI/Sprites/Switch/Shape=R.png.meta | 140 + UI/Sprites/Switch/Shape=SL-SR.png | Bin 0 -> 813 bytes UI/Sprites/Switch/Shape=SL-SR.png.meta | 140 + UI/Sprites/Switch/Shape=Stick_Press.png | Bin 0 -> 3430 bytes UI/Sprites/Switch/Shape=Stick_Press.png.meta | 140 + UI/Sprites/Switch/Shape=ZL.png | Bin 0 -> 865 bytes UI/Sprites/Switch/Shape=ZL.png.meta | 140 + UI/Sprites/Switch/Shape=ZR.png | Bin 0 -> 922 bytes UI/Sprites/Switch/Shape=ZR.png.meta | 140 + UI/Sprites/Xbox.meta | 8 + UI/Sprites/Xbox/Key=A.png | Bin 0 -> 762 bytes UI/Sprites/Xbox/Key=A.png.meta | 140 + UI/Sprites/Xbox/Key=B.png | Bin 0 -> 677 bytes UI/Sprites/Xbox/Key=B.png.meta | 140 + UI/Sprites/Xbox/Key=LB.png | Bin 0 -> 614 bytes UI/Sprites/Xbox/Key=LB.png.meta | 140 + UI/Sprites/Xbox/Key=LS.png | Bin 0 -> 840 bytes UI/Sprites/Xbox/Key=LS.png.meta | 140 + UI/Sprites/Xbox/Key=LT.png | Bin 0 -> 321 bytes UI/Sprites/Xbox/Key=LT.png.meta | 140 + UI/Sprites/Xbox/Key=Menu.png | Bin 0 -> 417 bytes UI/Sprites/Xbox/Key=Menu.png.meta | 140 + UI/Sprites/Xbox/Key=RB.png | Bin 0 -> 876 bytes UI/Sprites/Xbox/Key=RB.png.meta | 140 + UI/Sprites/Xbox/Key=RS.png | Bin 0 -> 979 bytes UI/Sprites/Xbox/Key=RS.png.meta | 140 + UI/Sprites/Xbox/Key=RT.png | Bin 0 -> 672 bytes UI/Sprites/Xbox/Key=RT.png.meta | 140 + UI/Sprites/Xbox/Key=Share.png | Bin 0 -> 465 bytes UI/Sprites/Xbox/Key=Share.png.meta | 140 + UI/Sprites/Xbox/Key=View.png | Bin 0 -> 415 bytes UI/Sprites/Xbox/Key=View.png.meta | 140 + UI/Sprites/Xbox/Key=X.png | Bin 0 -> 709 bytes UI/Sprites/Xbox/Key=X.png.meta | 140 + UI/Sprites/Xbox/Key=Y.png | Bin 0 -> 592 bytes UI/Sprites/Xbox/Key=Y.png.meta | 140 + UI/Sprites/Xbox/Shape=Circle.png | Bin 0 -> 1627 bytes UI/Sprites/Xbox/Shape=Circle.png.meta | 140 + UI/Sprites/Xbox/Shape=LB.png | Bin 0 -> 766 bytes UI/Sprites/Xbox/Shape=LB.png.meta | 140 + UI/Sprites/Xbox/Shape=LT.png | Bin 0 -> 1382 bytes UI/Sprites/Xbox/Shape=LT.png.meta | 140 + UI/Sprites/Xbox/Shape=RB.png | Bin 0 -> 831 bytes UI/Sprites/Xbox/Shape=RB.png.meta | 140 + UI/Sprites/Xbox/Shape=RT.png | Bin 0 -> 1415 bytes UI/Sprites/Xbox/Shape=RT.png.meta | 140 + UI/Sprites/Xbox/Shape=Share.png | Bin 0 -> 1063 bytes UI/Sprites/Xbox/Shape=Share.png.meta | 140 + UI/Sprites/Xbox/Shape=Stick_Press.png | Bin 0 -> 3430 bytes UI/Sprites/Xbox/Shape=Stick_Press.png.meta | 140 + UI/Sprites/background_default.png | Bin 0 -> 485382 bytes UI/Sprites/background_default.png.meta | 88 + ...r_3px-thickness_20px-radius_dropshadow.png | Bin 0 -> 3160 bytes ...-thickness_20px-radius_dropshadow.png.meta | 88 + UI/Sprites/border_3px_white_dropshadow.png | Bin 0 -> 4229 bytes .../border_3px_white_dropshadow.png.meta | 88 + UI/Sprites/button-border_black.png | Bin 0 -> 873 bytes UI/Sprites/button-border_black.png.meta | 88 + UI/Sprites/button-border_black_20px.png | Bin 0 -> 1125 bytes UI/Sprites/button-border_black_20px.png.meta | 88 + UI/Sprites/button-border_white.png | Bin 0 -> 1357 bytes UI/Sprites/button-border_white.png.meta | 88 + UI/Sprites/button-border_white_20px.png | Bin 0 -> 1042 bytes UI/Sprites/button-border_white_20px.png.meta | 88 + UI/Sprites/button_secondary_active.png | Bin 0 -> 830 bytes UI/Sprites/button_secondary_active.png.meta | 88 + UI/Sprites/button_secondary_default.png | Bin 0 -> 762 bytes UI/Sprites/button_secondary_default.png.meta | 88 + UI/Sprites/download-circle_4px-border.png | Bin 0 -> 1080 bytes .../download-circle_4px-border.png.meta | 88 + UI/Sprites/gradient_black.png | Bin 0 -> 1923 bytes UI/Sprites/gradient_black.png.meta | 88 + UI/Sprites/gradient_white.png | Bin 0 -> 986 bytes UI/Sprites/gradient_white.png.meta | 88 + UI/Sprites/image_large_border.png | Bin 0 -> 1611 bytes UI/Sprites/image_large_border.png.meta | 88 + UI/Sprites/mod.io.png | Bin 0 -> 874 bytes UI/Sprites/mod.io.png.meta | 88 + UI/Sprites/modio-icon-color.png | Bin 0 -> 459510 bytes UI/Sprites/modio-icon-color.png.meta | 88 + UI/Sprites/radius_16px.png | Bin 0 -> 484 bytes UI/Sprites/radius_16px.png.meta | 88 + UI/Sprites/radius_20px.png | Bin 0 -> 580 bytes UI/Sprites/radius_20px.png.meta | 88 + UI/Sprites/radius_24px.png | Bin 0 -> 681 bytes UI/Sprites/radius_24px.png.meta | 88 + UI/Sprites/radius_40px.png | Bin 0 -> 1129 bytes UI/Sprites/radius_40px.png.meta | 88 + UI/Sprites/radius_4px.png | Bin 0 -> 195 bytes UI/Sprites/radius_4px.png.meta | 88 + UI/Sprites/radius_8px.png | Bin 0 -> 273 bytes UI/Sprites/radius_8px.png.meta | 88 + UI/Sprites/search_icon.png | Bin 0 -> 25099 bytes UI/Sprites/search_icon.png.meta | 88 + UI/Sprites/square_border_3px.png | Bin 0 -> 113 bytes UI/Sprites/square_border_3px.png.meta | 88 + UI/Sprites/white_20x20.png | Bin 0 -> 95 bytes UI/Sprites/white_20x20.png.meta | 88 + UI/TRANSLATIONS.md | 113 + UI/TRANSLATIONS.md.meta | 7 + UI/Translations.meta | 8 + UI/Translations/ITranslatable.cs | 29 + UI/Translations/ITranslatable.cs.meta | 11 + UI/Translations/MessageUpdateTranslations.cs | 13 + .../MessageUpdateTranslations.cs.meta | 11 + UI/Translations/Translatable.cs | 120 + UI/Translations/Translatable.cs.meta | 11 + .../TranslatedLanguageFontPairing.cs | 36 + .../TranslatedLanguageFontPairing.cs.meta | 11 + UI/Translations/TranslatedLanguages.cs | 39 + UI/Translations/TranslatedLanguages.cs.meta | 11 + UI/Translations/Translation Pairing.meta | 8 + .../LanguageFontPairings_Bold.asset | 17 + .../LanguageFontPairings_Bold.asset.meta | 8 + .../LanguageFontPairings_Default.asset | 17 + .../LanguageFontPairings_Default.asset.meta | 8 + UI/Translations/Translation.cs | 91 + UI/Translations/Translation.cs.meta | 11 + UI/Translations/TranslationManager.cs | 355 + UI/Translations/TranslationManager.cs.meta | 11 + UI/Translations/UiTranslatorTest.cs | 33 + UI/Translations/UiTranslatorTest.cs.meta | 11 + UI/UiConfig.asset | 21 + UI/UiConfig.asset.meta | 8 + UI/Utility.meta | 8 + UI/Utility/CollectionProfile.cs | 24 + UI/Utility/CollectionProfile.cs.meta | 11 + UI/Utility/ContextMenuOption.cs | 10 + UI/Utility/ContextMenuOption.cs.meta | 11 + UI/Utility/ContextMenuPanel.cs | 13 + UI/Utility/ContextMenuPanel.cs.meta | 11 + UI/Utility/CoroutineRunner.cs | 11 + UI/Utility/CoroutineRunner.cs.meta | 11 + UI/Utility/Glyph.cs | 45 + UI/Utility/Glyph.cs.meta | 11 + UI/Utility/GlyphPlatforms.cs | 13 + UI/Utility/GlyphPlatforms.cs.meta | 11 + UI/Utility/GlyphSetting.cs | 12 + UI/Utility/GlyphSetting.cs.meta | 11 + UI/Utility/Glyphable.cs | 54 + UI/Utility/Glyphable.cs.meta | 11 + UI/Utility/Glyphs.cs | 64 + UI/Utility/Glyphs.cs.meta | 11 + UI/Utility/InputFieldCoadjutant.cs | 109 + UI/Utility/InputFieldCoadjutant.cs.meta | 11 + UI/Utility/MainCanvasTmp.cs | 18 + UI/Utility/MainCanvasTmp.cs.meta | 11 + UI/Utility/ModListRow.cs | 222 + UI/Utility/ModListRow.cs.meta | 11 + UI/Utility/ModListRowPositionIndicator.cs | 13 + .../ModListRowPositionIndicator.cs.meta | 11 + UI/Utility/QueueRunner.cs | 54 + UI/Utility/QueueRunner.cs.meta | 11 + UI/Utility/RectTransformOverlap.cs | 91 + UI/Utility/RectTransformOverlap.cs.meta | 11 + UI/Utility/SelectableFeatureImage.cs | 28 + UI/Utility/SelectableFeatureImage.cs.meta | 11 + UI/Utility/SubscribedProgressTab.cs | 160 + UI/Utility/SubscribedProgressTab.cs.meta | 11 + UI/Utility/Tag.cs | 41 + UI/Utility/Tag.cs.meta | 11 + UI/Utility/TagJumpToSelection.cs | 92 + UI/Utility/TagJumpToSelection.cs.meta | 11 + UI/Utility/TransformExtensions.cs | 26 + UI/Utility/TransformExtensions.cs.meta | 11 + UI/Utility/ViewportRestraint.cs | 143 + UI/Utility/ViewportRestraint.cs.meta | 11 + UI/Utility/WebBrowser.meta | 8 + UI/Utility/WebBrowser/WebBrowser.cs | 14 + UI/Utility/WebBrowser/WebBrowser.cs.meta | 11 + UI/modio.UI.asmdef | 20 + UI/modio.UI.asmdef.meta | 7 + UI/sfx_Click1.wav | Bin 0 -> 61790 bytes UI/sfx_Click1.wav.meta | 22 + UI/sfx_Rollover1.wav | Bin 0 -> 61790 bytes UI/sfx_Rollover1.wav.meta | 22 + modio.UnityPlugin.asmdef | 16 + modio.UnityPlugin.asmdef.meta | 9 + 1245 files changed, 208973 insertions(+) create mode 100644 Documentation.meta create mode 100644 Documentation/FONT_EULA.pdf create mode 100644 Documentation/FONT_EULA.pdf.meta create mode 100644 Documentation/Full_Documentation.pdf create mode 100644 Documentation/Full_Documentation.pdf.meta create mode 100644 Documentation/LICENSE.md create mode 100644 Documentation/LICENSE.md.meta create mode 100644 Documentation/UPGRADING.md create mode 100644 Documentation/UPGRADING.md.meta create mode 100644 Editor.meta create mode 100644 Editor/ModIO.EditorCode.meta create mode 100644 Editor/ModIO.EditorCode/EditorMenu.cs create mode 100644 Editor/ModIO.EditorCode/EditorMenu.cs.meta create mode 100644 Editor/ModIO.EditorCode/SettingsAssetEditor.cs create mode 100644 Editor/ModIO.EditorCode/SettingsAssetEditor.cs.meta create mode 100644 English.txt create mode 100644 English.txt.meta create mode 100644 Platform.meta create mode 100644 Platform/Editor.meta create mode 100644 Platform/Editor/ModIO.Implementation.Platform.meta create mode 100644 Platform/Editor/ModIO.Implementation.Platform/EditorDataService.cs create mode 100644 Platform/Editor/ModIO.Implementation.Platform/EditorDataService.cs.meta create mode 100644 Platform/Editor/ModIO.Implementation.Platform/PlatformConfiguration_Editor.cs create mode 100644 Platform/Editor/ModIO.Implementation.Platform/PlatformConfiguration_Editor.cs.meta create mode 100644 Platform/SystemIO.meta create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform.meta create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/PlatformConfiguration_SystemIO.cs create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/PlatformConfiguration_SystemIO.cs.meta create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Android.cs create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Android.cs.meta create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Standalone.cs create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Standalone.cs.meta create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_iOS.cs create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_iOS.cs.meta create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/SystemIODataService.cs create mode 100644 Platform/SystemIO/ModIO.Implementation.Platform/SystemIODataService.cs.meta create mode 100644 README.md create mode 100644 README.md.meta create mode 100644 Runtime.meta create mode 100644 Runtime/Classes.meta create mode 100644 Runtime/Classes/CreationToken.cs create mode 100644 Runtime/Classes/CreationToken.cs.meta create mode 100644 Runtime/Classes/ModIoWebRequest.cs create mode 100644 Runtime/Classes/ModIoWebRequest.cs.meta create mode 100644 Runtime/Classes/ModProfileDetails.cs create mode 100644 Runtime/Classes/ModProfileDetails.cs.meta create mode 100644 Runtime/Classes/ModfileDetails.cs create mode 100644 Runtime/Classes/ModfileDetails.cs.meta create mode 100644 Runtime/Classes/ProgressHandle.cs create mode 100644 Runtime/Classes/ProgressHandle.cs.meta create mode 100644 Runtime/Classes/Report.cs create mode 100644 Runtime/Classes/Report.cs.meta create mode 100644 Runtime/Classes/ResultAnd.cs create mode 100644 Runtime/Classes/ResultAnd.cs.meta create mode 100644 Runtime/Classes/SearchFilter.cs create mode 100644 Runtime/Classes/SearchFilter.cs.meta create mode 100644 Runtime/Delegates.meta create mode 100644 Runtime/Delegates/LogMessageDelegate.cs create mode 100644 Runtime/Delegates/LogMessageDelegate.cs.meta create mode 100644 Runtime/Delegates/ModManagementEventDelegate.cs create mode 100644 Runtime/Delegates/ModManagementEventDelegate.cs.meta create mode 100644 Runtime/Enums.meta create mode 100644 Runtime/Enums/AuthenticationServiceProvider.cs create mode 100644 Runtime/Enums/AuthenticationServiceProvider.cs.meta create mode 100644 Runtime/Enums/AvatarSize.cs create mode 100644 Runtime/Enums/AvatarSize.cs.meta create mode 100644 Runtime/Enums/CommunityOptions.cs create mode 100644 Runtime/Enums/CommunityOptions.cs.meta create mode 100644 Runtime/Enums/ContentWarnings.cs create mode 100644 Runtime/Enums/ContentWarnings.cs.meta create mode 100644 Runtime/Enums/LogLevel.cs create mode 100644 Runtime/Enums/LogLevel.cs.meta create mode 100644 Runtime/Enums/ModManagementEventType.cs create mode 100644 Runtime/Enums/ModManagementEventType.cs.meta create mode 100644 Runtime/Enums/ModManagementOperationType.cs create mode 100644 Runtime/Enums/ModManagementOperationType.cs.meta create mode 100644 Runtime/Enums/ModRating.cs create mode 100644 Runtime/Enums/ModRating.cs.meta create mode 100644 Runtime/Enums/ModStatus.cs create mode 100644 Runtime/Enums/ModStatus.cs.meta create mode 100644 Runtime/Enums/OculusDevice.cs create mode 100644 Runtime/Enums/OculusDevice.cs.meta create mode 100644 Runtime/Enums/PlayStationEnvironment.cs create mode 100644 Runtime/Enums/PlayStationEnvironment.cs.meta create mode 100644 Runtime/Enums/ReportType.cs create mode 100644 Runtime/Enums/ReportType.cs.meta create mode 100644 Runtime/Enums/SortModsBy.cs create mode 100644 Runtime/Enums/SortModsBy.cs.meta create mode 100644 Runtime/Enums/SubscribedModStatus.cs create mode 100644 Runtime/Enums/SubscribedModStatus.cs.meta create mode 100644 Runtime/Enums/UserPortal.cs create mode 100644 Runtime/Enums/UserPortal.cs.meta create mode 100644 Runtime/Interfaces.meta create mode 100644 Runtime/Interfaces/IModIoWebRequest.cs create mode 100644 Runtime/Interfaces/IModIoWebRequest.cs.meta create mode 100644 Runtime/ModIO.Implementation.meta create mode 100644 Runtime/ModIO.Implementation/Classes.meta create mode 100644 Runtime/ModIO.Implementation/Classes/CompressOperationBase.cs create mode 100644 Runtime/ModIO.Implementation/Classes/CompressOperationBase.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/CompressOperationDirectory.cs create mode 100644 Runtime/ModIO.Implementation/Classes/CompressOperationDirectory.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/CompressOperationMultiple.cs create mode 100644 Runtime/ModIO.Implementation/Classes/CompressOperationMultiple.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ExtractOperation.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ExtractOperation.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/FileStreamXXX.cs create mode 100644 Runtime/ModIO.Implementation/Classes/FileStreamXXX.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/LogToPC.cs create mode 100644 Runtime/ModIO.Implementation/Classes/LogToPC.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/Logger.cs create mode 100644 Runtime/ModIO.Implementation/Classes/Logger.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ModCollectionEntry.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ModCollectionEntry.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ModCollectionManager.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ModCollectionManager.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ModCollectionRegistry.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ModCollectionRegistry.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ModIOUnityImplementation.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ModIOUnityImplementation.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ModIOVersion.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ModIOVersion.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ModIdConverter.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ModIdConverter.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ModManagement.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ModManagement.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ModManagementJob.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ModManagementJob.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/OpenCallbacks.cs create mode 100644 Runtime/ModIO.Implementation/Classes/OpenCallbacks.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ResultAnd.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ResultAnd.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ResultBuilder.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ResultBuilder.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/ResultCode.cs create mode 100644 Runtime/ModIO.Implementation/Classes/ResultCode.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/Settings.cs create mode 100644 Runtime/ModIO.Implementation/Classes/Settings.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/SettingsAsset.cs create mode 100644 Runtime/ModIO.Implementation/Classes/SettingsAsset.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/TaskExtensions.cs create mode 100644 Runtime/ModIO.Implementation/Classes/TaskExtensions.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/TaskPriority.cs create mode 100644 Runtime/ModIO.Implementation/Classes/TaskPriority.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/TaskQueueRunner.cs create mode 100644 Runtime/ModIO.Implementation/Classes/TaskQueueRunner.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/TaskQueueRunnerResult.cs create mode 100644 Runtime/ModIO.Implementation/Classes/TaskQueueRunnerResult.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/UnityDispatcher.cs create mode 100644 Runtime/ModIO.Implementation/Classes/UnityDispatcher.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/UserData.cs create mode 100644 Runtime/ModIO.Implementation/Classes/UserData.cs.meta create mode 100644 Runtime/ModIO.Implementation/Classes/UserModCollectionData.cs create mode 100644 Runtime/ModIO.Implementation/Classes/UserModCollectionData.cs.meta create mode 100644 Runtime/ModIO.Implementation/Enums.meta create mode 100644 Runtime/ModIO.Implementation/Enums/LogPrefix.cs create mode 100644 Runtime/ModIO.Implementation/Enums/LogPrefix.cs.meta create mode 100644 Runtime/ModIO.Implementation/Enums/ReportResourceType.cs create mode 100644 Runtime/ModIO.Implementation/Enums/ReportResourceType.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/BinaryDataContainer.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/BinaryDataContainer.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/CacheSizeStream.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/CacheSizeStream.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/RequestHandle.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/RequestHandle.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseCache.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseCache.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseTranslator.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseTranslator.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/ServerConstants.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/ServerConstants.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/StreamUploadContainer.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/StreamUploadContainer.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/UnityMainThreadDispatcher.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/UnityMainThreadDispatcher.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestConfig.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestConfig.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestManager.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestManager.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestRunner.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestRunner.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Enums.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Enums/ResponseCodeType.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Enums/ResponseCodeType.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestMethodType.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestMethodType.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestResponseType.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestResponseType.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AccessTokenObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AccessTokenObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AotTypeEnforcer.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AotTypeEnforcer.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AvatarObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AvatarObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/DownloadObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/DownloadObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/Error.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/Error.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ErrorObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ErrorObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/FilehashObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/FilehashObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/GameTagOptionObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/GameTagOptionObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ImageObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ImageObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/LogoObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/LogoObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MessageObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MessageObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MetadataKVPObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MetadataKVPObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModEventObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModEventObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModMediaObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModMediaObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModStatsObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModStatsObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModTagObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModTagObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModfileObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModfileObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonOptionObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonOptionObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinkObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinkObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinksObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinksObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserEventObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserEventObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserObject.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserObject.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddMod.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddMod.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModMedia.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModMedia.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModRating.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModRating.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModTags.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModTags.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModfile.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModfile.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateUser.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateUser.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateViaEmail.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateViaEmail.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteMod.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteMod.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteModTags.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteModTags.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/EditMod.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/EditMod.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Filtering.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Filtering.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetAuthenticatedUser.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetAuthenticatedUser.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserCreations.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserCreations.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserRatings.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserRatings.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetGameTags.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetGameTags.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMod.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMod.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModDependencies.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModDependencies.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModEvents.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModEvents.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMods.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMods.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetTerms.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetTerms.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserEvents.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserEvents.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserSubscriptions.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserSubscriptions.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/PaginatedResponse.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/PaginatedResponse.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Report.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Report.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/SubscribeToMod.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/SubscribeToMod.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UnsubscribeFromMod.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UnsubscribeFromMod.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserMute.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserMute.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserUnmute.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserUnmute.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Classes.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Classes/FileStreamWrapper.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Classes/FileStreamWrapper.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Classes/PlatformConfiguration.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Classes/PlatformConfiguration.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Classes/SystemIOWrapper.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Classes/SystemIOWrapper.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IDataService.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IDataService.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IPersistentDataService.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IPersistentDataService.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ITempDataService.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ITempDataService.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IUserDataService.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IUserDataService.cs.meta create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ModIOFileStream.cs create mode 100644 Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ModIOFileStream.cs.meta create mode 100644 Runtime/ModIO.Implementation/Interfaces.meta create mode 100644 Runtime/ModIO.Implementation/Interfaces/IModIOZipOperation.cs create mode 100644 Runtime/ModIO.Implementation/Interfaces/IModIOZipOperation.cs.meta create mode 100644 Runtime/ModIO.Implementation/Statics.meta create mode 100644 Runtime/ModIO.Implementation/Statics/DataStorage.cs create mode 100644 Runtime/ModIO.Implementation/Statics/DataStorage.cs.meta create mode 100644 Runtime/ModIO.Implementation/Statics/FilterUtil.cs create mode 100644 Runtime/ModIO.Implementation/Statics/FilterUtil.cs.meta create mode 100644 Runtime/ModIO.Implementation/Statics/IOUtil.cs create mode 100644 Runtime/ModIO.Implementation/Statics/IOUtil.cs.meta create mode 100644 Runtime/ModIO.Implementation/TestAssemblyHelper.cs create mode 100644 Runtime/ModIO.Implementation/TestAssemblyHelper.cs.meta create mode 100644 Runtime/ModIOUnity.cs create mode 100644 Runtime/ModIOUnity.cs.meta create mode 100644 Runtime/ModIOUnityAsync.cs create mode 100644 Runtime/ModIOUnityAsync.cs.meta create mode 100644 Runtime/Structs.meta create mode 100644 Runtime/Structs/BuildSettings.cs create mode 100644 Runtime/Structs/BuildSettings.cs.meta create mode 100644 Runtime/Structs/DownloadReference.cs create mode 100644 Runtime/Structs/DownloadReference.cs.meta create mode 100644 Runtime/Structs/InstalledMod.cs create mode 100644 Runtime/Structs/InstalledMod.cs.meta create mode 100644 Runtime/Structs/InstalledModExtensions.cs create mode 100644 Runtime/Structs/InstalledModExtensions.cs.meta create mode 100644 Runtime/Structs/ModDependencies.cs create mode 100644 Runtime/Structs/ModDependencies.cs.meta create mode 100644 Runtime/Structs/ModDependenciesObject.cs create mode 100644 Runtime/Structs/ModDependenciesObject.cs.meta create mode 100644 Runtime/Structs/ModID.cs create mode 100644 Runtime/Structs/ModID.cs.meta create mode 100644 Runtime/Structs/ModPage.cs create mode 100644 Runtime/Structs/ModPage.cs.meta create mode 100644 Runtime/Structs/ModProfile.cs create mode 100644 Runtime/Structs/ModProfile.cs.meta create mode 100644 Runtime/Structs/ModStats.cs create mode 100644 Runtime/Structs/ModStats.cs.meta create mode 100644 Runtime/Structs/Rating.cs create mode 100644 Runtime/Structs/Rating.cs.meta create mode 100644 Runtime/Structs/RatingObject.cs create mode 100644 Runtime/Structs/RatingObject.cs.meta create mode 100644 Runtime/Structs/Result.cs create mode 100644 Runtime/Structs/Result.cs.meta create mode 100644 Runtime/Structs/ServerSettings.cs create mode 100644 Runtime/Structs/ServerSettings.cs.meta create mode 100644 Runtime/Structs/SubscribedMod.cs create mode 100644 Runtime/Structs/SubscribedMod.cs.meta create mode 100644 Runtime/Structs/Tag.cs create mode 100644 Runtime/Structs/Tag.cs.meta create mode 100644 Runtime/Structs/TagCategory.cs create mode 100644 Runtime/Structs/TagCategory.cs.meta create mode 100644 Runtime/Structs/TermsHash.cs create mode 100644 Runtime/Structs/TermsHash.cs.meta create mode 100644 Runtime/Structs/TermsOfUse.cs create mode 100644 Runtime/Structs/TermsOfUse.cs.meta create mode 100644 Runtime/Structs/TermsOfUseLink.cs create mode 100644 Runtime/Structs/TermsOfUseLink.cs.meta create mode 100644 Runtime/Structs/UserInstalledMod.cs create mode 100644 Runtime/Structs/UserInstalledMod.cs.meta create mode 100644 Runtime/Structs/UserProfile.cs create mode 100644 Runtime/Structs/UserProfile.cs.meta create mode 100644 Runtime/Utility.meta create mode 100644 Runtime/Utility/CoroutineRunner.cs create mode 100644 Runtime/Utility/CoroutineRunner.cs.meta create mode 100644 Runtime/Utility/MonoDispatcher.cs create mode 100644 Runtime/Utility/MonoDispatcher.cs.meta create mode 100644 Runtime/Utility/MonoSingleton.cs create mode 100644 Runtime/Utility/MonoSingleton.cs.meta create mode 100644 Runtime/Utility/Mutex.cs create mode 100644 Runtime/Utility/Mutex.cs.meta create mode 100644 Runtime/Utility/PrefabPool.cs create mode 100644 Runtime/Utility/PrefabPool.cs.meta create mode 100644 Runtime/Utility/SelfInstancingMonoSingleton.cs create mode 100644 Runtime/Utility/SelfInstancingMonoSingleton.cs.meta create mode 100644 Runtime/Utility/SimpleMessageHub.cs create mode 100644 Runtime/Utility/SimpleMessageHub.cs.meta create mode 100644 Runtime/Utility/SimpleMessageHubTester.cs create mode 100644 Runtime/Utility/SimpleMessageHubTester.cs.meta create mode 100644 Runtime/Utility/SimpleMessageUnsubscribeToken.cs create mode 100644 Runtime/Utility/SimpleMessageUnsubscribeToken.cs.meta create mode 100644 Runtime/Utility/SimpleSingleton.cs create mode 100644 Runtime/Utility/SimpleSingleton.cs.meta create mode 100644 Runtime/Utility/Utility.cs create mode 100644 Runtime/Utility/Utility.cs.meta create mode 100644 Swedish.txt create mode 100644 Swedish.txt.meta create mode 100644 ThirdParty.meta create mode 100644 ThirdParty/SharpZip.meta create mode 100644 ThirdParty/SharpZip/LICENSE.txt create mode 100644 ThirdParty/SharpZip/LICENSE.txt.meta create mode 100644 ThirdParty/SharpZip/README.md create mode 100644 ThirdParty/SharpZip/README.md.meta create mode 100644 ThirdParty/SharpZip/src.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Adler32.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Adler32.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Crc32.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Crc32.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/CrcUtilities.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/CrcUtilities.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/EmptyRefs.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/EmptyRefs.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/SharpZipBaseException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/SharpZipBaseException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamDecodingException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamDecodingException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamUnsupportedException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamUnsupportedException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/UnexpectedEndOfStreamException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/UnexpectedEndOfStreamException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/ValueOutOfRangeException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/ValueOutOfRangeException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/INameTransform.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/INameTransform.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/IScanFilter.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/IScanFilter.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/InvalidNameException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/InvalidNameException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/NameFilter.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/NameFilter.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathFilter.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathFilter.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathUtils.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathUtils.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/StreamUtils.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/StreamUtils.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZip.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZip.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarArchive.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarArchive.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarEntry.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarEntry.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarExtendedHeaderReader.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarExtendedHeaderReader.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarHeader.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarHeader.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/FastZip.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/FastZip.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEncryptionMethod.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEncryptionMethod.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryExtensions.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryExtensions.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipException.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipException.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs.meta create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipStrings.cs create mode 100644 ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipStrings.cs.meta create mode 100644 UI.meta create mode 100644 UI/Animations.meta create mode 100644 UI/Animations/BrowserModListItem_Deflate.anim create mode 100644 UI/Animations/BrowserModListItem_Deflate.anim.meta create mode 100644 UI/Animations/BrowserModListItem_Inflate.anim create mode 100644 UI/Animations/BrowserModListItem_Inflate.anim.meta create mode 100644 UI/Animations/BrowserModListItem_RegularSelected.controller create mode 100644 UI/Animations/BrowserModListItem_RegularSelected.controller.meta create mode 100644 UI/Animations/Loading anim.controller create mode 100644 UI/Animations/Loading anim.controller.meta create mode 100644 UI/Animations/LoopingLoadingAnimation.anim create mode 100644 UI/Animations/LoopingLoadingAnimation.anim.meta create mode 100644 UI/Animations/SearchResultListItem_Deflate.anim create mode 100644 UI/Animations/SearchResultListItem_Deflate.anim.meta create mode 100644 UI/Animations/SearchResultListItem_Inflate.anim create mode 100644 UI/Animations/SearchResultListItem_Inflate.anim.meta create mode 100644 UI/Animations/SearchResultListItem_RegularSelected.controller create mode 100644 UI/Animations/SearchResultListItem_RegularSelected.controller.meta create mode 100644 UI/Color Scheme.meta create mode 100644 UI/Color Scheme/ColorApplierImage.cs create mode 100644 UI/Color Scheme/ColorApplierImage.cs.meta create mode 100644 UI/Color Scheme/ColorScheme.cs create mode 100644 UI/Color Scheme/ColorScheme.cs.meta create mode 100644 UI/Color Scheme/ColorSchemeBlock.cs create mode 100644 UI/Color Scheme/ColorSchemeBlock.cs.meta create mode 100644 UI/Color Scheme/ColorSetter.cs create mode 100644 UI/Color Scheme/ColorSetter.cs.meta create mode 100644 UI/Color Scheme/ColorSetterType.cs create mode 100644 UI/Color Scheme/ColorSetterType.cs.meta create mode 100644 UI/Color Scheme/MultiTargetButton.cs create mode 100644 UI/Color Scheme/MultiTargetButton.cs.meta create mode 100644 UI/Color Scheme/MultiTargetDropdown.cs create mode 100644 UI/Color Scheme/MultiTargetDropdown.cs.meta create mode 100644 UI/Color Scheme/MultiTargetToggle.cs create mode 100644 UI/Color Scheme/MultiTargetToggle.cs.meta create mode 100644 UI/Color Scheme/MultiTargetTransition.cs create mode 100644 UI/Color Scheme/MultiTargetTransition.cs.meta create mode 100644 UI/Color Scheme/Target.cs create mode 100644 UI/Color Scheme/Target.cs.meta create mode 100644 UI/Color Scheme/UI Component Prefabs.meta create mode 100644 UI/Color Scheme/UI Component Prefabs/Button with Cue Variant.prefab create mode 100644 UI/Color Scheme/UI Component Prefabs/Button with Cue Variant.prefab.meta create mode 100644 UI/Color Scheme/UI Component Prefabs/Button.prefab create mode 100644 UI/Color Scheme/UI Component Prefabs/Button.prefab.meta create mode 100644 UI/Color Scheme/UI Component Prefabs/Close (X).prefab create mode 100644 UI/Color Scheme/UI Component Prefabs/Close (X).prefab.meta create mode 100644 UI/Color Scheme/UI Component Prefabs/Dropdown.prefab create mode 100644 UI/Color Scheme/UI Component Prefabs/Dropdown.prefab.meta create mode 100644 UI/Color Scheme/UI Component Prefabs/InputField.prefab create mode 100644 UI/Color Scheme/UI Component Prefabs/InputField.prefab.meta create mode 100644 UI/Color Scheme/UI Component Prefabs/More options.prefab create mode 100644 UI/Color Scheme/UI Component Prefabs/More options.prefab.meta create mode 100644 UI/Editor.meta create mode 100644 UI/Editor/ButtonAttribute.cs create mode 100644 UI/Editor/ButtonAttribute.cs.meta create mode 100644 UI/Editor/ColorSchemeEditor.cs create mode 100644 UI/Editor/ColorSchemeEditor.cs.meta create mode 100644 UI/Editor/ColorSetterEditor.cs create mode 100644 UI/Editor/ColorSetterEditor.cs.meta create mode 100644 UI/Editor/MonoBehaviourCustomEditor.cs create mode 100644 UI/Editor/MonoBehaviourCustomEditor.cs.meta create mode 100644 UI/Editor/MultiTargetButtonEditor.cs create mode 100644 UI/Editor/MultiTargetButtonEditor.cs.meta create mode 100644 UI/Editor/MultiTargetDropdownEditor.cs create mode 100644 UI/Editor/MultiTargetDropdownEditor.cs.meta create mode 100644 UI/Editor/MultiTargetToggleEditor.cs create mode 100644 UI/Editor/MultiTargetToggleEditor.cs.meta create mode 100644 UI/Examples.meta create mode 100644 UI/Examples/Example Title Canvas.prefab create mode 100644 UI/Examples/Example Title Canvas.prefab.meta create mode 100644 UI/Examples/Example.unity create mode 100644 UI/Examples/Example.unity.meta create mode 100644 UI/Examples/ExampleInputCapture.cs create mode 100644 UI/Examples/ExampleInputCapture.cs.meta create mode 100644 UI/Examples/ExampleTitleScene.cs create mode 100644 UI/Examples/ExampleTitleScene.cs.meta create mode 100644 UI/Examples/ExmapleGlyphSetter.cs create mode 100644 UI/Examples/ExmapleGlyphSetter.cs.meta create mode 100644 UI/Examples/ModIOBrowser.prefab create mode 100644 UI/Examples/ModIOBrowser.prefab.meta create mode 100644 UI/Examples/Settings Panel.prefab create mode 100644 UI/Examples/Settings Panel.prefab.meta create mode 100644 UI/Fonts.meta create mode 100644 UI/Fonts/EuclidCircularB-Bold.otf create mode 100644 UI/Fonts/EuclidCircularB-Bold.otf.meta create mode 100644 UI/Fonts/EuclidCircularB-BoldItalic.otf create mode 100644 UI/Fonts/EuclidCircularB-BoldItalic.otf.meta create mode 100644 UI/Fonts/EuclidCircularB-Light.otf create mode 100644 UI/Fonts/EuclidCircularB-Light.otf.meta create mode 100644 UI/Fonts/EuclidCircularB-LightItalic.otf create mode 100644 UI/Fonts/EuclidCircularB-LightItalic.otf.meta create mode 100644 UI/Fonts/EuclidCircularB-Medium.otf create mode 100644 UI/Fonts/EuclidCircularB-Medium.otf.meta create mode 100644 UI/Fonts/EuclidCircularB-MediumItalic.otf create mode 100644 UI/Fonts/EuclidCircularB-MediumItalic.otf.meta create mode 100644 UI/Fonts/EuclidCircularB-Regular.otf create mode 100644 UI/Fonts/EuclidCircularB-Regular.otf.meta create mode 100644 UI/Fonts/EuclidCircularB-RegularItalic.otf create mode 100644 UI/Fonts/EuclidCircularB-RegularItalic.otf.meta create mode 100644 UI/Fonts/EuclidCircularB-Semibold.otf create mode 100644 UI/Fonts/EuclidCircularB-Semibold.otf.meta create mode 100644 UI/Fonts/EuclidCircularB-SemiboldItalic.otf create mode 100644 UI/Fonts/EuclidCircularB-SemiboldItalic.otf.meta create mode 100644 UI/Fonts/TMPro Fonts.meta create mode 100644 UI/Fonts/TMPro Fonts/EuclidCircularB-Regular SDF.asset create mode 100644 UI/Fonts/TMPro Fonts/EuclidCircularB-Regular SDF.asset.meta create mode 100644 UI/Fonts/TMPro Fonts/EuclidCircularB-Semibold SDF.asset create mode 100644 UI/Fonts/TMPro Fonts/EuclidCircularB-Semibold SDF.asset.meta create mode 100644 UI/Glyphs.meta create mode 100644 UI/Glyphs/Action_Buttons_Background.asset create mode 100644 UI/Glyphs/Action_Buttons_Background.asset.meta create mode 100644 UI/Glyphs/Action_Buttons_Bottom.asset create mode 100644 UI/Glyphs/Action_Buttons_Bottom.asset.meta create mode 100644 UI/Glyphs/Action_Buttons_Left.asset create mode 100644 UI/Glyphs/Action_Buttons_Left.asset.meta create mode 100644 UI/Glyphs/Action_Buttons_Right.asset create mode 100644 UI/Glyphs/Action_Buttons_Right.asset.meta create mode 100644 UI/Glyphs/Action_Buttons_Top.asset create mode 100644 UI/Glyphs/Action_Buttons_Top.asset.meta create mode 100644 UI/Glyphs/LB.asset create mode 100644 UI/Glyphs/LB.asset.meta create mode 100644 UI/Glyphs/LB_Background.asset create mode 100644 UI/Glyphs/LB_Background.asset.meta create mode 100644 UI/Glyphs/Menu.asset create mode 100644 UI/Glyphs/Menu.asset.meta create mode 100644 UI/Glyphs/Menu_Background.asset create mode 100644 UI/Glyphs/Menu_Background.asset.meta create mode 100644 UI/Glyphs/RB.asset create mode 100644 UI/Glyphs/RB.asset.meta create mode 100644 UI/Glyphs/RB_Background.asset create mode 100644 UI/Glyphs/RB_Background.asset.meta create mode 100644 UI/Glyphs/RS.asset create mode 100644 UI/Glyphs/RS.asset.meta create mode 100644 UI/Glyphs/RS_Background.asset create mode 100644 UI/Glyphs/RS_Background.asset.meta create mode 100644 UI/ListItems.meta create mode 100644 UI/ListItems/CollectionModListItem.cs create mode 100644 UI/ListItems/CollectionModListItem.cs.meta create mode 100644 UI/ListItems/ContextMenuListItem.cs create mode 100644 UI/ListItems/ContextMenuListItem.cs.meta create mode 100644 UI/ListItems/DownloadQueueListItem.cs create mode 100644 UI/ListItems/DownloadQueueListItem.cs.meta create mode 100644 UI/ListItems/FeaturedModListItem.cs create mode 100644 UI/ListItems/FeaturedModListItem.cs.meta create mode 100644 UI/ListItems/GalleryImageButtonListItem.cs create mode 100644 UI/ListItems/GalleryImageButtonListItem.cs.meta create mode 100644 UI/ListItems/HomeModListItem.cs create mode 100644 UI/ListItems/HomeModListItem.cs.meta create mode 100644 UI/ListItems/ListItem.cs create mode 100644 UI/ListItems/ListItem.cs.meta create mode 100644 UI/ListItems/SearchResultListItem.cs create mode 100644 UI/ListItems/SearchResultListItem.cs.meta create mode 100644 UI/ListItems/TagCategoryListItem.cs create mode 100644 UI/ListItems/TagCategoryListItem.cs.meta create mode 100644 UI/ListItems/TagListItem.cs create mode 100644 UI/ListItems/TagListItem.cs.meta create mode 100644 UI/Overlays.meta create mode 100644 UI/Overlays/HomeModListItem_Overlay.cs create mode 100644 UI/Overlays/HomeModListItem_Overlay.cs.meta create mode 100644 UI/Overlays/SearchResultListItem_Overlay.cs create mode 100644 UI/Overlays/SearchResultListItem_Overlay.cs.meta create mode 100644 UI/Overlays/SelectionOverlayHandler.cs create mode 100644 UI/Overlays/SelectionOverlayHandler.cs.meta create mode 100644 UI/Prefabs.meta create mode 100644 UI/Prefabs/5DigitInputPopup.meta create mode 100644 UI/Prefabs/5DigitInputPopup/5DigitInput.prefab create mode 100644 UI/Prefabs/5DigitInputPopup/5DigitInput.prefab.meta create mode 100644 UI/Prefabs/Authentication Popup.meta create mode 100644 UI/Prefabs/Authentication Popup/Authentication Popup.prefab create mode 100644 UI/Prefabs/Authentication Popup/Authentication Popup.prefab.meta create mode 100644 UI/Prefabs/Collections.meta create mode 100644 UI/Prefabs/Collections/CollectionListItem_Regular.prefab create mode 100644 UI/Prefabs/Collections/CollectionListItem_Regular.prefab.meta create mode 100644 UI/Prefabs/Collections/Mod Collection.prefab create mode 100644 UI/Prefabs/Collections/Mod Collection.prefab.meta create mode 100644 UI/Prefabs/ContextMenu.meta create mode 100644 UI/Prefabs/ContextMenu/ContextMenu.prefab create mode 100644 UI/Prefabs/ContextMenu/ContextMenu.prefab.meta create mode 100644 UI/Prefabs/ContextMenu/ContextMenuListItem.prefab create mode 100644 UI/Prefabs/ContextMenu/ContextMenuListItem.prefab.meta create mode 100644 UI/Prefabs/Details.meta create mode 100644 UI/Prefabs/Details/ModDetails Panel.prefab create mode 100644 UI/Prefabs/Details/ModDetails Panel.prefab.meta create mode 100644 UI/Prefabs/Download.meta create mode 100644 UI/Prefabs/Download/Downloads.prefab create mode 100644 UI/Prefabs/Download/Downloads.prefab.meta create mode 100644 UI/Prefabs/DownloadQueueListItem.prefab create mode 100644 UI/Prefabs/DownloadQueueListItem.prefab.meta create mode 100644 UI/Prefabs/ExampleInputCapture.prefab create mode 100644 UI/Prefabs/ExampleInputCapture.prefab.meta create mode 100644 UI/Prefabs/GalleryImageButtonListItem.prefab create mode 100644 UI/Prefabs/GalleryImageButtonListItem.prefab.meta create mode 100644 UI/Prefabs/GlyphSettings.prefab create mode 100644 UI/Prefabs/GlyphSettings.prefab.meta create mode 100644 UI/Prefabs/Home.meta create mode 100644 UI/Prefabs/Home/BrowserModListItem_Featured.prefab create mode 100644 UI/Prefabs/Home/BrowserModListItem_Featured.prefab.meta create mode 100644 UI/Prefabs/Home/BrowserModListItem_Regular.prefab create mode 100644 UI/Prefabs/Home/BrowserModListItem_Regular.prefab.meta create mode 100644 UI/Prefabs/Home/BrowserModListItem_RegularSelected.prefab create mode 100644 UI/Prefabs/Home/BrowserModListItem_RegularSelected.prefab.meta create mode 100644 UI/Prefabs/Home/Home.prefab create mode 100644 UI/Prefabs/Home/Home.prefab.meta create mode 100644 UI/Prefabs/Input Navigation.prefab create mode 100644 UI/Prefabs/Input Navigation.prefab.meta create mode 100644 UI/Prefabs/Loading Icon.prefab create mode 100644 UI/Prefabs/Loading Icon.prefab.meta create mode 100644 UI/Prefabs/Log In & Settings.meta create mode 100644 UI/Prefabs/Log In & Settings/Log in & settings.prefab create mode 100644 UI/Prefabs/Log In & Settings/Log in & settings.prefab.meta create mode 100644 UI/Prefabs/NavBar.meta create mode 100644 UI/Prefabs/NavBar/Top Nav Bar.prefab create mode 100644 UI/Prefabs/NavBar/Top Nav Bar.prefab.meta create mode 100644 UI/Prefabs/Notification Popup.meta create mode 100644 UI/Prefabs/Notification Popup/NotificationPopup.prefab create mode 100644 UI/Prefabs/Notification Popup/NotificationPopup.prefab.meta create mode 100644 UI/Prefabs/ProgressTab.prefab create mode 100644 UI/Prefabs/ProgressTab.prefab.meta create mode 100644 UI/Prefabs/Report Panel.meta create mode 100644 UI/Prefabs/Report Panel/Report Panel.prefab create mode 100644 UI/Prefabs/Report Panel/Report Panel.prefab.meta create mode 100644 UI/Prefabs/Search Panel.meta create mode 100644 UI/Prefabs/Search Panel/Search Panel.prefab create mode 100644 UI/Prefabs/Search Panel/Search Panel.prefab.meta create mode 100644 UI/Prefabs/SearchResultListItem_Regular.prefab create mode 100644 UI/Prefabs/SearchResultListItem_Regular.prefab.meta create mode 100644 UI/Prefabs/SearchResultListItem_RegularSelected.prefab create mode 100644 UI/Prefabs/SearchResultListItem_RegularSelected.prefab.meta create mode 100644 UI/Prefabs/SearchResults.meta create mode 100644 UI/Prefabs/SearchResults/Search Results Panel.prefab create mode 100644 UI/Prefabs/SearchResults/Search Results Panel.prefab.meta create mode 100644 UI/Prefabs/SelectionManager.prefab create mode 100644 UI/Prefabs/SelectionManager.prefab.meta create mode 100644 UI/Prefabs/SingletonSetup.prefab create mode 100644 UI/Prefabs/SingletonSetup.prefab.meta create mode 100644 UI/Prefabs/SoundPlayer.prefab create mode 100644 UI/Prefabs/SoundPlayer.prefab.meta create mode 100644 UI/Prefabs/TagCategoryListItem.prefab create mode 100644 UI/Prefabs/TagCategoryListItem.prefab.meta create mode 100644 UI/Prefabs/TagListItem.prefab create mode 100644 UI/Prefabs/TagListItem.prefab.meta create mode 100644 UI/Prefabs/Toast Notifications.meta create mode 100644 UI/Prefabs/Toast Notifications/Toast Notifications.prefab create mode 100644 UI/Prefabs/Toast Notifications/Toast Notifications.prefab.meta create mode 100644 UI/Prefabs/Translations.prefab create mode 100644 UI/Prefabs/Translations.prefab.meta create mode 100644 UI/Prefabs/Uninstall Confirmation Menu.meta create mode 100644 UI/Prefabs/Uninstall Confirmation Menu/Uninstall Confirmation Menu.prefab create mode 100644 UI/Prefabs/Uninstall Confirmation Menu/Uninstall Confirmation Menu.prefab.meta create mode 100644 UI/Scripts.meta create mode 100644 UI/Scripts/Browser.cs create mode 100644 UI/Scripts/Browser.cs.meta create mode 100644 UI/Scripts/BrowserSpawnIn.cs create mode 100644 UI/Scripts/BrowserSpawnIn.cs.meta create mode 100644 UI/Scripts/ExampleSettingsPanel.cs create mode 100644 UI/Scripts/ExampleSettingsPanel.cs.meta create mode 100644 UI/Scripts/FindMissingReferences.cs create mode 100644 UI/Scripts/FindMissingReferences.cs.meta create mode 100644 UI/Scripts/ImageTransitions.cs create mode 100644 UI/Scripts/ImageTransitions.cs.meta create mode 100644 UI/Scripts/InputNavigation.cs create mode 100644 UI/Scripts/InputNavigation.cs.meta create mode 100644 UI/Scripts/InputReceiver.cs create mode 100644 UI/Scripts/InputReceiver.cs.meta create mode 100644 UI/Scripts/Mods.cs create mode 100644 UI/Scripts/Mods.cs.meta create mode 100644 UI/Scripts/Navigating.cs create mode 100644 UI/Scripts/Navigating.cs.meta create mode 100644 UI/Scripts/Panels.meta create mode 100644 UI/Scripts/Panels/5Digits.meta create mode 100644 UI/Scripts/Panels/5Digits/KeyInput5Digits.cs create mode 100644 UI/Scripts/Panels/5Digits/KeyInput5Digits.cs.meta create mode 100644 UI/Scripts/Panels/5Digits/KeyInput5DigitsUi.cs create mode 100644 UI/Scripts/Panels/5Digits/KeyInput5DigitsUi.cs.meta create mode 100644 UI/Scripts/Panels/Authentication.cs create mode 100644 UI/Scripts/Panels/Authentication.cs.meta create mode 100644 UI/Scripts/Panels/Authentication.meta create mode 100644 UI/Scripts/Panels/Authentication/AuthenticationPanels.cs create mode 100644 UI/Scripts/Panels/Authentication/AuthenticationPanels.cs.meta create mode 100644 UI/Scripts/Panels/Authentication/Avatar.cs create mode 100644 UI/Scripts/Panels/Authentication/Avatar.cs.meta create mode 100644 UI/Scripts/Panels/Collection.cs create mode 100644 UI/Scripts/Panels/Collection.cs.meta create mode 100644 UI/Scripts/Panels/Details.cs create mode 100644 UI/Scripts/Panels/Details.cs.meta create mode 100644 UI/Scripts/Panels/DownloadQueue.cs create mode 100644 UI/Scripts/Panels/DownloadQueue.cs.meta create mode 100644 UI/Scripts/Panels/Home.cs create mode 100644 UI/Scripts/Panels/Home.cs.meta create mode 100644 UI/Scripts/Panels/ModioContextMenu.cs create mode 100644 UI/Scripts/Panels/ModioContextMenu.cs.meta create mode 100644 UI/Scripts/Panels/NavBar.cs create mode 100644 UI/Scripts/Panels/NavBar.cs.meta create mode 100644 UI/Scripts/Panels/NotificationPopup.cs create mode 100644 UI/Scripts/Panels/NotificationPopup.cs.meta create mode 100644 UI/Scripts/Panels/NotificationPopupButton.cs create mode 100644 UI/Scripts/Panels/NotificationPopupButton.cs.meta create mode 100644 UI/Scripts/Panels/Notifications.cs create mode 100644 UI/Scripts/Panels/Notifications.cs.meta create mode 100644 UI/Scripts/Panels/Reporting.cs create mode 100644 UI/Scripts/Panels/Reporting.cs.meta create mode 100644 UI/Scripts/Panels/SearchPanel.cs create mode 100644 UI/Scripts/Panels/SearchPanel.cs.meta create mode 100644 UI/Scripts/Panels/SearchResults.cs create mode 100644 UI/Scripts/Panels/SearchResults.cs.meta create mode 100644 UI/Scripts/SelectionManager.cs create mode 100644 UI/Scripts/SelectionManager.cs.meta create mode 100644 UI/Scripts/SelectionViewConfigItem.cs create mode 100644 UI/Scripts/SelectionViewConfigItem.cs.meta create mode 100644 UI/Scripts/SingletonAwakener.cs create mode 100644 UI/Scripts/SingletonAwakener.cs.meta create mode 100644 UI/Scripts/Sound.cs create mode 100644 UI/Scripts/Sound.cs.meta create mode 100644 UI/Scripts/SoundPlayer.cs create mode 100644 UI/Scripts/SoundPlayer.cs.meta create mode 100644 UI/Scripts/UiSettings.meta create mode 100644 UI/Scripts/UiSettings/UiSettings.cs create mode 100644 UI/Scripts/UiSettings/UiSettings.cs.meta create mode 100644 UI/Scripts/UiViews.cs create mode 100644 UI/Scripts/UiViews.cs.meta create mode 100644 UI/SoundClick.prefab create mode 100644 UI/SoundClick.prefab.meta create mode 100644 UI/SoundHover.prefab create mode 100644 UI/SoundHover.prefab.meta create mode 100644 UI/Sprites.meta create mode 100644 UI/Sprites/12px_circle.png create mode 100644 UI/Sprites/12px_circle.png.meta create mode 100644 UI/Sprites/20px-radius_dropshadow.png create mode 100644 UI/Sprites/20px-radius_dropshadow.png.meta create mode 100644 UI/Sprites/20px_dropshadow.png create mode 100644 UI/Sprites/20px_dropshadow.png.meta create mode 100644 UI/Sprites/20px_outline.png create mode 100644 UI/Sprites/20px_outline.png.meta create mode 100644 UI/Sprites/20px_outline_thin.png create mode 100644 UI/Sprites/20px_outline_thin.png.meta create mode 100644 UI/Sprites/40px_20px_capsule.png create mode 100644 UI/Sprites/40px_20px_capsule.png.meta create mode 100644 UI/Sprites/40px_outline.png create mode 100644 UI/Sprites/40px_outline.png.meta create mode 100644 UI/Sprites/Icons.meta create mode 100644 UI/Sprites/Icons/Cog.png create mode 100644 UI/Sprites/Icons/Cog.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Apple.png create mode 100644 UI/Sprites/Icons/Platform Icons/Apple.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Discord.png create mode 100644 UI/Sprites/Icons/Platform Icons/Discord.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/EpicGames.png create mode 100644 UI/Sprites/Icons/Platform Icons/EpicGames.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Google.png create mode 100644 UI/Sprites/Icons/Platform Icons/Google.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Meta.png create mode 100644 UI/Sprites/Icons/Platform Icons/Meta.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Nintendo Switch.png create mode 100644 UI/Sprites/Icons/Platform Icons/Nintendo Switch.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Nintendo.png create mode 100644 UI/Sprites/Icons/Platform Icons/Nintendo.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Oculus.png create mode 100644 UI/Sprites/Icons/Platform Icons/Oculus.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Playstation.png create mode 100644 UI/Sprites/Icons/Platform Icons/Playstation.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Steam.png create mode 100644 UI/Sprites/Icons/Platform Icons/Steam.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/Xbox.png create mode 100644 UI/Sprites/Icons/Platform Icons/Xbox.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/gog.png create mode 100644 UI/Sprites/Icons/Platform Icons/gog.png.meta create mode 100644 UI/Sprites/Icons/Platform Icons/itch.io.png create mode 100644 UI/Sprites/Icons/Platform Icons/itch.io.png.meta create mode 100644 UI/Sprites/Icons/X_icon.png create mode 100644 UI/Sprites/Icons/X_icon.png.meta create mode 100644 UI/Sprites/Icons/Xbox_LB.png create mode 100644 UI/Sprites/Icons/Xbox_LB.png.meta create mode 100644 UI/Sprites/Icons/Xbox_LT.png create mode 100644 UI/Sprites/Icons/Xbox_LT.png.meta create mode 100644 UI/Sprites/Icons/Xbox_R-stick_press.png create mode 100644 UI/Sprites/Icons/Xbox_R-stick_press.png.meta create mode 100644 UI/Sprites/Icons/Xbox_RT.png create mode 100644 UI/Sprites/Icons/Xbox_RT.png.meta create mode 100644 UI/Sprites/Icons/Xbox_menu.png create mode 100644 UI/Sprites/Icons/Xbox_menu.png.meta create mode 100644 UI/Sprites/Icons/Xbox_start 1.png create mode 100644 UI/Sprites/Icons/Xbox_start 1.png.meta create mode 100644 UI/Sprites/Icons/Xbox_start.png create mode 100644 UI/Sprites/Icons/Xbox_start.png.meta create mode 100644 UI/Sprites/Icons/Xbox_view.png create mode 100644 UI/Sprites/Icons/Xbox_view.png.meta create mode 100644 UI/Sprites/Icons/arrow-down.png create mode 100644 UI/Sprites/Icons/arrow-down.png.meta create mode 100644 UI/Sprites/Icons/border_16px-radius_3px-thickness.png create mode 100644 UI/Sprites/Icons/border_16px-radius_3px-thickness.png.meta create mode 100644 UI/Sprites/Icons/check_thin_icon.png create mode 100644 UI/Sprites/Icons/check_thin_icon.png.meta create mode 100644 UI/Sprites/Icons/circle.png create mode 100644 UI/Sprites/Icons/circle.png.meta create mode 100644 UI/Sprites/Icons/error_icon.png create mode 100644 UI/Sprites/Icons/error_icon.png.meta create mode 100644 UI/Sprites/Icons/exclamation.png create mode 100644 UI/Sprites/Icons/exclamation.png.meta create mode 100644 UI/Sprites/Icons/icofont_flag.png create mode 100644 UI/Sprites/Icons/icofont_flag.png.meta create mode 100644 UI/Sprites/Icons/icofont_thumbs-down.png create mode 100644 UI/Sprites/Icons/icofont_thumbs-down.png.meta create mode 100644 UI/Sprites/Icons/icofont_thumbs-up.png create mode 100644 UI/Sprites/Icons/icofont_thumbs-up.png.meta create mode 100644 UI/Sprites/Icons/icon_FailedImage.png create mode 100644 UI/Sprites/Icons/icon_FailedImage.png.meta create mode 100644 UI/Sprites/Icons/icon_mail.png create mode 100644 UI/Sprites/Icons/icon_mail.png.meta create mode 100644 UI/Sprites/Icons/icon_more.png create mode 100644 UI/Sprites/Icons/icon_more.png.meta create mode 100644 UI/Sprites/Icons/icon_search.png create mode 100644 UI/Sprites/Icons/icon_search.png.meta create mode 100644 UI/Sprites/Icons/icon_user_logged-out.png create mode 100644 UI/Sprites/Icons/icon_user_logged-out.png.meta create mode 100644 UI/Sprites/Icons/paging_arrow.png create mode 100644 UI/Sprites/Icons/paging_arrow.png.meta create mode 100644 UI/Sprites/Icons/tick.png create mode 100644 UI/Sprites/Icons/tick.png.meta create mode 100644 UI/Sprites/Icons/tick_BlackOnWhite.png create mode 100644 UI/Sprites/Icons/tick_BlackOnWhite.png.meta create mode 100644 UI/Sprites/Playstation.meta create mode 100644 UI/Sprites/Playstation/Key=Circle.png create mode 100644 UI/Sprites/Playstation/Key=Circle.png.meta create mode 100644 UI/Sprites/Playstation/Key=Cross.png create mode 100644 UI/Sprites/Playstation/Key=Cross.png.meta create mode 100644 UI/Sprites/Playstation/Key=L1.png create mode 100644 UI/Sprites/Playstation/Key=L1.png.meta create mode 100644 UI/Sprites/Playstation/Key=L2.png create mode 100644 UI/Sprites/Playstation/Key=L2.png.meta create mode 100644 UI/Sprites/Playstation/Key=LS.png create mode 100644 UI/Sprites/Playstation/Key=LS.png.meta create mode 100644 UI/Sprites/Playstation/Key=Menu.png create mode 100644 UI/Sprites/Playstation/Key=Menu.png.meta create mode 100644 UI/Sprites/Playstation/Key=Options.png create mode 100644 UI/Sprites/Playstation/Key=Options.png.meta create mode 100644 UI/Sprites/Playstation/Key=R1.png create mode 100644 UI/Sprites/Playstation/Key=R1.png.meta create mode 100644 UI/Sprites/Playstation/Key=R2.png create mode 100644 UI/Sprites/Playstation/Key=R2.png.meta create mode 100644 UI/Sprites/Playstation/Key=RS.png create mode 100644 UI/Sprites/Playstation/Key=RS.png.meta create mode 100644 UI/Sprites/Playstation/Key=Share.png create mode 100644 UI/Sprites/Playstation/Key=Share.png.meta create mode 100644 UI/Sprites/Playstation/Key=Square.png create mode 100644 UI/Sprites/Playstation/Key=Square.png.meta create mode 100644 UI/Sprites/Playstation/Key=Triangle.png create mode 100644 UI/Sprites/Playstation/Key=Triangle.png.meta create mode 100644 UI/Sprites/Playstation/Shape=Capsule.png create mode 100644 UI/Sprites/Playstation/Shape=Capsule.png.meta create mode 100644 UI/Sprites/Playstation/Shape=Circle.png create mode 100644 UI/Sprites/Playstation/Shape=Circle.png.meta create mode 100644 UI/Sprites/Playstation/Shape=L1-R1.png create mode 100644 UI/Sprites/Playstation/Shape=L1-R1.png.meta create mode 100644 UI/Sprites/Playstation/Shape=L2-R2.png create mode 100644 UI/Sprites/Playstation/Shape=L2-R2.png.meta create mode 100644 UI/Sprites/Playstation/Shape=Stick_Press.png create mode 100644 UI/Sprites/Playstation/Shape=Stick_Press.png.meta create mode 100644 UI/Sprites/Switch.meta create mode 100644 UI/Sprites/Switch/Key=A.png create mode 100644 UI/Sprites/Switch/Key=A.png.meta create mode 100644 UI/Sprites/Switch/Key=B.png create mode 100644 UI/Sprites/Switch/Key=B.png.meta create mode 100644 UI/Sprites/Switch/Key=D-Pad_Bottom.png create mode 100644 UI/Sprites/Switch/Key=D-Pad_Bottom.png.meta create mode 100644 UI/Sprites/Switch/Key=D-Pad_Left.png create mode 100644 UI/Sprites/Switch/Key=D-Pad_Left.png.meta create mode 100644 UI/Sprites/Switch/Key=D-Pad_Right.png create mode 100644 UI/Sprites/Switch/Key=D-Pad_Right.png.meta create mode 100644 UI/Sprites/Switch/Key=D-Pad_Up.png create mode 100644 UI/Sprites/Switch/Key=D-Pad_Up.png.meta create mode 100644 UI/Sprites/Switch/Key=LS-1.png create mode 100644 UI/Sprites/Switch/Key=LS-1.png.meta create mode 100644 UI/Sprites/Switch/Key=LS.png create mode 100644 UI/Sprites/Switch/Key=LS.png.meta create mode 100644 UI/Sprites/Switch/Key=Minus.png create mode 100644 UI/Sprites/Switch/Key=Minus.png.meta create mode 100644 UI/Sprites/Switch/Key=Plus.png create mode 100644 UI/Sprites/Switch/Key=Plus.png.meta create mode 100644 UI/Sprites/Switch/Key=RS-1.png create mode 100644 UI/Sprites/Switch/Key=RS-1.png.meta create mode 100644 UI/Sprites/Switch/Key=RS.png create mode 100644 UI/Sprites/Switch/Key=RS.png.meta create mode 100644 UI/Sprites/Switch/Key=SL.png create mode 100644 UI/Sprites/Switch/Key=SL.png.meta create mode 100644 UI/Sprites/Switch/Key=SR.png create mode 100644 UI/Sprites/Switch/Key=SR.png.meta create mode 100644 UI/Sprites/Switch/Key=X.png create mode 100644 UI/Sprites/Switch/Key=X.png.meta create mode 100644 UI/Sprites/Switch/Key=Y.png create mode 100644 UI/Sprites/Switch/Key=Y.png.meta create mode 100644 UI/Sprites/Switch/Key=ZL.png create mode 100644 UI/Sprites/Switch/Key=ZL.png.meta create mode 100644 UI/Sprites/Switch/Key=ZR.png create mode 100644 UI/Sprites/Switch/Key=ZR.png.meta create mode 100644 UI/Sprites/Switch/Shape=Circle.png create mode 100644 UI/Sprites/Switch/Shape=Circle.png.meta create mode 100644 UI/Sprites/Switch/Shape=L.png create mode 100644 UI/Sprites/Switch/Shape=L.png.meta create mode 100644 UI/Sprites/Switch/Shape=R.png create mode 100644 UI/Sprites/Switch/Shape=R.png.meta create mode 100644 UI/Sprites/Switch/Shape=SL-SR.png create mode 100644 UI/Sprites/Switch/Shape=SL-SR.png.meta create mode 100644 UI/Sprites/Switch/Shape=Stick_Press.png create mode 100644 UI/Sprites/Switch/Shape=Stick_Press.png.meta create mode 100644 UI/Sprites/Switch/Shape=ZL.png create mode 100644 UI/Sprites/Switch/Shape=ZL.png.meta create mode 100644 UI/Sprites/Switch/Shape=ZR.png create mode 100644 UI/Sprites/Switch/Shape=ZR.png.meta create mode 100644 UI/Sprites/Xbox.meta create mode 100644 UI/Sprites/Xbox/Key=A.png create mode 100644 UI/Sprites/Xbox/Key=A.png.meta create mode 100644 UI/Sprites/Xbox/Key=B.png create mode 100644 UI/Sprites/Xbox/Key=B.png.meta create mode 100644 UI/Sprites/Xbox/Key=LB.png create mode 100644 UI/Sprites/Xbox/Key=LB.png.meta create mode 100644 UI/Sprites/Xbox/Key=LS.png create mode 100644 UI/Sprites/Xbox/Key=LS.png.meta create mode 100644 UI/Sprites/Xbox/Key=LT.png create mode 100644 UI/Sprites/Xbox/Key=LT.png.meta create mode 100644 UI/Sprites/Xbox/Key=Menu.png create mode 100644 UI/Sprites/Xbox/Key=Menu.png.meta create mode 100644 UI/Sprites/Xbox/Key=RB.png create mode 100644 UI/Sprites/Xbox/Key=RB.png.meta create mode 100644 UI/Sprites/Xbox/Key=RS.png create mode 100644 UI/Sprites/Xbox/Key=RS.png.meta create mode 100644 UI/Sprites/Xbox/Key=RT.png create mode 100644 UI/Sprites/Xbox/Key=RT.png.meta create mode 100644 UI/Sprites/Xbox/Key=Share.png create mode 100644 UI/Sprites/Xbox/Key=Share.png.meta create mode 100644 UI/Sprites/Xbox/Key=View.png create mode 100644 UI/Sprites/Xbox/Key=View.png.meta create mode 100644 UI/Sprites/Xbox/Key=X.png create mode 100644 UI/Sprites/Xbox/Key=X.png.meta create mode 100644 UI/Sprites/Xbox/Key=Y.png create mode 100644 UI/Sprites/Xbox/Key=Y.png.meta create mode 100644 UI/Sprites/Xbox/Shape=Circle.png create mode 100644 UI/Sprites/Xbox/Shape=Circle.png.meta create mode 100644 UI/Sprites/Xbox/Shape=LB.png create mode 100644 UI/Sprites/Xbox/Shape=LB.png.meta create mode 100644 UI/Sprites/Xbox/Shape=LT.png create mode 100644 UI/Sprites/Xbox/Shape=LT.png.meta create mode 100644 UI/Sprites/Xbox/Shape=RB.png create mode 100644 UI/Sprites/Xbox/Shape=RB.png.meta create mode 100644 UI/Sprites/Xbox/Shape=RT.png create mode 100644 UI/Sprites/Xbox/Shape=RT.png.meta create mode 100644 UI/Sprites/Xbox/Shape=Share.png create mode 100644 UI/Sprites/Xbox/Shape=Share.png.meta create mode 100644 UI/Sprites/Xbox/Shape=Stick_Press.png create mode 100644 UI/Sprites/Xbox/Shape=Stick_Press.png.meta create mode 100644 UI/Sprites/background_default.png create mode 100644 UI/Sprites/background_default.png.meta create mode 100644 UI/Sprites/border_3px-thickness_20px-radius_dropshadow.png create mode 100644 UI/Sprites/border_3px-thickness_20px-radius_dropshadow.png.meta create mode 100644 UI/Sprites/border_3px_white_dropshadow.png create mode 100644 UI/Sprites/border_3px_white_dropshadow.png.meta create mode 100644 UI/Sprites/button-border_black.png create mode 100644 UI/Sprites/button-border_black.png.meta create mode 100644 UI/Sprites/button-border_black_20px.png create mode 100644 UI/Sprites/button-border_black_20px.png.meta create mode 100644 UI/Sprites/button-border_white.png create mode 100644 UI/Sprites/button-border_white.png.meta create mode 100644 UI/Sprites/button-border_white_20px.png create mode 100644 UI/Sprites/button-border_white_20px.png.meta create mode 100644 UI/Sprites/button_secondary_active.png create mode 100644 UI/Sprites/button_secondary_active.png.meta create mode 100644 UI/Sprites/button_secondary_default.png create mode 100644 UI/Sprites/button_secondary_default.png.meta create mode 100644 UI/Sprites/download-circle_4px-border.png create mode 100644 UI/Sprites/download-circle_4px-border.png.meta create mode 100644 UI/Sprites/gradient_black.png create mode 100644 UI/Sprites/gradient_black.png.meta create mode 100644 UI/Sprites/gradient_white.png create mode 100644 UI/Sprites/gradient_white.png.meta create mode 100644 UI/Sprites/image_large_border.png create mode 100644 UI/Sprites/image_large_border.png.meta create mode 100644 UI/Sprites/mod.io.png create mode 100644 UI/Sprites/mod.io.png.meta create mode 100644 UI/Sprites/modio-icon-color.png create mode 100644 UI/Sprites/modio-icon-color.png.meta create mode 100644 UI/Sprites/radius_16px.png create mode 100644 UI/Sprites/radius_16px.png.meta create mode 100644 UI/Sprites/radius_20px.png create mode 100644 UI/Sprites/radius_20px.png.meta create mode 100644 UI/Sprites/radius_24px.png create mode 100644 UI/Sprites/radius_24px.png.meta create mode 100644 UI/Sprites/radius_40px.png create mode 100644 UI/Sprites/radius_40px.png.meta create mode 100644 UI/Sprites/radius_4px.png create mode 100644 UI/Sprites/radius_4px.png.meta create mode 100644 UI/Sprites/radius_8px.png create mode 100644 UI/Sprites/radius_8px.png.meta create mode 100644 UI/Sprites/search_icon.png create mode 100644 UI/Sprites/search_icon.png.meta create mode 100644 UI/Sprites/square_border_3px.png create mode 100644 UI/Sprites/square_border_3px.png.meta create mode 100644 UI/Sprites/white_20x20.png create mode 100644 UI/Sprites/white_20x20.png.meta create mode 100644 UI/TRANSLATIONS.md create mode 100644 UI/TRANSLATIONS.md.meta create mode 100644 UI/Translations.meta create mode 100644 UI/Translations/ITranslatable.cs create mode 100644 UI/Translations/ITranslatable.cs.meta create mode 100644 UI/Translations/MessageUpdateTranslations.cs create mode 100644 UI/Translations/MessageUpdateTranslations.cs.meta create mode 100644 UI/Translations/Translatable.cs create mode 100644 UI/Translations/Translatable.cs.meta create mode 100644 UI/Translations/TranslatedLanguageFontPairing.cs create mode 100644 UI/Translations/TranslatedLanguageFontPairing.cs.meta create mode 100644 UI/Translations/TranslatedLanguages.cs create mode 100644 UI/Translations/TranslatedLanguages.cs.meta create mode 100644 UI/Translations/Translation Pairing.meta create mode 100644 UI/Translations/Translation Pairing/LanguageFontPairings_Bold.asset create mode 100644 UI/Translations/Translation Pairing/LanguageFontPairings_Bold.asset.meta create mode 100644 UI/Translations/Translation Pairing/LanguageFontPairings_Default.asset create mode 100644 UI/Translations/Translation Pairing/LanguageFontPairings_Default.asset.meta create mode 100644 UI/Translations/Translation.cs create mode 100644 UI/Translations/Translation.cs.meta create mode 100644 UI/Translations/TranslationManager.cs create mode 100644 UI/Translations/TranslationManager.cs.meta create mode 100644 UI/Translations/UiTranslatorTest.cs create mode 100644 UI/Translations/UiTranslatorTest.cs.meta create mode 100644 UI/UiConfig.asset create mode 100644 UI/UiConfig.asset.meta create mode 100644 UI/Utility.meta create mode 100644 UI/Utility/CollectionProfile.cs create mode 100644 UI/Utility/CollectionProfile.cs.meta create mode 100644 UI/Utility/ContextMenuOption.cs create mode 100644 UI/Utility/ContextMenuOption.cs.meta create mode 100644 UI/Utility/ContextMenuPanel.cs create mode 100644 UI/Utility/ContextMenuPanel.cs.meta create mode 100644 UI/Utility/CoroutineRunner.cs create mode 100644 UI/Utility/CoroutineRunner.cs.meta create mode 100644 UI/Utility/Glyph.cs create mode 100644 UI/Utility/Glyph.cs.meta create mode 100644 UI/Utility/GlyphPlatforms.cs create mode 100644 UI/Utility/GlyphPlatforms.cs.meta create mode 100644 UI/Utility/GlyphSetting.cs create mode 100644 UI/Utility/GlyphSetting.cs.meta create mode 100644 UI/Utility/Glyphable.cs create mode 100644 UI/Utility/Glyphable.cs.meta create mode 100644 UI/Utility/Glyphs.cs create mode 100644 UI/Utility/Glyphs.cs.meta create mode 100644 UI/Utility/InputFieldCoadjutant.cs create mode 100644 UI/Utility/InputFieldCoadjutant.cs.meta create mode 100644 UI/Utility/MainCanvasTmp.cs create mode 100644 UI/Utility/MainCanvasTmp.cs.meta create mode 100644 UI/Utility/ModListRow.cs create mode 100644 UI/Utility/ModListRow.cs.meta create mode 100644 UI/Utility/ModListRowPositionIndicator.cs create mode 100644 UI/Utility/ModListRowPositionIndicator.cs.meta create mode 100644 UI/Utility/QueueRunner.cs create mode 100644 UI/Utility/QueueRunner.cs.meta create mode 100644 UI/Utility/RectTransformOverlap.cs create mode 100644 UI/Utility/RectTransformOverlap.cs.meta create mode 100644 UI/Utility/SelectableFeatureImage.cs create mode 100644 UI/Utility/SelectableFeatureImage.cs.meta create mode 100644 UI/Utility/SubscribedProgressTab.cs create mode 100644 UI/Utility/SubscribedProgressTab.cs.meta create mode 100644 UI/Utility/Tag.cs create mode 100644 UI/Utility/Tag.cs.meta create mode 100644 UI/Utility/TagJumpToSelection.cs create mode 100644 UI/Utility/TagJumpToSelection.cs.meta create mode 100644 UI/Utility/TransformExtensions.cs create mode 100644 UI/Utility/TransformExtensions.cs.meta create mode 100644 UI/Utility/ViewportRestraint.cs create mode 100644 UI/Utility/ViewportRestraint.cs.meta create mode 100644 UI/Utility/WebBrowser.meta create mode 100644 UI/Utility/WebBrowser/WebBrowser.cs create mode 100644 UI/Utility/WebBrowser/WebBrowser.cs.meta create mode 100644 UI/modio.UI.asmdef create mode 100644 UI/modio.UI.asmdef.meta create mode 100644 UI/sfx_Click1.wav create mode 100644 UI/sfx_Click1.wav.meta create mode 100644 UI/sfx_Rollover1.wav create mode 100644 UI/sfx_Rollover1.wav.meta create mode 100644 modio.UnityPlugin.asmdef create mode 100644 modio.UnityPlugin.asmdef.meta diff --git a/Documentation.meta b/Documentation.meta new file mode 100644 index 0000000..96967eb --- /dev/null +++ b/Documentation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6de7b165d3f7814f990e3c8b12cca45 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/FONT_EULA.pdf b/Documentation/FONT_EULA.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ef2a9e3c06cc31cd25e26f1580776ec22db39f9d GIT binary patch literal 1390098 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%0DcK)L3`os~P&c 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�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

UQY%e$;64G=a};iHGj(#j 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

R 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 z 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 @T% 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 z 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 z zj=EA4@#n0w4;b3!MH1^})gNMN`i`>IMFmmw$fmIhYs=|vP-n{~{uewo8q@Nnh6mkf z=HLl&>r>&As@PC-Pt1R|eE9wxtf!@F_89XGZ&C);ACKr_Lq#h~2H+MLmumA*W8dES zLeqxvpW3Vy)107h-ZeF}X(GcL**&{T==Q?Cz*Dqk2>~_FaPdfUZmN%M@GZMcP{g2T z@joOvxZt<|yfvNc82U#EI}RzOA=`%>)x|@c@lqcb?)Pw0Cs|H}21YVZ+)srbw$ImoUIuaPG1UdUEPtyh`? zOR?Jf;2tij<`6S?>hrj>%=Qr{f+7dT3qYdD6-^RQDC9yCTQm*(6p6B6)Y!Uk(4$IB zrgcQ5x9{I?ron60&`B z`NNWS)w`=_Ro?|Qx;}?1$4q)Rmcupm%V;&Dw7C|G(%`Fx2=nC|^PLuWKQ!J%U7-#< zU5NJN`?&*HZ`DH8s;Mm%v>znOa(SeKmqSPw%L+Jlm9}+3h1s*#$5v1EatQ^$No+z2_zA|jtM;!b)n^K3%F@^YMjpr zlp4)dm9Ms>WcW(!(>a#$%3eXJo&+O9AE zBYcBz{dkza6qXB{!E!U=N{As93BQPl5(&i*0%&9P*N>OS`_0EovvNcN-`BsQ(>*C{ zw>9v(#RFZ0>yg~5BJ1SoEDlO$CNztTGZ)w(%7|ntkzv3ViEY#uoYPPdrId6DC8&_W zvJIp%Bu#HXF5+e+QH->iO%f(KqbBLeFH3~@g_*lMx-vsg zja}&juA>8HvzN)6YDH=p0WK;gLmcIi4RMqz4vDDgRR`SD4cd^Et6{cG|71ZwT?yED zBx?1cH^yU`ItA((k;iF;5j(VZXp_CWQH=^v^SM2?hbo}1wfVEY#%2b@hQqTB?iILB zVGBf2D4QDDO-_F&&IW}|B}LW#lv`qayAzQ;_&I(gvUa)cBU&&x6AToKmXSK{iOr?n z?n)bP>=|U)2fQh|9GmdsOON2qMK44&1?(SFF$&v5$^;^Cm3xYxu=h;NS#Ub2WEn%a zW_Qej$)p$2gD7UfEt?>+p#*oxtJ9ccM9l0b5NbOcM;VN$3eC7^3e|EpCJUK3BvYnY zF@y z2iEv{{PB=GGSQazw~|x7g7{e-D~ZOdk@f61$u!&V)>lWT1ECHz3Gk+mN3*~*W6W6m zGaw?0Q{|{Y{)B_k%~DBtvHh9ub+NTL!DF+X=!d1aB^|tfNWt62L@gq!c(t{`8fSK^ zN+X8o<7kz02nLFLusGf&@CteEA=3?#6BcfZ-Mzb&*bJ=pO}&~F6Vo-4<7g!tX})hx z4a9Thh2asSZuBy|k*(2Dy7I5`;mG8z&jAH^7EW@nL26PFni0;Vn7rzcKLC+{C$d0i zL>U58rb(|Q0R~TE4&}H}(esZ(cR?--WpMQWMcrS=Rh51Jlx|5u zy1Pq4DG8+!q(f3ABqXF86(mJbke2Sw@43OqRR-t%dwu@-%{*p+bIyI9)obm&*WP!r z8&qGtfa}f~7;jR(HGW68Su#)rn|QFJQPyVfUfG~?mEkZ;uT!1lTWx-Z!{n=Zx297w z+op4Wbok01gnE+nJi_>frzw{}?XS<&f#2>VZG6T28Tz}Gks#k^1N;#dJ3++n<>$q` zC|oG<+tou!-o^a5JVlE|;MaA&d5L7m3zbIOz-B_WC5AW+rIs@;EORWwfLmk-H4|+c z{{h8r=+hJncM@U-_nrsQ)f1SgCDmX{+fOX@t5oW>Be3=BnL!?(U+vh>?D6)}UJ-fqA`rI9;lGDSV-d)1zN9qx| zj$#`jH|gB{u*Wkb6Zj^C#WXG5OP>B}pM^rCS@iSK^4+r}DYJYn z#4eAn80rZnj3A<2W>=jXTzJsDig};Tu+QPrMeT+)%o6hIj#tmvsclB6(9a{ddbc=? zleBQuPrv94@Qc_!C;bfX3#NaM(ON(IYa4A#_0N|Bu;w@mdLO0t&|lA*HrDtV?1)-O z?S&um(^R=Z4zq>8z^)Z!Fia{+VvE+B-G=cw3+sWUm%)mg0A=882)8kd@U6}db;HV^ z*K2)wNORsMmD#3kY!ppyil=_LQebJq63nBb7uvHB{w=(|kKo20wpd%*BLi(*#?YBb z!7G%WRCWUBYFsn=tlcY8M!J?#q>ilHCMDBf-=(E0ZKnqeCvhrqgFI506fvrWNl|a$ z4X>t7CI&9!-YZXJWs;0dj$WMln3P{q+J5^jofgk}Od)f65V>B*TgE+9CW05V=Yw>s zhf<}?M|_`->>3CgRy%%UT5{09)6g?xmVV-O$uK5O2O~5sEsa7$FdHX0F67SDD8Go$ zVw9nYC=TEEo6ChrZy7gQU?8m>w0`1#;+cwpbE8;m#=M#%W<)}qBj0?=Nq_W`S-6{e&?;gtMqgI` zoZohh4;lX>EUKY-e}BO`;RBR-6lsiGjEElZJG{EB&_@_=wKKJPo!ddmHLaoLZF|Gz zpL+G~d#&ngQ4ff+jB&Cqx7bOByenM`|G2@F8&FnRzU#`L`^o712c0+)DGqx)#l3}b zZ4-&?cmCQgw}LvusY=$o!XuG5>z&XX4LyUspU|Nicbm|f&UgmIndk1vun{`FPaw69 z9QVq+wIkEGo-b;D$7B0xvsi9gyO1XT%aX$9X7!>XvCiUd6$=X}{_*KsT}=L-yTNFs z*_s{eBb``}73G;wBZ+L|^0o*ouN7f^;$m6SU~t#CoVdK}5ORH86jW7NQ`y4rDA$&?_P~){ejf4rD+D33)`;$k0qr*v1t}6Z`}l z7aIdJCmAOzh=G$!>%@`}Uu#j|d*TkvWUMe+#ewIT!HZXS0YZQUCV+G@ z$YDnYAmBtI2=&Sa>}0^HMqn&PWdk-c5cE3u@#Djgz@Lz`0+GS^m9%0e1HoP(X~hB@ zXaq$P1Fo|`en(;y1Fo~M9A9T8V}Vc$P+-MI#sV$cfj9hGFN1vUSU9H^?*Dc^lbDUY z6__)7E65WdGDcxQ7i5~utn7difETlpaWQKlom3=Dwc_?RPPPznC;>5P$tJitQX6tWc27>7sU~&?^Ju7z&GAu7P5VZP-Y;=2A`Te zj&tBB?q)pi_R9$uZN*y7IilVj-B6S2>ra?XtHg(r>?$eJ zl02OX*>CgAx0ydYx53Z6@TYgM9FMlZxP%oD*tcQ z&juJN@LCq|PgZt#17L+3=KpK}EP#!jG=PvudFe*M>&;6$SWD%|MPG*uIS6U|4_8ui zl<%*nk_Z!!_pn+;`gpl#%lc_(gbO;yw0}(aQDuqFz(hb^l``}(E&bv+C~FO$BvaayQ^mxTvpcjT%Q3tzIL(92`*`;KV!R7hKI zHiBsN;G5c2&-~n$ha=dpU&f}tely~YV8Mw+ypeSa88w(&uKBh_4OhwKM&cx0BbCh{ z{q_~qhfgfzu||8TH8J(B%dJ|+=6S62dsju%P^Xx{hA|ZIx<5~l2i((UWhFSF*Td= z;L&`!Ol4 zjyR5x_wZcAe8TQ2_6b(uvBCVW_6b-BBqV_C^Vn8_i15o+f!|MwmtZqL5y6gUR>2PbO+M+EjY;jx57b?JqQdANB>L;w z6U!wKc;Do_#Zj}ITOQ{1s7Z&+=+Grx5$!JhT&%s@TMdD@=G|{&`^YqLR(z+J-pSUE z|JC$hW(Bsq<23x6S)H7V|9@gutXyQQY=BvDv6HcKg5U!qtS0#1%?b$eaDh>Q&jK*3 zp#!>M8liBfqWjI{hJjIn$o`iv5=&iqLCdP3X%~%huvJ}NA{}eLytpmSiX)@O1G7-!a7#?x~{yor7iCP)~6&Fx5-LWxnvI5u2j0!-cg633dprmDm z7Jk4fm*5JM6zE7Z~eTLeD>L^{Y1C<#EuhWrIZ(IPv^$;mq5Bq#sS zqyQlX3dE>jLI(Ry8u;ZT&dK!gf5Tyh!#NrB|8F=fa5yJp%BeVFW+qPdKp6^1`V{6^ z;lNIYj8nn>RY+`bI45oSRGhPkVuu3*Yx+!UIvb4RBpAeA{s%BlI54n0&jkBdadE-n z{F|5kW1DAl2n?xCSSXP6|3cNDXkgz1hC2}FfjS)DZx8#|}kdhoZ1UQP`ob%ML+70#3gLqi{e`IG`xNLNMea6omtd0_VXH`p%U0 zFTNl$0ES?2ZVcytKpy*xlpwl06$s7&A%gl}$b$1gh`i54lL343F^5`qI&3=qTt9H_21pqJp`{u*Rt^ew@7Fk0Z{4(EUn__HY!wlM?-(*FVm?|^@e zGk;18YRMc>8{~xAAUv~w2ZhQGiUg4zC)9{Jp+*b`2f1}N!!X&w@J`w+FavYKvmx+j zL;WMW)4<>y03w02!Tw|u>Yc#k$R8HR`PZm(Y$8y}!mYh6V}n zXQKV#SHOhUpEd!$b~X$|_ON^c^(3g_0xM8|!hvs{4F~lk7%gzJ2d1S?FbIJ^8|oj~ z!$Raqw*=-VPk=%4;Mrim$80WW+~I`ykK4#9PbLva09hkzLv9Gk$f>m+4=jUO`qunDzR zcrZAJfEe=skxdX2)FnVnP$|NB0rckCh%mc_`Vc&Ea0vnWg0r#yVf8dLI4^({zh{D- z9e062?FlVFYUnf3{)oFErc-JT=*6>vpoRux5M2L(n4o`vm`+LW(3@u?LN#zq5S$8t zVb=*Zp>H@F>{tb-!@-qBkRiv}Xuro_5EC>wf|#H|1ZYJ4Gv7cTIvW@&MX10a!572? z^;ZznDGm$0c{bv)6rlvdOA)S2g1+HwuwPO<4emF;_(6@Z7?=2J{VQgZ<+6G&s0=399h3;ZETe>T4hn)Kh-r7JTz;#A9wxDJg&&=%j~0 z-f%Y9FK$nRgZB`y_RmB+J4yjj?gVj=LH(I%e?}?LX)y(I@oXTd4q)npL@5x=bD;}^ z@WWmZ z|IYK@fuT}_nF&OS%&=?=TjGbeWXR34Nj;Y0X{HBPKY<``I2-IAONQ|arxakC2u>+~ zuX#@47Us9ir}^za?ZJ@t2FN!z{We<-8`2%C0iHZK*8oA@@L#!wW(s&XxIzl5@U!7g z;TGy^Ajp?g{WdWK0*2auGs9!uLK7G~dGH=`%GY51F1la3Jq-@tL;kATv!fI+wRFN# zAhV2Ti|!A9JKoN65(fmics3AJ2QUVq{snam5YW%_$2bSF$oDP7=fD>#& z-*7g0|LEXUIJis!nUp;n?N6ye83)1IoPLWX;G1UyLZkDgR7w+Gxukro$ar{B+Lm_Ko$VbMEkRYl^I=Vcze(-yo_{R0QxYLCg>zDBrz~CnYo>wm2NyJfX`B;q zkmaQ_nT1>YfkbrJ;we0je_!c_0Kt~CphAPKcY|PS-5}UvHwe1gjRdruK~e??w%!eb zEqH@qE8Za3k~fGAI#B|GEqa5SeZZ*(1Y5@gK~}i#B7tBldA||<*TD*eaM1CRF|Y~_ zOwgPVA(Z^T%kUorAS}U>As`0uBn%wbU#k*$a()AY_b`Yc|9__p&cC4AI1}twkoz}Y z;ZqJouV*5j$t!%qff&b`V1Fm?H&6Sk+x{I9&e@;_`#;hMmw2G2eBFCg4{ftI9S|+Q3MWDCtL%VN;&BokawI7_fNj~ z7eILTfW(Wl0l_H)UU;x28hB3s!!i*}cqdaWtZe`U>l^qD5**adCJrXN<3*$2ga_{) zf1jTHHH7~cKzQ$f1lcp``>S^VgIqZM{x$TSV#}~*i{E7T_gVm^4rrkXwPjet1_;)% z@f+mdi91#YtS*382QZUxl2^z(&XnE>b({|Pn{)hiV(T>F!4fR2D+L5?OZhD@{D(;{ zm@r{A8YITRT3bM{(adkc{A*-A9=O2TW_}9{@T=s|cl=jjLRtPD@Hc1q`>^yBmSO!n zAXozrJj;I{BK*VhubHG1u@D$3pR}LI zbRY1d0azKwTpT|O-LeSW{O8d>{SLB&kWtA=-w`s!t_*CAgHDivPZEOO6axPvLMLHl z>1^a^W}qi$1l~RezIVsS!NA_k*3rfu2?T4)VpO(Ku{JZXF*E`;9>S7`n3=tUqll@V zJ$MHpqm15(Kh(?&9ZkXV2Z%fwUm+hoHZU0@YZFIPU;`f@*3))OoZOh86<%%KM0VZJ zJz4*Qv|WQUE+V-oZqfvWKycKRy27{NoyZ#F4K}1?ouX22F0riD7q0dQY)xRcxu81N zU5vWfTK+hMz9F#qX1DW5m27LSxid(y4Fzp4-gd?eDK+|BI4S-;%q80g_IgbL>D6yU zHdz~I=9ra@zUWtt`b4LqYxp+a(%I4j_8TuKjvKJigZh{c&cr2RT# z8`45S7_XR<)jj*5|3dpgF{*B2sNsOQO7;wi#o@p$)19&E$f4&B36%jFC0NUTTPn@h zKlnP;oVW9`CH`}N0#xqDl7gxZUNulv$>~`EO8Xa8TI!iNkb#8@=oGx!5=oPu3z)~C z2ey*{+e!dk0PC_G!2UoNYMf#<--qv{!&SwjX^jOx%w$k>3=8}f(*84$x5g`7sYC?G` z((;&!So|(ojHyWeK5eO;8T!B>6Fy;rD7k4=G~JKNpWBhMGIbFkT|^ebjI#dzv7y|~ z+is>|@;M$$VOkJ!PGk zVim0!q8-Tx#sp=i&wrVxH(cx6cdRe{aHnQ-CazT}lsHhhrfue{WNVgH+bb?kq6DqS zyeV{8vBckw5SUq6I7V9#^uBltJAd^Quxf}gDZVt+j^+_ynUdnJ?6|-Yp0tKsnea*Z zOIgyFnrA||G=A*?#mSSw1w)(5oW^bw2T^YZ=W5mOOq5TH9C6~7d=;p8J(rRWBsulv_Tw`fcei^)`qNKCwMn;4AKN zG{!b<(I zwAqC9Bx0^k(k=8$%o}xc^~p44nTT@AtR}3HuAUsNXLtlEEQ0B_H~JqcNX>Xge|8m& zAiP{fkkEs96x0*dnpU!@9{t%(f{rHSoC9%o$)T;3f%x@VP$IYAXk?@9%=O2Fw0NN; z9kwq52+0y2z3n#M?t7?TzQc)TECH80cY2+gF}=NO6v z6jFY9^Ik?nL+^SUUM0mgyq61GM#SIz;x4Nd>Z~i8h*;nJ)kDohEsWSec`2E>PV?tA z{@rok-H(ylALR{~rnd)P{Agp$dGu$r`m<02J2c?^|KuMa3xRih!zZ6RbfQiMmS%<` zX7&b7mU{NW^fKV!0u5MjNeEU=iCP002pngC_+fC@#!Aon*Oe352#8z%WFtu2I!;GO z%#hhiaAJl2%M5g1F$2RAX2|%3iHsST;bQ@!BQr2f%nHn6vjanF@E$ETU?zeMlAeKs z1Aw}km5URJ4H!3qe`kh_ACD0^fu;x!pcRK5s5v-*yBxq8H5)KV%m)4&G9qV&3}gTt zAP#Z@>6L?v6^RoVhp<69vBB55$k+gSIDk*E11+RnkTQZDGT1$S3-~8Hu)YNT5Bx0T zCs38Ku(2Sq150*n04_7|Ic8w`nhkgc{5vObAAFr1OdYUn1O5yPFoy+>$1DH_8&Hw6 z0Tl`dkRsTC9tbv8CSVsBSn~f5{zdvX3{J=d{J-5j<@&!OfuCiAOb4<8I$(u#aexmO zfGZcGVA(m5 zekE9l4Z#vDprc<&75o`+-jx9FO8J#k*?__NucQiMX9fLAs=!uhSWobYqzc#S4DYAF zfflgRjFTPkkH02X&v;}(8MCA9PjPV$a!Dprw?oX#61gI9r2V1`g@uCxh4T^3VkuZZ z)4yqR%Hx@7aGFJHwAPr^@g|^j*QXt&&f!KaO0AhPSp3w~qD*S$^_<;^q5U z;gPa5xken*ZH54t^#Eknz;SbW^f+n%$cyV@`q+)sClw>M!1F z^sD^L9l)7(qC;Vgw6^@%e83fJabJEv!>-zCV~y}#vYlSZ?N=;ii(M^yA}))hdk#x8 z+5@9MUdGLFBDJ(_vsB0F8sA`vx!0}?dRXN7wR@golS#9FSkK}Mhh^U5Zrgb3__y&j z@rUuIvQ@@O#$i*5Q|VcE=CYgy-uCR8UI7AFtc8pD!yfIv7&9AF8;g|bz(u8`cb!UQ z3T2WmQZA}nkC7)^>=D1ae79aCi>*%@$+vT<5dW^Uh`n{wW{hw}b_d5pb2w$Gg>j;6 z)n&*0@J-kKW%QcsyH}@_AzT4&Og@_X5` z1LQs>vUPTLMy_Rdl60nZA|z2J-sEPq)gG@Jc6+x*@>8U9rt@AWS7$|ME!Pn_fhg&l zY&?27+@HZep6oSAkFl+&t#GUm>jesam&C;orf8Fhl$eU}zwylSraZa7A219*Sg;w_LXfx zXhK@0SbAw$ty0U4S(R6+1=??ERmii5nXMM&F3n0N9LOc5CKcT$)~nRv&KRQh=l}U| z$a$`TuQ*!YK9-~0%Qecl=whDtC6ncIXu)cOmHrZ0tj`d)eNb7iXXJQZn6JO^?A>Jr zVaWlhaC&pwN7Z41zJlUxBNpV;rpry2CpzlrWaVhIXYP-9mzM~aHB`M$@E2$fYcHHI zcEF`x-_K2o^BU`aVlE)ScagRGeF9!S(~7I(!?NUq7RLoVuPU+@4DR?jr|mM^>m4_u zJ{639e!b^BE>>28?>;_ma--#8^~&6m((T9@(Vee9^20bM-{~O!=)CqFWN`#4!xUH& z@Z{$^e5Dm5-C8akb%l7*%(|EIeZi-o936~j$i)>saqij8<)R_7fmcZ#r^hU%r&&86 z{>ZZn>uB1rnJZ6=lCfT4)FZeezZ2_7;F6GSRI2#>Tr#t>4yO7Df%-I?9Cx|Zr|xGr zlPrB5YPQpDG76}|1d5r*>po3=r0k`>tww!2h1u#U7lY5ug2m+8XPGFRE&j5Igj@b` zt3#wU?rJO7w>8yT{fU)VL+#31wo`13QJ-aQQY@mxQ4{E_$AlDMtPtEF(76=sJ2$H& zLoZq+Z>ZdOO|@)&TLklFi+rf;cV-8*A}YU12NTz#dxz@P_wIaky|2D{ z|NPBSQ3*+&rEva~fwnxPy?t}?q2`|yJJLk_!J?y_>Giliz5#bG zUeS3Q=_Sf z^zDhRU9Pk&6;Xji4pU98oxhE%>CQZPc>MCbwg8P7+g@G7JW|=u^Zg}n{5wbJ%)AkC zd}D0|+-)V6&>Q!$W<{40ba~dVKeZW7LPnd$;cC)~ICQqXn{M=d?Pt}jP>Ms{$|nCy zmMZ_&`z*=BEeHq$mB<;JsqI=f+Hd)f#G)PgTYkQ#QiV?Wiqf&*J;FCj)p?2|M~8}q zXI~ey*5*|X4U^M@J-)eBKXBt##%0}KAnB`R$twIt-n`xV4B=+M>)TEj8sAS%Mzi$F z^YPp*)*sg?s7zL}s&TV&4V#quG?~^|8Q18ZG8!UpA=O%H`OU&FMJ?7xCzjTmH*YJ8 z$~9dqO;#6)BmBxuZvU}_50i*eCb8Vzcc=zJDe;*d-RJJ^ycLOC!7Bf(VT;j%DgLAN zp6K{fFQ1hr+I!UoKI}(1;e2KZ4{e1m+@nMFu$dvptPP^jqPjk(zQdS?_edCIJ=T>r z&a6OlIXd`aOL|Vyi<=F)MS|jkNt~^2GD5`j!L7vDPOlTk!cFP#OM*I@M9@CI5U)G; z?U3Av=35$q6vtX2Um?;Ar8QZ3(ZOncaaXsbNkk5Dq%4AHkBR>^_Ag}3kBOb@_&af* zj!@zr+6sB!NF$@7e^53#(Ru9(^7lI0M4j57RaEcDd~De0-%F=C_>Dfn2)Jh)U_JgR zUz#Yt>#NT|O%5)Oq?So>S$&7T?Vtm$2|U9`(fUpFbZsz2g0t82%X%9u)g1>;x4EQ)_GW} z!s~84x41z3Wk@^#1c5-rQG!^t7&dqfk?L4?!VmeC`*-)-W zAw*}Z?KD1bZDel#&^x(|W2{e1$ftx(azX1(--j%geZub?I?0`xqel$kw|;y~N-?Bn z-|!BZXua<*?_jXnUUV%X#-?RxcPEn~E|rVbcdF#;Op2Mqa#Q3_iK-VJg?*M2H2W=> z(#eVInd%}^S5(s|i{;p@-!b4JZw0kb7T8{;yK@z7?8Ec}Opk_GBQG{rTbcWe{!&%S zmw&8wjZ9_k=Ox6_f7K_ql${i3ArNuqPP{!9Y2^DbCgN#{$V|qItCU)H4L2uenK2lD zJYMci2L)KFuN=8rZ5MDC?YcYiwapP`(-lQ8qgdCKatp zv*y&z%&*7EpX85w{mi`T7zlDN2*&t3YQde2sHH&U1$J)9; z1o_)tDDpmn6|1^k(Gv@wq>8(!E^wg@Ieb0X8T)i&A)wmq8?I$au@KjTuqUH?Wg{`S zH7a$zHTThi%y5b%tFA3Dv`wp^PJd2wneTsxQ;y|V85zlRTfV7iJ@3Bcv@@0;zmfFo zcM21o%h{8mIJaT|6R@dtZ00&2p&Xs;3C>rhG|K$Z4hO4=s(Hi5jq!vcD=vI+%TRS1{#5 zFljy3ld5Rs^SEDzb|@Sv=PxNrPqp1r#buVch*-klAXJum`BftQKYId-cfNoK8?l(0wKH?O-WN>_n`O z!u0kl862JD$ct}&Ufobv%vtsK%h$Y{6D)eM;p;3jeFb%q;Z_U%H!Pn}3M-MAC6F4{ z;l-3&=B&IJZNU`NS{FxEEs@tOF9u+vD{xMfPTRkFy39m6)tZ>Wi6%F@bG^AWfuIht zDiXWY=O%lEziiI-gX>XRZlo&r<}R>n(@HXsDwQ=dP9{vCTvfFvh(G#xSA?DQ)8|M^ zeIcsE*L{&Bl<&e68RRGI!={KR2kgQbIDHI^ZjfGBmBgQ?rxYE$%T}*^vAw=L-a6Ly zO`2lSwYOh&^FpXDmB(q7PTttddJv_a6D2skhZX0k_}Wv*)U)ba9_m13K8uNrdZBIe zOG9Kcc1m*d;Q>0ejWo22%=)whUnw{dh--fyeXEr;OvRj{4jzd~t$VxR`$R9;8`}m)FT< z1gN8DKB4F~Joo-cMxBWN5k-&Uxr8wd%TxT$J0QyE7h8gY3|@c4p>C_ca9Ph6q#pP2 zwee@Bch6C>;@v*YexkHf9o1r?V##792j!^z zc41nDRJSa*?0z!*?YkEJ*4>M}Q>Jt!{exSB56RKP9YdU~9ETi-B9J@^crreGem0#v ztvr;HSXW_tjZ;3K4!7N^IPZ(%x7oVa#0-qiIpfZF^3}FZu3MYR+DV)r?%eDpbY%WM z(pAOJ+?~75Zc=scoARUP^|y#w^;V0XO5UB`7Szw5{%j2$Gv|VrE>HKt}NKQtkS{a@)o;8>YWBE5Wky!hLmy-C4qN%=RijK5s+xJO4kujMR zm>5zvpq)|~805`oWTcnArI->^c*$rvUk3To!6b%OG0A|?ONa4H!U3J?%I+vBC%LM= z7bYxE?jSo;^~X!yTdvzA$;Y$l$=ZK3OvE~tIZPMazen|YusKUbtuwqeBf4(%uKK;P z^v$AcrT8fgaS~j3bgz(feV=s{3O$oWzLNF6WH^8yE$2l^*KJLrr&jh)^d1CB%Y|H> zL1@zLV@*Ixed#AE?f+1DrBp^G5$|<7mCo&E4*6hXVom`cDS3uL;&=**@qh~xA#VnYLjM7Thb9Ja|Yn0E7ZkGA&!|CZh zgL`w&SPHQyizlu#P`X))<;0l}x++ojYmwUW{9LVh%J)7tVN;%gS-@5K{E!}#)%lGX zT>{y?US~&~kVj%A*JM*$4t48!Oap-(&}-EpHdmP_$&ss*v-*QDbz)N2Lk%+sW!`scA%V&5I9=@<@< z-3+{)JkgJ>QEE~YOVcfY`hJjLKvaM0!>YET2E{Oz#a_iGCKcX8NoAYiKJMhcJBbv- zG31mL6}OYH^(yAf6$fu3;uTrc!fF!g; z#_{V~_7gkxyygwUo%L9X#N4h1{DJ({tDxpeNwJ4>Kcnvz+1(Js_E`x`3E&jISYnuy zd1%HmRmY+{Ec=5GXDDKVbpZzt6a7`4FIhe3)P-#oVs#0(xc|!{_CO0R5l0#s-h7-9Fxlpof?qwcGlm#3l)Bj0K*LS0 zz!3FSre7&xhWj2b)!;@cX5PG2D~LFEP?5eHkCo|O7Zc_yhTLrNAof`nq)g{|odu!| z()b4L<$8ff_@yzgZkKfWcJWGd^uCl${T_WKj#pwG+0mkA#MC%>&^1+Xu6wbB#IY4G zj-i;NgzRXy?=C;Dz zu5py4T|2%_P@Se~@SelVuruE@G>h3H&OnCTLTs+*Nzy0dB1Sgt`1A3I@thq4@ow?s z@$ce)lyX~%SV`xVy`^NHLLXczc~^R~B(_ALyf5Yq65pivpz{gnNi)+RASq`a=q?R!& zuTuKsH^?`b)h}i^y!_esrF|$jTd7c~q}MUKzb$r&lh5J7jPl&~!HOh@R_=V>1~<05 zlf|9bowYnl5$JPIw3>q2B7X+9kDXsBRHumvE^E3n#_~o?IVg@MgLs8f(UAR~)Z1{r z3A}b{w~R>T2$Kxef_|Qvjoqo;&E0boZD|sbtuwWKt#i0DWz%7^jMEMqW$Rn(j2ku^ z4`+{zx(L=E@3w_wi|~k~>OCU=&h(LKkg1tzpb+Eh3VWlqVe8CenZ{3#9UfDN_>X#z z294&8>O|5=-bKhw>r*$swIk(yH;`2#I9g2NO^>o!46BaDjl7t*67HFfGbN4;3jus) zW-Oac@^Sop{9d2deUZ$lrLtzL=+M0I?{>LKjWt|yh#pFvtlOgvnG)}vkS?w`(A=_- z=J-jJz^QLIza2qYEA>G=$8WV-4HvD(h}x@Y^+=HcK{NriLi>P@qEGzlh_2TLh<5QQ zV{5+-xy_D+*}Kjq-a^Bbt(XgXT0JFfh*O<)e)YbMq#FDhFu23&uW`?I_DERIEq_rGa7uTfP z1UI_Y@V4p$>gVo%VcK3H3k9Z?!VI-*e) zW~pFksTP#da9x4&x&u(6)Guq zrmgFjz3fW4z!QKvW7z)llOYl3vu80()`ksF6{Bt+h&hF9+9#Z!xk~hEEq|z@pRqt~ zwg>w|EbYhzs|ssgE6F`O#HdK>Fz30*9|ePvub#xa?mIfStRyC`BbLi!rZ3wS3==aj z+)WKMzLfrrRS}P)YHnVTg+PyQQJn947$Zrn9EqD;dqvZvzays)OPnB2%#*Ir-8z{| z)srf`eROa5s_Yojef_m*eJRdof$0U=l)$MtuJaf6b?G9ZRib6 zc<{Sv9L+Vw#Z$=0CIic=yuVMNr>>9pgf8%UykBrWvLNO`ogS#L&{K~y+9;z_O;AhX z5N$qm<>n#&8Sd@yoRj3|2wmA@%B*zKhgFWWp0k11aJU}@f43=#Fl)*vNyNI;AUILw zAO8IL)hCXoOT!`o7+W&QiJYFR6V*WhSm|#|y5AL^cm6hQ?TENII8X0}xV1`2z4iLt zTGRb@okug{*68xxeA`KaS)7GQ1&OZ+dHIXG&i^2$tO)1gFBdyp{)m{q685=hW#+~k zjKv`#b-5)wHeS99E?n0?$7)?^xt3U|te}RRwCDYS!Dp&r++n=ZnV6s#Rm2tR_Rz!2 zcf|A?bRSt(6>G8AsD}<5QV4<2USm3JabNV3ZF!;GT4#!qYAVE<7Ud{XEA#0+ccj|19o<8(!W!aK_vPTO#A6Gk5 zH_SHYeCtxf7?)D4dPjtkvzF3`VbaV^)z2hvV}F<>V`G zSYCAWPQBJ((~PJg*yy!&nAi>yQJQUYi^~3#TJQTN^Sn6r_>*~GGn4$v>iYgZ#g+p1 z-a?Va;%xP&1sBG|wl?ivT+?>dGybqGyihR5Ki2SUKQWQ8Oipxzl$ARDmA;3O%jeRo zxAMKz)wlNq6utnK@l7Uz{pefn_J^YfiVMqhBPNHwu^SKF^;>wR6YHe*Qfm`Yi29D! zYj3ykpyEC)!nq~0=x5dzRyqFEAVHu8QMi!rKGsJphB;FQk~GzGH=V>5c^>Kv7FAEJ zO1Bmmwi4sSIX|*~P1o@vlUGuMGV+l5+TC%Pk*m@q zIN~Kk)@cRPyr`6Ex3W+@8F_a!yw#Y(UZh<(xc;h2G^Prt{&9$>R<3hJuBYeyj7+}W z?}CV07Cxn2d4A5meFe?3x7sO;dAEHn%B+WtsIzQvZpR4>SQVGw8|JZb>7kY;FL!8k zv*!%jv;MI4!^?(${osPdzM8|$aBh<>A(b(~vV2S8Y5t+S&wha|*?k?_n2Z_%Sxkr< zDmLlJmtOo3w-e=ESLATGyBV;KMx>nLxt#wU)IYu`vGK9+W~g=hHHqiUJe`(Fwf6l) zykl&kmVPr{ixuw^bMZlKl;J{`(FYifdZc+Nq+56b*@%LlP7Had$CFIyWVfjz3g+u` zjTbP}vi}_UCi@NrZ-}G&F1Kf!{Q0S2U;Qi1bklY(0`Mq`FKQeF2O;Myd4|2cnA+Y<3b}4-s$5)}1pl;kr+w!`SHdl*zuY zg4)(>E%9whmpU&)A?C;DpWJqdX6c6Rdp3&D7^E4OkK`CJ1UTLi^}6e5DED2v_5vS` zwvE|~dPK5$2Srq=CiDu%s9bsVnvkx5t#5+8fBTZ)U< z5t&Q2G*W8dIzoECdjG>$e1Xt!nc>efX2t_5oI23N9V?M5$mSmn+$T(ydvSAyl{2WU z(6=VbEZY8)+w)6Y7a!COXHnqWYdLyz6?{{}lb*Yf5qD&%%dA=&F8h+cP5Z`rLL#gA zVfr&V+^9CS^k(7!>VLv>r?6*d|n*{w3K=ik~+#M zt1m@tY@MpQmy#^Z3DhSGhu*&Au(7Op&ZCFmnLtar@j!~WLiV0ddo0?6{xqGSR>ugf zSNUD}PM%G^q)#sha0k1$^{y0>To$G^r}Stc+r>v|z(Z{?rM-#W(ow(PY#*W96|+We znlPuP`i?1(f0`j(mlwDD!XY|ElvLltsy?<%g^=5hcQ67#u3vojsQ6yD(ED#*=vz{d zrJ~(&%-EnWsTQ0Qn7$h6pYfilJiP9$Z_$H{yRRM#r6W2E(VG-BG5B7r{L$HSK>Ohm zSF|}5BYBeTwE7n2II@dmn`!Ci`b7#!g~Q{s z?w#RS+Qoh53?FtuBsrOiD#qnMubf}^e&l*^{&Ss!6gp|`)QvUNxT}ub>UIR-QnB5XfumF(5rhfF591Iw zQwK*pnACLz&xKsi834XqZ@+rhbw={Z5Ls$5YeGO$ImyFi)++-Bl=)YTJ8;JyJSt`2 z6^kxjP7YjcH1Nv)ddbvw1EEH2A5%=%!zc0DLgzU8x*%S~hs&?5F8+Ldd61^B^5U|g zll|&@!?n6_L?KC}pdmK#mbzgfwJ`Fh&9*xzekp>H@wUd=7^ZSjIPH_A!Ow=Y5D95Z zm)Ytsx}LlIiqEY zn@T+GiHXDm7axs36mleq?4u%Ge?ZtbXGQd2NNTr#)VXOI_4^^N7)L+)=4O>|8IN|` zcdA%TdAotpdsdjrMK2z_>b&5&J=`Q2$7vWDRM@h+q@Il8cDr#EiC$6XDHft8m4)PI zX;y4C!v``hqA{U?Upd;xz86I5UZxgXHbG7bA_(IAi9F1osLjDubd!ct#E!!`wt;}q zeLhCRPFmW!PI)-TxsH!qzEE1hCr4QIi@BCU)e{vfokP#${6*ThLn2{!f1fGOOZ|RG z7$~{t7;uu{!e4qm6H-n~J1OIq-WV!VQ}hv;R4talFRC5(nax7IEup|vOOUdBx9^3F^e zK}CJ#EMY~Wsq{LJT-4l#ZbtxLHcb1^PA$lpCda*$zuHRw+Nve_Ut6_~&v^T%G3!^O z%|DkI@0b}I8-c&V18C^hgme!Z>i}(EPS$2jOhQ0|i?NOw5~CydlCh34_K81U6E!0%i@cNO$^E?^%zT$d2s z$#KVR%HSr}zqKj*M}9K*W4hh~K9=7a?Mb&r=5@a!qk54eg>P2^+f5PJ9^;|act*XZ zx$WrQM$S^ZWWcNwsdRAPVv@|Q?1d@toslIaoFT>7SLrvUqF51f{WNXfP+zu|7;Ele z<{~m53aP_8FTr1BXz%RZ7)7L6guot?ec|{ag1z6P3xgU#W9O+gHYG zbL;7l571u$Y0d%hwbilV^Rt$PhtIqH=v&v2i7Vg6o@R!B?tb`7AJ)HHAhgZ-|1a9G zpt~JTwqc#zaq(|$SR8CX8{1!P&noW9eN2<1I)@uBxQmkcQUoPIF5;p@Dp;b5eZj#w zWDHnW@-HCuP+X;b!+AX~_|fNT6D>|fMMa@YS1wRX1p4#^x%YhD;Mr}eIl8I-V`WBQ zXChg%!aezCSuI+o0@p2?V2lS`{N8y8#&=p;WY)tZpC+OcCV%#-ZiQeRaj(-dROmGL!rFBDh_x9)Q#SofrM;K~v>TB!GA=!HJr!c3v1=XYP4-=EoamOe7KhT*AEBE=~6**bzzo3>$;n%AirLR+I`NV`aPn6axgo_ne9{L9En+5WprIovn>F&EZLm3Xobn@JG)jq>QOE1E@T4!FZ6YruQJoOSeYM+iPc%CIAokcwUVO@8Mg)ojs=GxkGt9oa{ zTBE%;PrjgRo^$u6S79+%D^(nlTF6{{y_hDad@~m}$K@qs&XYd1ezg8iNlA%GNp3&I zIu|?ZJ4F&jl3pbK&b6$u8+f5Y9gKQJ^7sg3(RHN}8EQKaEE#T$?UFjbCIz6C%|s*sD%yTJzcC zg<1AW_xgaJnLe8mn`Hdgc;ycJ4uTH$4sF@D)M^fL4nj(=Z}oofuIlMC!>7--dTsU6 z>ea&Qg{*~K;vC|%kUlYs@si#WmQn$;-cpNF%~GDydxHjp9t+r3{%>im+9OL!GNoha zH7gyz7Ewv}-pKetJHl@LyqTo@tBv}#g-l1cr-#}*%bRmI_9NYjDk_)rBjo$vAzIuQ zI8b2m4qzAbW-0gOp{BR)jTBLeN4n}EcuDR$S^L5My!UOK$~`?l#Vy+FceuJf4Tm+K zPi>GJp`_sR*y+1GJrw>yhcuSA*zBkpbkEqgf^#ct$MCx!rM@DG7H95O`=;2wzX|E< z{i%<(wn(wVqCHbhFGdlrRbP>r9=L6vhJxy5dN zdHGC`ok0G9ozly;IUSWmcRSCIw^I1-w&6Tz`yA(vN*J0l?2tvqvly^2*4((>{3Y$m z1Hx~cNORwpT)z|q-PL2(;x|we&LE$Ex7`(N>W7W7?d+_$?D(Rc&TnTQ5 zOJ)Y0^?s5wJsIn_5HX*E(oh~aWT$eg5jZ|4;We^tDiiy-?y)^8GAW|_vfvKN@J(#e ztXDU;aadU{BYRv4mAFi0TdC%GX(-`N&t=<6j>GSTyKA|-sze%%Tp0mxx!8A~S;Q9n zFl`I{Mv9G%OPExy*RqKPy85o$1iwUk+v5SBxa0Vnok3~DzWG_tgsT;; z<&K!gk%*t)Y|namUMtQbn(3U7<~?P^ODIH<-+C7C68)A&Z{y zJf^wlJ{TorBvm02OwuBvwoLVH<#~xKFG;{VeR1hd10B4Z&vI>Xzh8VhL9Jt3qD4f{ z9+}`_=Si0)DSXfu&0K=_=a;1EnS;u1N0-ZJg%3lnwCVKzU=BA8Yn5|l z=rB-oNBFL8Ef~OD4*Kdu_3jX5`)lv?2NVw~j*OkXNzqT4iZUbRIpN`U;)Ull=5?Z+vI=P^8eO znQ>gq0^adv?iHK5(*$TY9v)tprPp;K<9p1GA=U4@_YG}?O6Vf8_9AH^kF$$Qqc%mT z?wbKk4qM!A@7^CtY&b+b_Ff@=WQlmz;(<3FqM&yLKehj&@9jUyP^w~E!d!EAEB`aL zmwsyhTEHW7k=5OOikXS3>MLus*BB4XZ86d1Osjcp@FSmwOhi=*CVYZVwwxW4H1=&^3AgB+mWcqk$qFEjNf4seO za3uZ0u)V>?wr$(CZEK^AH?}smZQHhOI~&{9o80HYed?U|`JVdzcx$RNot|H&yQaIQ zX3|$*R}m7I%_{HVHYDfss=!cS+4o4ufu$2=*NPdI*}xz`VtC^ ze_z1KT4>f*&V3_k(7T%eq_1R(GfRitC*M{-J^UV=+qb(lKGv)poJ*WG=6Vj}Mtpru zk=jlT-{79f^E2~|met_w{QiaMYO?hvQ!;8SL%aSYt*MzQ8NFU_Q61d4dJ^$kGc>!~ zMXLMQjF8B}z;98CT_2&>ByZq5rVRonhu1ThtrT5vWU90hk)Vxf=k^)r6wo3<++!&F zuNl-yV%dQ3I#j<0xcCq(Uh=+4Z|x11?|#nGdq=uYyTRqxPro!}X=y()G7vIzaH;r+ zNLYM&r3ndE$ zGAQqFGH-M+)M&O|4r2r67pzy)fAca-B8W6_(ZyHeyU<19rxe#YF_|=?XLeTjc<&~? z2=;_>bUB7C8|noEDez%+7Yt*>ibau)y#&kaG#e!!ONcr_1gYr~I7s7gEgtzsbAC|; zfVq}xz`bu?jnJ`Fg@1E!XYl988*iW!I7bHPxNxFhGLaUaR~!*6b1uQ-9Ynk$lwfE) zUCBnHC?auf&&~o?iDqsfjchazUVLy89We<%)JMlh&;m$VkrlMA_xX|JR^PV)ldY_X z%?PrJwiJ&oy9#IL$-UYGXm{--@bZBxW7D4rm`RG#V%GZhp!!_4HGTQdOV%?j<7@(+ z{)DHIrrH*4qBJINlY4g`&0Oqhvrd1a*o~0_#gNFNpzGH4;%7l>n!4VRslAZ9u2*As zJ5Y#pXEJ|mz&Ah9IkUh#JpiO!&z?4mix|b?F3E}SBAY59srx3BsV8=1h@IU23|B`P5Hd{}$P}sJI8jQX7=z2OO?Bk$y-)kcKN2=Jd&&CFuVlw4# ztn9!(f9ZQ>gOY=C)}xp;2TCC9+4W3)RYD3xJ!GI}XXH0bKT8`pmL8=RVn4-8QwJczIfPSg=}e+?661?;~C>J%3>x%V5l zay7|jX8XN~TTGjH7ZAg%jh^p-J_eq9PzW#@fKwGv0(Kv1TxG0L!P6SZ1Kd*O+{f7z z$}iBi)-;T*GW-m;KcvAPhO!W+)u?jb;1XP;4OS=67+m+g{|z`y@rl}=V|wgGfT02f zRrZHVhZpIO%M&e+#f!}dwS?)v_PzbD99v9Sr74%fFGCc#$kvN(9bJ%D$!Q zoSWA={dh#~V_&cD@rBr>&Li0Ssp<@|Xy)DyQBiw|q+1CK`yxl`6Bz*+4nY^j&ciM% zq--O4Ki~xC5NSWIL6W7Qu1nFHpm5m2r=)nUV}3D#N9Ic)Aro>$v=e`^$$lH3ppx`ygUlu|3lyj3@uha($mcmeDznh~;>Ci#P zA3Vk81|fg)LuZi3Xbt0Gigt7Sd342Z*M3G*Q9b}<3Fu5vpwHInsr;RKNL58*52BG) zP{jhPu}eP9Ur`4kqeL!WSO#ol2?$28QF;~j4N9m6l(~f;@N_@;? z_?+i*!Xs`!5#Xm*Vl?!<@$AR@E zrKSpQb4CzwEr*xo#}!pmNuXMeq$2@GYeHv7l$55Qi7x_16U)J4u^FKI4bRXiAat3Y z9T9hD45UgkEmPyxen%daPa|CEtW)G9KIJ4P5LhGeX>9hC2ExNh9A+~Fp zKCf@dmq#D>Eu(khvx8lcIUVeUFNhV(F9WuUsCJOS*fEV%)iHtZ51bh`VdswP?tlDs zX&Geg{Q=SLivEr=_mM;MQI;taAqaW8_(OmtNY z{Fsq3eXZ~EIF=qoQtBAtKKo6IORuAGYqjC>(W&@7)KAsYIp{g*IjiH1V?Ku_*A!QD zeUirc$@$88hY8EHRZgc86Jo=(M0f?eiRPInR+BOErT{HgnvlzAbuEa-M9!|{X1j_M zw=V7jb9Qv}X#bVm2{I_++c% zX?FC<8@0BR`xb`p+eP$-xug-;FM`SYD!}e z5(Y6_VQ>~DdMI}3_|w0ixU)O!UzC1WMB``;c7akIkD-Ww?%vY7#34^3gTa*y#A@e6P%|X?>@c2r3{KCVIALkGpPw9>TW?~}sL_?a z15tVx-#Y#}ISNM)o`Z`B*}Z|~C(Ih}OwHfIYFQ<_kYg2Pf4>0mbVge_OH)b_{J`-y zW3)2r+g<{7>Wgk?M=%?Xs~8{OOm^e59Nx^-Hg3XopXvO0c}Zgc{_B2dL$O)?3f^$1 zFfx@225pghZI%wZMjT#S(f!Wx&ifCKSt#QSs^k{n*&z;;)o;+LtJqkBLCltTs3Q1K zC4G6($z5#rl*~--;2|>wG?(>MSkMtF1T~uqURy7Di@wA2;dc?P&+EsyFyLI=Uz)fa zPhH4A2(+R0a@M?Mg&Ea>3v@z|TG>R#~@3-gAz`7_W$5Dp<<+=o(dGk<%~^~9v(w0VQ~dU26+R9hDXdVuoiBdmy(Ulb{qhrvQWc=}BuA_Hk( z3aSj5r~MZ~;Y)jXmK#fQsc&l|__rRXBMlH-e@>>V((*-q{cjG95~mb@mNV6Q0ZqGk zcyOoNUxtS6iKvM~@}Fe`r_>NELBLy9HG$Vl?Pp+i;pBgPxH3DH4sxh|H;}kWaU z(SVD%G@2i}sQvW|))*D(G%|w@pM^u|4=lq$ZQ<|mNEtL<3cHWxeuUu?{Xlbro(-VD z`%|8jT2B1^z&_`m>e~-58ykNfBRi zd^={s$OhF}GRvF&I-r5$Sy7)Bs&3?E5vLzE0o+)VvAst!P^XQ!lJ7n^IH=r&Ye{rJ zk7kU5KlImzrw8B>b43akX0s|YxdUl&-Br(>#Aez@RudiWL$qZ6=btlNngG|29_TuE4DgL;3$vJQ6J=2%i1%=cG)A%^$oZ#qteF_xQZ;XZULq8=(w(5=& z7?0d0}IK|;cTE~@f`9y)tXQSAJ{n{`*qg`UPl zZpID<8p*~RD;M;A;Eok`RAAK-{tA;TFyI@P@Wp!POgQKPb5W9mqwD7)51=_YheHsxIvf~!_9H{O}3m9{yAC>c(z_1?hUYPi_PY@6^e z6U>EQC%?6SITDp4j&F%X8c+EUx%LN0^I9{UZ!%3HJ@lT64{hkJ6iVQOD3z9#^39tD zYGL*rW$630vqUg@3|xb~46%yyL+|hgOrwB251*LvTp-T)dtBehKF)-1NwR`=q*=*g zZHC|=@e;ESn5LvQ+oRB5X@Kg_Zc=jS#`E5Z5e-+1Yh!zBb)w4Qo@aHPSj8%>Zx6{` zjR)>6`+1yTFDsx-A=|m{UKsvaN&~WHK4UR;{}8HnU%8C+9Ow|t4IB_}aVN0l5zB(B z^Aym-V!CY!)s$50s=TWLg`$!Z&gFE(VrU77Ot@7f(i52@@ zTMh_8sRAiyqey-*T6?!Ob5CqV{KwRQrV2XDU!KPe96BGTf(M^p4c~weiDQC-=DPzy z#4GSYmQO&VH6KvSf!phRRW)Pbpd_gt2y|!M&Z?BRwzgHyuZM#(YUYlrTl0f1er-^# zwrHuQ%$J(Rj4a0M=b1kqs<4QDUN(C(l?Mg5p-VK`LwRP1qUbG&{%}}T>2obr$Qv`3 z=xN@vTfl7mj{20Ip|x}cx(sxP*YLN#+S2SyuN((}wHuB_bMb;LCk$2ty1K^>51J6J z%P4w{RX_%@1LN9J$<2I1gTemq+sWWKOMGoKg93D>!xECH*A8{v2$7u{51PMB4S*vX zyZC;Yp2I-#qlRnNcefaUGhAADD1N*|ELpaGoTrZmUh<7>78c(wR~9bJ2F(crlX+g3 z!hD3R723{8unRWN+`$8->topu>>LI{Wq_6HgXO_n3vJLNu?A-Qw{_{IiQMcbsrwJ- z|1wR_8V#H+X8gW>I-wGiy93J2o`XiqjsV~Viy()5)$r%0^Arl;H^LqPkk z4-HRlua}+e1ieqcS&e8#_6LT_>M;xPl7PTrkdD!J`~~<)FJ1u$D%f=i#-Xk~gp0wu z-|ZA>gHX}lySG?{-W~m_v~O^wba?N*ZxaERQuU>pE4vZKbnYFI$^7F22zZgP3t2IH z4FHj06y&->A9zQrtnKaOQsR{upHob?@6p?usV;y919jvvt1LV{V zFm}Q%xGmUsvup&lq6#a1Gk|`xBO~hLS+BqH1VrubQ$M)7bc-v6xx#6b88io`77R_{1J?uTQ%igyftn)sr z^QEl5I*q9I(zyDH@4kiww!!O|5<~u!q+STN?QQ(Z_GVxf5W*LV77jV!!Y2JV_&f@L z{n&?6dJ~de_CI@qFM%*{9=AcM_(foc(4B+n`3bDeHky?As4_rE7@)*@B`^7X6P$Y* zvdaynh2ak);(ds-koBW*VSZE}Fv?y&p1n_BBj#w2#u$+&`&b(Bc$(PoBuCa8@eD~! zxijGE5zzE)=(#DZzqVpc;|9=;8vnlBid4K{TOhTjG<$nP*@IBA#+OYEb!6Gz3 z^|DGg*ZfFtsxBd69AYarmFG2=P|1B%V%%Wm0 zOqd@&dxt;a70vu)(A>7m`eNU3#0e#5?c=s6_xM2+O)eJ9j5G`+6d?*5CbSn7pKCtC zaOHqqPzx=Y{P|A=3L41As^gk2+}&%doZrH{MBVm)FGC7iszi}^&JUUcJQ%u*oI!Z< zY0*L$oFn?p;T&4jsw$Mz&`BeQM%Dy~w{ctudEcnAp)}JWM~)o}unuHb@>BXcjK@X&l)5a3wpi>=zg#|>Ab;+YS{-Gg(Lx}uG&-e|a+ zeH(aphI025FkNMTcc|usK`bc(m;?!T{Z8G5?X!i#$2yRL<1afSXOjeRgCUr}cc0TK zCDotG81O}Z^YkMm5$fSO7HHd|a7jf#!Jh?y;jV~TFPSoDfRGaB0?yMQi5+f&&_S7d z=-ELEF0*nW_QDL&1L)KCX(kC`gs(5w zh0{j9_T4JhY96|hvcP;au6~H%fjRpFXw=s1?BAT-{#SY3|H_9W{4bEjm+a2rGvfWv z=f)wvEF)j`aoYbzD*o3(oUcU8e;^Tfnh*?s`TPH_Sz-86$9zs-%f8e&Uq8Q8dH?SA zpW{9s`%BBh`d7x_^K|v6zT`_{^C_HR{1n`LN^e;|eZLHUu_6Bu+^~JxQCL6Ab!?xK zFy_CMUo2l>#@Ao4utI!EbG{@x?4OR4Pg%`h;=;eLpXINv%Gcyv@!(V@&LQZWqgL&k+c)S2A!x^H0v4e@IU(R`UlJB3 zk-m*^>V}{qG6N;x@R0AwnqdZ~YIMONOBeVivF;C9!-*Fz8z*l|Ka-Pp=nlr%ot`#3 z2}hHlphjzsO`c^31F%Vjh{J-ccnvJ({QdO}{V*Paf^q2ahYwfysN?xN$xJ4HEkvX1ys znod4oOXpZXKO2HR>OP2NJVF1U&d3=htshwf3ysoi5)cu9A7I)G){E3@AXu?ov7No0 zFHgr2<`H%ht{KKY06C!W$*$v)z{VOJTVNPtSf*HNSUvld4$S}Iu+wbDUV}g9c)(O0 zXnibj|LKW`I{~{>cnSH0{A%ur-I+YOHF?$lD&3(3_j^Skj7~<4rVOPbRob|A*|@^| z+yI8(q8 zdW9yAnkOQ+P@tOTDTzp^VLy^>dXw@PYGknRALJ{OD_Mp3AtC&FakyXt#vzNE5DTKG zyr@?pt61G(U6pAH&Gs^$1&{@j1(*f8pJ@(t4ml1rcRx?uPZ)j{I5gIGX_#{VY&U8* zXt(k(e;ZZlSLrQSYP0lgSZI)Guxik05YvpYjG>-q8EjZ;7-`sOSWfscT8q3gv23;E zS>Im&Mr<1+d>yA16FH{_5w#+=p7*Zck3`uonVSzjV{g__C!|4Y8Sf~$Sva0qtJnSd z1c@@1oSDF4B9kIvgeIcNhljl)<)7_sLMP?W%6$?_qwLVC z4q&1YA^Gk)V6>Q`iS@XVWBUrnac~TL-ny5%cxJP26c!RJj)9EGY24dTsRay`0;@Js zw8!9Od{Tgj*)Wk&FF=i$KoqG{G*|o~;ms?FG;UJzn9Qa>CXg@u#tF#YqYIp%*9vmLNOc-+Lz{g=q*5h%X}6i&iolR8MIGWyK<}|CoC4?7qLlY$@dvdZ2&*MsNC3hGO-w5t|lg?*Or#bfXk0K>_KeahPT>ks#?-B z;d_vT#m#8HtvZxD?HaEj6>Z{-9)~#QFasLdnVZYKvl)<@+S+^b<$TeeX~Yc{`Uy$m ziXxy7fP>1%$_7c|q^YBUf4m^jG4IvRirJnm^Wzux)u!b~QoMV|MRkR?;EThV#?-~@ z)6U>TXTVsTwHFQ{j<-Qmz< z(4lF>O$XHZpzfJ6YQgxhxJj~`euLi3DQ8h! zzY`ZmLtYR4?u2bgfAA)XrdF5Vrn1-`N2rK&j_T83CcV10%Y*O^iYtA0N*FWQKjD5k z1>Z!VE==JQeSNmX*xfqi`*61A{+I`p)P-3`5uf5Akj#?`dKRgAM(ej@;96%t1*^*p zLR)n6hxHN8x^T}%ho|M@rKi^I)2l>BQR7yr|Kin^if9(?eigXWc!71i+AOIicB29$ zt0k9z_CgrJ8M(KIMD0YqHdKFrXd?4smlk`Q1WCeVjEGSa?2RtrOqNTG1$=3xj<`ke z+B5CSwJs=YYZH?4y~gNVGl(j1suAa5+ML9D3fcMP+1^w}&YLruD*M7(Xp zhHy)-DZH0xn-ZW!7tn}YgPG!p!ao1Ef$#g)yZX%9}%GL3#o-3%Z0Yj8YzsW6jnm1l2bXsA)aHb3antvuMXo*g7;NrSg$Xk({^y0PM&)pd@2eK*u`nk zsr+R%GcSCndyaxva~F%)OBYQt9J|!;t@j#T%ss_H-*bxqJZYZu;kZ34{5hCykTY8i zEaF0C5MJ+L9);trx+_*K7O*c{4S~alRwT@ACs9}YNpCMc-(7&xk_&YvIkS&0X(78+ z<4GXX>Dd5b>_A?-_A-}U4oiT{A3L%g%(OQ(=Jb+cQ3F`;kCe zzU?1pc&fbEb56x95Gk4EEIyAS{kDsz@S^!_(VTd@A{WH4P6RTLm2cF!5dsxH?(a{? zkzp=5Z^Ub)$o22)Ofh+4nRz_3Tp87aQ*wyidUFN*Wl;6NMf)E?26DF#x${aIl3DW- zyuRjmiSK~U9*V4QnNtQ1Cym#)KaW4&ui--gLhsRX=r}F=k?z?^{D>Lqn#Ebd5QcN$ zCj!psqVnOM_X3RA!Y^$0+ti?#7s!wqi+ln{t$x-i4D>2A4Nkj}8O|I-+LN~rcDIW| zxH&|NIg&;oiKiHB;+8ErjmwKcK>lE}D%u9Og`1pqc8`V!?3;$ia=x<1r}6<7TO^IX z?_HzeWVjUp z%DcM%)r$P0u?76nOr7I#&?^psExY(jTaSpO=J7?~v zEt?}*+C|@#%&LQ)UiVj5PyfZKCg46F2`@yk*{vqec7jG7#qLlHQ$inCt&8`4f$oGdY6@&(I1Oq|{P6;S zQsulV%qa`PE(0Ptzcb&7Um0^SC+pd&Gq8)wLp_}`s1%i=+x5VP>x&zsyuPj^95hr^ z7wzsE^KWB`~Rflmc_wLX_Y4xOJ;D*VrsM)v&e1EZ_q4@m*M+@*nl%|XVNzhM+ zdyM;2`Ant+ERT9wg({$N|ApqZkDMXV_o&Y;Q<|pp>1j5xr!P>Qk{zI zrI5sT5zXI-!uu$cMm|B3VX)!Y$Zsx1g!W$c_|c(Hh*N2Tf~0j6VWqkSPkGK!3`{A} z1_lHwVsg1#-Rqp$`E>!Kpc)8I;CzDbk+TIOx%So=XsM*CLIqLki#;|ildy&a`2n0EOr3Npn z2pHXxtRicde4?2lu2k31P#}nshd=O51te~7k8bv*MaB1S@{oAGg>G`M!2PUJB-6T- zT;oCG4H{&E=d`#%323+U`?E#dOi)Aj(qK!dZ$?Q*k1+QNRn`Mucje!BFjKPU>p>7k zIK_GQ}2jSF$Nf@?*scpWYgf3ppdb8>@a4 zof=wnH9an!OaY5x;+3&Gnr;D(Vy2n*ZZ`N0{LbJbqja+I*q{{NY?_%56G6~Xm%R}O zy>_yd6l?+MZ0OPWt-e4~hZNatF?nqNsUZygVzOIVaD6R9 zX$_ABcLV!sa=2maa`7pbBXR0zhJNU>N!co#sp-!{YcZxUmN4c#j0AKQvF1&F^rmnHIA6oL7 z-s-mnP=;Hd7s*@tc!CQv5KU30wE_*yVIX)2rM}^eoO>Dc5#%o$?7cBR^3Z#VrjDZ) zH{d6a2Re$NwdALg$#Wq3F8N(1!^c<+iC#Ij1voA_3Ru4gyePrI9Wlx8@t< z_JK6Z)72jp*OIX>x4%lsaRAv+qc5t;8C64 ztc@k$@3hQefeflPpys0%#)xRo%N@@10hsSs#Y5Y67fzCjy^8^w2_#pCXecx|ZM|65 zh@K$h>^h~Ezy}pl+Cw3fx=bq*`_*?QA?&cEqZ)S(t%Ra_%hUrtiOTirjf{X2WM9YW z7ctGirV*aF<>+QB8ZsEL*?zW+oRJaRhX{ncl+SCPXp+SyCN7;EeB=mA^{7<$Ne&`> zf0>|xj>FLnKEpSO9wN$}sPapZBI&2jzxueeI<&O;?=*9FhIK?8c}yil_E& z9TiRKx>a;qdLG;Y!5&Uw6kj1AlMAsNK(SloEH@3L0TwGE~6E0Z3hrgCx42_2^yRP zeAZmv2h<`n&e)@bF{_f?pdhK4+=(z3k51{5Qm66gs zw0z;t4Mp7&ndB)fy}88A6V{lhHh6hN%lM>b`jo|y^(EJbb&ipVz7GQd%5bXC1YHF~ zCReqSNricV6$IT4GZ1Yj3^BYmJT)9NyfOU8z@i9rcmDLQiTRIXD+pF;CTb?+B+mm7 z+tsG_HM4Wsjjq(E6!&kN(U}uo{nlHJSM2ds*T1_URk{Vyf~u~)FI$@nmRGTU;)Dm; zRk#$p#JjY+6h2iwl|8jRiQZV=(C(9>q~-_bm;Q(%?qOK0S*lsHTd|wBTf82+o&(I0 zv>;g>qiDv1lag~Q@X|Qw6 z?{aLwk@p7phF~yKlhyr|g{6j-`z4sAYfBT01Izvf1kK{|vHKMfVwDnK=bGqU+V2wB zd2nV`Oj05IT*(B|@y4GQ7zmh!$KjvF*yRDu=oj-*#D(M;9A(@pxe~sS&x&}@(=fSu za6i~pth7a8a*((iiJF8~3|e`e%^-Phq%@DJutmk8pA*WP`RCJ%dMK;Gl<(!lPM@i^ z96G)qAOBhwmJy%8QI=f`5GHWnPUfaybYxQz>19N8GC8pizgFbSieT`cEg%PC{b+T-P%qRk%gY+Vt6nSxUfJ{T`Qz&8(GF*7u+Kn>Rq=i6sDtY(+!?ye;#w2?B% z>%#CEG#A4|YptY&@azr-Qc4Q@ILgPG!5a!ch~O2GOlMnS4AzCB`lCs}h^})UU|=F6 zAaK(V(-SjeV=EEH@EGb29Cs^LQ!bh|UfMQA+gt0w+UT-OBQRiS+5^+DPVrgD@i{oa zN3DWI6toD8S}qbpPWL|zHWAp-aaf4SRkk0C6$$RS-xonP9FNJa!C+JCA~yuXxG(@+ zu=?}brq_XgUa|smD;&4kJ{r;i-E4>O4 zDlc{ubVjgTsL}@?+cyxmB^Y^tXs^w;;0-26?=H&x8TB&pBOPV~UTu=qH$v~1Q`l)J z_sJ=<`|bpwa*9Cfh`MIO#bzh5zR>HE|IkqNs?#6H+FSCLS;dOxb4l50s7$*do-ITt zjE4|W`#VO`_D!TEHn#-~4@JIBYCdRjmRn?T2$&!)zcYRbVpoIi#l|%ti%H~{a1^lW zI{2tNgxKW+^(!~!m+}jz)7On3ojylXt!$6exqos{+3<1VheF!%dkDrjvvcCoqtIVq zB8{vU<%8PX$738eIj#-vVQ{bzk#SnduUgH_NsmXhcZWCYE>9sAeI+y==j(>WAZJ<1 zrAHlk$jAI(Cz|j?IhE8WVVzhDsx=HF2!xi;H~R0yv3S^f*lB*ezlwht@xpSy2n#s4 z4S!?+n9;h*HRxWe;AwRr%P$$0nlD~6+-EfHe!Jo7Y^`gFRmoi&Y+C##^1c$hMri^g zdMBgmRtSr}FumM(Wos1O2x+j=%#j}`;$YKo9_{3j011hvVFHl!*1hMiAuE|xBI#R? z8IenH+2o2+h=}OQ@$o!WJoF(p=qp&pXm-K+)@<~p6^0efzOoLF`+%HXCf6duJ~8Bp9@gu`FAFV5f9yp%$+ zb&I!$&EIcI;iOMoBRfnh^F^9(KvpyUSNQj9W15xKEz~JgwFaoS6Y7w$8m!+q(AOO~ zzm~fhROB~k={6qTWQS7`B0OkyTaDITMLq3dM0^grds&IC(n}okcv{k>fMhg*vBaO; zTEk2?vjI_@A0;(=*QY2koe8IS*PG7#&zYs>Y-xf=*sxz>5#v)vhL1)mCPRk4)+y9{jEg5t$R=p63WQc5tIo;NNw>qB_2Opyeo)W=$Knpj6y3an&lG6@R2KabyPXp^)Z)yB1`XYq z5p~yW+))Q~(wlv^Bu!t8xO<{1^14`9f4<;l?J3X?qYbaUTOs#=vRoKq7z;;I4+*w++tAdPlTDBe z=g0;XTiCx{yuD_XGny?gKPo)Mnn7bA-DI%x?)P5i)lHmwPS~9_%BJDmW7XW8%S}g# z77MmnzRFD4T?mt0^Tz{A5{|_O53HP+cT5P$#N~ZvcB@XZ(sps78*VOFEqnk6`JH~JuCeI3AbS=3;1f^;3zy^P6;pV zeJ3%sQGJ}KlO<*}**u&F)4adqYp1ZnHV0|u9WfO{m2d?r?iG{w zJvp%uO$sdq!uD<19DQ##&cTW_|K3bA*N4m=Ol+JXlQ1n^H6W z$>SRtSrtWy`4#3KSO|;?+qZyBA2F`eZf5;(-Uf#t1iBR^E$8z34bxk#j%*l?JbK&S zN|yIo-8q;z#GWoLb8h-%hBo3m(ldQ;fe`_jeNhpsRzifYbj+3 z76eA|{XKyX_y!XCwB;p76d%9xq3ef$!6i}`X-&4&`JuANHA)%&(|n&MJvpP;s6dcJ zy4s~OrQVFB^Mtnz21ZHrhjn4zsyS%kOo&PaUxA7JMN+WZZgHQUzQoj_QB&8O+J zRoDo#-|T>pHr&P2{7e~s&bwm|E1^acCG|%?(>t{Udk$hK%ttpps>xlNQxr#_w>T9O zQrXW=$Q7|ZKR(H+Sc|HM_aEwm4I_aYzsc4y$>0wDSi{m|-S|F;y~9(ZcOB=Vn1=6R zC`dw3c3iZ5Ugm?dZB`FS?ak|Dwb%?*FFG)tR4VhQT8@aZKw2t&D~-+U$ru$qEXt?q zB^q$TeTEqQp7-bqm>^?J>T1XxVq2Eq191C?zs$g*-V!62;3VHQFP;7Uio?++`voqi zoa47&w--!DW^%+Ot;BgUscb-QkG^?hN<)~$jIrO0;8OuSt$T=Gw+8T7e>3MIM8v@^;ACh++a)jhUdu(L?qt z6!K4eDKscx#HvhXYk#b@k(TOG8|u|m9v1jB*1Q7BmJ zEE^}QRw5$4YysYgtICrizoR8R5Q^s-C^Vh*5e}R~ETS1Pyu=I#iLd8=nUkqkX#3&O zXfrGlQzJqICW6PE9}~_8u z8^M$e@Ot*YNz9Ww%F10E!&Wx>Te0> z+%5VQB|DkS@G#gO+`xh8bBB`I$<>$~u$C?~Re*D6$5HtT8BK=qHF?=?kzVMST1c>DmWBCVM^7qmIHUA$aBi7GS5zD8I-(xbea(HrIA2Ry=ve-$M}0Q0KATodpY5ox78dho1L{ja!TMJQ`>R^@-&^-T z%>BzY{SRaR=^5ERF`a*gasK_m@!x^4e}QrSr^Dil#(`k`q+q@du>YtwF??2)s2M)@ z@@KW_GeP+Ou-f$L_4uz8;%Bvq>7Qwwe}p#wPUCzn`A>b%|CPp}{{*f67c>sI7SiDT zMWM;zdG^l&W~mgRfpdPjoe)Y2E8FkWa7caM2}-kqAe+2f4Js&)!|Bh7%yY7QAwdW! znzDT%YnrNyp>`=q_EY+InTqLM3h6i8Hd{X?Ul^gZm1k$QwH=OC58PqHCd4ZZ(FRzQ zUaro#?D)sV9*cW-4hE=_(3zdo7PFSjH2695L(S)l%kN4oczN(Yu&UbQ-s?iQXf6Sz3ok0ODm1D! zYB{N?20394OBv22wT?ZE$v!7MH{My^Vc&K?t9kf({^n84ETmoRq)UP>ht`IAgZ>Gf z3dIRM2*nCLAAl-Tp2orEV4HGYw`A5jdmy9B@iyFG(7x1t>h4J2n*0{y(e*x&%pUx6 zy!jVU^L838YeecWu`T(U!a2c3U*kUEBig$pj~^|IoyhW|5B(5ZH=1!6>jc9DD-9D3 zGY+c`oen(;W^wI=y3P3^SI_dMOTZ1of#rl-T4?%c`UN|$lP7r{3J183Ko*^-8kq$` z1H@5}Y7hRlzZ}sT;&E_>GlDfk7;ua@QF0lP+vg=QLg!I|yW}qXT|`M-(mDkh1@Z;p z1;qu)1wx87X4OX*1waKGsXZ&oZx;a|MaJ(ClY6C*4OXp-Mp z_CDCJG?xUI4EFxEfmf%SgMHd@(y@ba*0IKMltG8zdh-kc&djM;UdDQ^2E(9UU$_>Xe zGQ{HWZ;)EGF$@R@2#AOX3^6q|FgRl~9n%RIU1FTm6LWmwb<~!S&i)fq;8oZw6fnGt zsC&$vuL>+%?GNst&KoF545Na0j`N@zO0y`*b^|N(t$yDhm$wPc!p};~S_{|0$KDd} z!=u|lS6pHS*I$FzYtCY^IoDG-qvDdP^i)R)gJzbb=^*YLrsb1`$_N*086qZSNlF|-5@bR*oWjJ$uJT_Y%*fW*X&aq*01u%mGK z<#8saId%T%>hXH=4)K)X21rlEwVyGCcF!&q-D3r@raguvY!f}k`t+pZ4* z{b#2DO8d{xd_povg4?c9jOv$-%>*JT@+$4l@r}z1+cb z_54N)Aqur9#9G;EE?j&~PaI0M3|M3;Uf6iIp^9^cW(x0{@tBqCUx+Uhw_4apH&b>t z$PO6TY$g_M0{4!HVjw&U9s~`P%#~h28>{da&Q^7c1V>3khj7XfsBdYt|c{ zel29C-ZlOhMIjPO%g{@QL&mI|5$VXVrQ&cMxJ^1deOy~R&25H2Cm@0Zs%y1=IazOL zo>L+50B!;J%q@{d=(5E#v%04W1h&-D83f$wYpv}Dp`*K$BB4D~QqG8lD27EoFDk|6 zt~H-N!PA4^*fBKtm%hW>WfJ<32-Qhc`W{`P6Q-6>)7f(uh49CDb>16&03K z%U6p1z-r=$lf1(!reiw$p4M)&g6nR|mM-9Ni7eAwy$_^_hgF5$6R(=ColWamicCYq zHKX!KEMt6cOLSw54W&)NTh!>)OLZ@>rS zp_)C~B;u;vgVS;Ydrk7)6YhQbh2>c0Lc9v&`R4KM7ovw~fb_WmqR-JXpF`ZyJmjF< z;uK=0&cj(_mg11tk-;%iGLvN@2tRDXG250YY{HmqxsPN1r4Dp#>G?X@ls27&tLuqh z2dCvN`h&B{aCo80vCZ+h*V{A$CfCk0H754dIt2^22)^*Ng`i2b6Z_n-dQ*o`)dyvr^4GhZVZ6Z{BO>@e2m(gGKwChy$57<*3?bhRw zya{F(0B6WoLEm)nT9lY3<#GJmXw~dcr-LzpM_;?!h@IXd&U{@}eRX(i=DE)1GYs_c zWM_7xRA=Clp(5grL^8ypeT&9tGPtdp86!kQ$Acm>-dtu9D@~3lM5l}t<@>Z(A%PPe z(EPeSbabjT~) zTL8sq?C5G3c*6ruitr!XHowPk@q)sx*g?#i*ueC!ZpN34Fgs{oI zc?vEbj*X*}QQ}mdt;O2yl57~mhxOm#dP~VU6m#l%6fb_ES<>V2@_5=lq>Wpfbi(O4 z2Z4ONS-sCxomhX0I!U2h9u-NvR8$#c~ZuwwZwVZTs1C9(uS&3<_K_RAS_(k5Q8C&Z~6%H@Xe{}|< zjrX_Uj`CdKRMV{Joq_@f8OJRTvNbTZW{C6WbrY(JPpW63`&4ph_C$=KlPeQh;2u43 zF{E$;#*Ru{8$Yov$k!@Z_K*TDSAgOip0;sQNjs#5rqBM((*8};{)!G8I+%toWkD@A zX5uMnSr6$_yniiYBodR}3yd1^qF!hVxqt#_qI37j@5+jqFQS_n=ry-r(cs5xwHRI& zxs}xNZ>0ry@5e;`Yt7F%3#Iiwi_u}CJ`eGskCRjU*mg+*v;d3E2qGNpQ}s!ijN+Yq z1XwJp;}2wj)SniZV*)TuKq4x0*xyxpB(`BEz!^vOjBj;_MN415GoTu)o{E&VFf*J? zqvBICC#+XnkFVP+gXa|#jHgxUIz@R~adMGsqWp@ba)DfjK}ERBk34Sox(pYK(+X&B zWZD59s%qemY8|t%j&5t>rVM=dPq)J%dZma`@I8&xA9}KBoa2%nh|pZ_w)eC%Kva<;%uJ(EYuD<5CwOTm|dWl)x6MO3pJ_I!G{W1U|$; z@$2vjj-45;uWUEkoZe8V)4ec@%v*ehkjaB^lKb(nQ?Tqng(me~(b~D8_eg5i;^8YL zJW@O&y)t0%kJQPouv25^E>%s;I8ifo6b^%N-^=WP6EQm(Z31+uA0BN%++H@HBPiBb z=&Y|bg3O@S1Y3)NN*n){hMtXiYTtzqI7JqE2+UK7nLT(a0S`gwnz1mxQB(kE%Xz96 zvLD-O7s|x@YIKwDoXReEXv$SgU|qRR*Oe zMdaSRIH541C(0=j(5AwnVrF=iw<9EiPRf6K%4&<}zE1`h{`PAC!-cxZ19&H5jB6l2 zQTdb4So+tMBkP@4`F&Tma8)lH%ih+lx3<`I`ldX9`)E768`s&$e61+4#hHV<(SWk& zsUly?b_(;-7RPK(fR3cdaO5B$BH7w>t~h4)6-H$xC*!=?P!-j8x3n=nUeB1Qp^8Yh za8R{CP*>F7z124d1T0kV58`DgC!D3>=hFk!=@N*_^tUkq2DB=MwN5}3v(s-j72aFH zB--LLr~>W^XynDfMGbFam>el0g)(Ty1o&XR*a^-`W=prb1>4=CF zI+u>fowSqToOVqUT!R^hGh2`i3sgUWn&6WdSl093nQF`Y&&YLvFqy?womX6jz+8@< zj-5_hZQN~oZM$u7Be0%M-feR1KAWbSAZ@=kgWGsFRX16+YOFh`1zGr5C9%!HMeGD-3>S{rpD&lz+mPLavEpCGy6@8EKbg{&XzT@^ z_5taITad8vMj?*{npAZLMv>mSgc()Ng{^{5+qseRPTjU`ehPNFb&gZCXz=_5(nT7K0 ze~D!7m5!@nQ#OpDWW)99iz$Ofbii1_llIh?q3Vo|n>z|!qb=DUFsHew7a+_@Y?IkX zE^_)4Yq!;PHrgLLr3x^X75l@@fdw6*w7toRz-lnolnHES1v@5tbWZuU>IoaZMto(s zH;Y5;`p7z7xj@nIRgtBK_I|bM)Gs>?{3@+-VO7nm^1zY_d+<^k$a@LhsmmuDj4QFW z=OR^=hD3-OpHN1c&gL@+9;LMt8l)+#DSbEwC$8Qz3S9H3`IuYW+&XT4XOY&Pl;`Fg z8=?-$#4vw^Afu$}bSz}#F}Yg!Y}(7eXbganhOTY%@MvEjK;l?%;+VSpWh8P09W}K& z`EBA4hmnDlyI6I({>8|qgIEKN&tzIa@xNf5<*_IicClb7CF=w&@oMBJIcQC-1iw$lA>g;>nn%LUz zR=_rcX_;lMt*>qNwbB7VwhMg^ch7eJ=bni$AoA#V1eEVU&}0^0T}bAZtG0Ya;)3KY zv{w|&U@&zL->$Vqd4tdzr5j!*q>c#{lRor zC-3^xZ>DUW24-qwQsHB&4#7BR5T?l)Rqo3&Q|fV#*;;1(E*0ZpYvu^dYgoKp_hNGP ziFpMWM-;|7@a>{z*8XZXtNr*&LkQ}Al6NB6mX_?D$z%cZFAHcWT{YeGBFqv-7X5Oq*t zd~rr5eo}#Ier}=ncXBuKb~C*0oklwW%B{NdTDG9_nRX$S?8AphE)Ss< zi_N5aY?K!H*eILSr9PUCt7AK5r%U{g3p>ZY;#F@!%gE|IK0*SW01y>l2jllz?n-cd3~pn^ZW)w4`36Py=KV<*0BR#W~ZEaUym>+x{1x%B#g-6SfN5#F>S zHm3Dl0^a5xw9RJg`8a_a97;v9^dX{k{pV-6Pw)86JVGS`zJWjO@6zKQp#8~yl4or0 zedW*H%B)Vn;g^SYEX}fy%zL2prP+CtG!Awv@qvi_6*(lZIWASec68Wp!k$iG5gBO* zv2E0|bOJM2?;D!)E2g#PeE!TA>1I!i?1Th7rv!07n%DPenA_)WOnG^E*HXdU-YPbc zI(unjq5)~C6ecF;quuzC@$_uN_JF*}PGi{uv&?`S;87?)%pQIwnVi6L4DT$m;t_=P zwYB}C9u|LP727?gIdxlo^}kDhB5S21IOHlqB5!_;9`U{X{bLe^9UzXJ!bNo0-Qw%; zZT=R;zl>pP|_wDx=9bn-Gha1bv%?9_xMw81C zDVH$PAD8UBM`c(VGbNeUVQXXM)By&w*SOw4*QOM53e*cC+?eudN4LfR>;12P(vI%n zHivj7Ik%v!#)l@_a3pkg(68qgs=xx%e*DC80?wAuE=w-?(rF~Z-44*GNELyoyO^D=-O+<$rknVJiu}li?<3Y zt*-11h*rnYR*C$8lgIorR^w78&mYZLDC!cHl_yNCBhZ{t^Ivn&tb44r=5QR=OAUds zO9evd%v4{?-q(KbUht??PT%iYGQn~Wx?^kOGP_{KX{QLtTf3NCN(3K3Sv3n2vltC2 zfqT{;I_8Qwll$o`zO<#xdqXz@VTZ#KsjVt3Noc;77Y~2aDi#(u)5)8FtL*kK>l;zq zWp3AXF&gn$ElZe8cZ8p-L=sE&n>SL}< z{P9A&PX#v_fim6j@SXQleCUe??&Q;2g=3wHXM#By1Wv!buz^;;K-!a9s{l`&v zJ8}BnQ%>WF2TgCVDZYcAY39!KP6bjlrax9n*0RvNC*n>Y^|)PT?UTi85Z!qMYnWV; zYUrGDCFQyK^Iu(G(+a~k_3MhV$0oU-9(RR6j;>{`{Yfwa>^xh{4Z}~+cv6PuX@jGP z$ZVK#_&Lgs;oy4%RB|r}po2(2M%>fGNga*j9Gb%5N@u7HCh6^I_eJvM9GlF4tNN9_WUNTvs+ zBa%t$Us-5e*TKi8X=sOBp54VXq(U^~IES6#@l{vuQs~~-3Vv5TONX=?QxLNdS6~N;lzXHx-jQ;t{X0eG$^1p z<|7M_%PJC41cIN!L+)Q^j_5*~(8bzY2FqhRP-XF3dH`vgy!6Q|ps|s^XZhyXId`f1Xq&p-8kgmE4Zx)$RGXM|V^d{Mvxzc_0Qub#=v2b;R$uDa6`t4rR&h zSF&x}wKrrs>fV9lN1O3=VDOlm=s+Vd{V>={Crwlo=(cw~?oC&4?*LX>8!fRZ7!}xm zOe#F#IW~Z#;QMyJkxhC1<@5w7!{Dg}&2e`#fB3KR{&um7e&O#QM!WOE41 zfnzCHQqd+D$yw&5KiOvTb4!a|{7qmf0%hz8OXc~rkOSPO2*&MyTtR?iXP}c+WU!M8 z-CgU&h&OROAPyZ>DqYcEDy{X*EfdZ5P*JwLvR0rV`b9pM!_f!~rbc$aQ@D~15s{9L ziRn@YTG*9QFYv4|1L3*RLjvyZCg5U3s3PJOWuV`Zjd95m>3k*N)xeoV(&7)|MAIS3 zl^dxHK`kgVjAe1v+q+YmXo{ii>1Rn$+H2Q>LYPbA%O}qcEY?gbI=19TSPJtZ*-z=f z!*b$+$-e9hvo)3O9NpJZ5{>c5Cgibd=F*YbypPXftb8Xzp=`DBQp=xW5;>4FsQc}) z_ZBHO0P6}WWvYuwRRE*rdLo2#*8q!cE_D;bJiFbP(0dnA@d#3Zv z6JJA{A8Yqik+V0`-^h_`Q>3|WuL`QY(uwG`TeqzIF$`E$0|o*E^zj0Arq-$lX$KK? zJu>LNVctcn_rAR>zqw29B%8ArBltshT@H&Wz@foD!o*7{w%RE#+u?>y(_m1kkL|=x z8dqrMp4nk1%ri|lAyuXgIvgC6iEX~>Z*a5meqZNo&qkLsEenu>J?E=pl`l3MU@vXU zFF$Eq`fLX~J9^sJ-|pq-gf{8}avM7-PG9WXE6{(5R6r9loV0Vvg!o$VtgSD34+K`~!eGshxl zKF!BfY-V=tQdk_e#>?1S<^BAcm&F_uiFVNEMNy?K^&zi)@Uw^-tc@hrmNA(_O_GE* z=ZetPKZijgv4SLzr&NI7^au`P@qfzWlx%SI9VCqelv*gZ3Io-4x>H2-A2{KB@C1^E z3@O$;=^zCZ^-*ysgtgQoT6gwlYRGEgaQdw}*X`v>LiV)w0g;-Rxe+AX-~3IgPq}oP zJLuc88+cT5;;i%-tle9F@hnKD#7|k~#dpwPjxiMN0174heN=AI&@l84%@T39Njo-7 zYN}gkfGaZ1UJ8Vx%cp54O?+?cT}QAgOxuaTv+q>J{9clD$9L5Jhwv+STmkqc0%ka4 z;n^O`So$WLD`wbcAe?UpYm89~;0PM(U?ALY1?Q(4ZLi=8uBL^a30ZFgzeZh&-c?Ra z9SB&e>=jdppTEokI~~hJGvZc*l(XyturZAh19<#uR@B#H78$a4A@D2hs!gP(z?bbU z12bXQ0dua{?9rV0XrZAqYh!?tkxWAlXN5C*BB=;$g_z++taX>-B0q|TgWF?c#jIWg zR!QR4)h-I3T^e7`4C*WvxK96cZ^2DD?pcy6@+s)~EgdV#b3BGzAQYWIiEj-z@?4iopwHPC{1AvP;5 zLo`-W_WJTt`|l6oUdI$&+b#GhJv{%J{S!_LXx&V)^-6Q&x!7Asm-7r;^G{e_ao`>v zdU_Idy=Q%aXc?jQI3auQfX(IBa`EPY7k`Ae-+p9&kb^%q(xa~3`FD^uo0;FKE8itQ ziMW?TVla&IUMmg#2HDL03qC_6!E+A|^HAO2r`P^^({87wa59ny%aFkCy{g`)D~#Or zixAYq9@0BOHJYSeb8<5y2~ggjwF0f9+erQwOM~s7iTn5Q`j55ozW{LlSF7TG0yvES zKj3fvp@RNdWdFh6{M$SKJ`(>Of5XB=_kUu;Nd;3y9A0`xGj4M)vMACbmcrkEASJaM z{1ci}(vp*hN7^D7QV~{17UIXDzXxotzmX^?^;^)kSC*|cXSUU5&8c~_tf+CP#51r~;^5ndhkdfSTYUM^KS0c|3 zCGzx|!6i#GhUSz6t)if6DNc^eE9WdfYiv#=GvC@Jh zdPWWiw~BYmVeGuW77ZX?vm#t|~AM z1CNV{VO^UKvZ!H;8}E!@i5skqzZy3Vkm}MF)lLi0OVSHdGgGs|W(EznYlmwzjln;q z989a)r?jW2CTWW$?pf~TuUv(*1@_FTg8JphC8(Lm1-H|G^4GjtDb(sH#S$}>%U-4L z!q1sk1y>zcZC6QE@+y_@V$b}`MIQYc_nh0QD6iZfy56KbLC9eE|LuksV3DV01iGQ!xGkmh06AX8l|a5DCjV{docc1ATmg zd4u}8xw*Onn+IHR*?8^(8aa5TQ$F`!Tmm{LKn+;#AxU7&(-ddgU6eRqyTSXx>)U&R zm{!Aj^#|Zs=3>E+25&)5@Bi3|?T`+JvKk9aAlkC*PUdvAN>0%|Gh&|&8?*PGka|h7;dVXD0s;~^enV_-oB&R+B)Bm-d0RWy8;D&L1)h$|Q zQ;MB@F+fE&XANyAGtiUC+33WLGy@ep&kqy!X0jjghN8gw zSwEZcHE6nzn=i#e(ADRAB&_Bo)H{)jPi7h*kIWubfmbHB1yLLj{?hXcn#7jY5>#O_ zPERTTxrU$_L4pU&i1hxv(*wrn@Q*g5CTFHX$9Tgd#t?##Pp$c4+(=IcS`b>VgV$2Z z4Gi3{06+dwaFAi}@sTmkI8rSK$~07RcGrEiO!SjH48d0j!DtSARVJt1uH#bP-%Nb8 z%}8H6xIPj+y?Q``x%=fX+Bc^DcwBxdNu5U;g?)n(Tn{^4Q$x)fAJw;2sG{2uv-{0c z7|51C)c7L_m}q%|hTLQ%_c@x>{csXKK{gur7pZM&kB}+X=NPsfk_i-E4#d9BD!`r4 zsvwIFa@WW(>_*_I*5R1GPvDp`gJ+!Q?S<^@Om>?&{4{)oR03p=+DZ2fPt{b77m+ab z4W`ydh;iof>r&y*D!w#F3(I}W<)qAXq+|9ji`m!K$%89gzcj#yD(V7OMJSM64Z)IO zjOd3d{R@)ZUm(^F;6ISaR8tFJYh1dZPJqUQ;V^Huu8YUQZ`d6gRwgI9L8?2KlW%Lg z8C}}wP^bLPmcp(teSvTb*L@87QK4^d24<(jl5gtoEb+%^^(aLm0mB1=0mZ|Z<5QwM z!u~@~TTS}91!lM zZg+hk9fFhF12|imVw5Nz%Q=ZxG?8iL6>gj@Np9Ft@&)lK(1zg6m9h_+P9EqN%Y;xz zg6H3=ApNRupMI(PTpuQn47WL`8YQ5i( z`XNYwg1~gHcJf#c9Z)z+WcGzX>1=f<#NbpcJlJi+f>}Ai9%EI_s3Ag3Gxux$O2n>y zn#xjl=%zdC*mJz%{>CowlN&;e(!%qvSd$Tas<@l$5R6H}^Q`3G7&dH{lHwkG1UH!!>sARc^CEU{ z8%Bo4^u;=yaf`>+Yn|coSKvDj6bj?;Bq00{)|Aq8(mn(&7`G$11gjJJcp>{n6qnmJ z=@@pDgsk|ShP^Dc+ntSbNCBne#Iv~8`#pN>jsB5hbujNH+gT3VzlxS~06c20q0#m2 zvuTHU`ULYog-u>1s4<^p)CcsuygH$vL?rEmJ|``=_3+s&f+i_xg&Mpss@=gLI!w6a zBEDD$7=$S`7`c`=Y3GviwWzQIkbaByW z=e;*p`##f(RSQ5|m*F&#_Lv~Oq9DwDqRV-~+&^1{2p!cxx+|QX&6~IV(%5Hx5|Xn# zJ-x%_T76AZkUW|v8yjVt!2E4Lx;|;u=3;~3W6S=C#C|BE?r7Lh5MS(BLBu=|nhIa9 z>(+wj{dh!0A+-Wr0e9gGPkh}MD)DT^cXAsRB6wjY!i|fiy#lb+N?f~VC(uaq97n*UPzR8> zuj|+=CmaA%8vueUw-~F2v2XPOo0px6i3u32J5lNTqrx)4-~Tv-+l$M>8_DhN{5Jt} zhlbh>Pyr7hgXzPizo^Z)n{apVZ;55Gm_zpbY@YOdg>Uk_T|L-&h*&1WnQf*uFmwDk z$w^JV%q~toIU8?CbfeD5R;x+|zj|agyS@7TR4b1spVsM^)U<>eTzorkFp>UG*3y_- z#HNN`mJ17I4y%kM|QYsxd^L$isPn{UBbhgEHc^fa+v3g#l< z_FyezK>!HsF`KUG`|#0$brG;2@^}s5)CP1VhW&4?EUqyQcZUnov1VaC5H5WWtmm=G zxlB_kTv5o^F9HS1p()qNvP=yDXAZC@+8WPQNY;dl24^mqGmV?o7HmD%p_;SNsp;*o zx7x_!tkX-!S>JTEahG0Iy3BNawJmBu=_a)e$)+q&5ZniF^5^a8TWXv zl^IU>u2)3e(`hvW%LBYWjQJo#^=Jds%D%v>}D7M_h(7r(}RlqG$4mIQSd%A%}eFaWep~!k52w&44|;*so58&lAgJ z(OJPah31KYM-X2z?Lc2G27ICMZH$@@1iP+Jabh{skyt%%DZ=@rm|CBwo)T`b(ex+%JMntlwjypi;`xP&7Mt#)9HY}S4bm^U5S{xm(QLb0feGfr4w$6TX_#S zAO9Q7I=O5V17T)1Ss7^Aa#%#CUXtMziO42PvghACLo1hWnjw@kR&H&Bc z9r6BgD^%C~U1ngM)n6@WSuFG3c9pD!z?$Z|d6?w58jR3tmzb}dLXR{KT9SlxlY;VjG+ocWJFo^;)UJMkC@MY zbDnAnWwnQlG7@yiR6rm9gyr96J$-K~+^rbr& z5*MSFRb_l{2E@Z)q}gZ%Y!RDbQj-!s@B>pwvyj=v`w&oCJlM>2_bAPDs@rMUD{KuR zAJXUN6)La#u?%1o(XhJq|9+=!%fLcFM6ESV1Dj{t&C5Bp&xe;ON>!-ln5mTZJ%zm( zRt__yun5#YTSignvN}(%eORB0?oRwMD<1PS#VY8J3lj!XA&DZkisbEJ1N9!n^6HCX z+Of^pN}t9C!iO~omPBEqE%>?XqImjPpEuJycUaBpHTqVYAz0R$F&j z2Uc1HgeGTm(c1mZf`F zwM!KMa;^9@?{xVl#|r)yf{!(;UA0LK!K~OC)#7wMzch0SDvB#VdOKYXqSE{jnggHr z^`V=&W={17964T2ra$$VlaI!@tLp>u$3F%E7AZEWF1*)3zcx)Bf&VIeMEVToF1faHeu_#PKh;$@0`hkoI3mI7{4T*J5HNKUOztUSD)5;dt*XOxjn zhJ&%=ZBgrm0f~ImuJAs54#7HQ_m$>A(s88@Cs47|Ee|g_n4hHVD##>FAel+i{P+U7 zSB`MPOp6(UMd|`~vq(fRLP|O0;5hWZ(}twxJL@v~42W@(Otnlr8STxVUS((3({Dd- zcP(q^Wz}@GVEUzyP13@-X}Z5Z+*;p*q4z};=pCbrjN~?c{B%BARe$IaE~nVuy`Zm}IfXxD7Qu#i#pcc968U zZQONId504J6}vLsN_~o&O2t!8fd6h?J&iBtHw*AUnR-omVsQMjrt-l*%Ouy}7Afek1pOdObA|cd;R7M&oMxX>~3M=Ms4vhFdPOiP?XRJ!)rbBpM`bL9X zk_ET==HM_Kbq|3d{0R4GxVTLdwod#FqB_#RFO2kXDLU+7t?TtU7E6Jc6GM9gR|oCm z^Kr1-GE&kaPtsD3_=U%gA<$#ZqgdgvZG zV#68JcAJuW`(egQMBIX_Wr7K-W^{{x8;7D~Y`b7@e@Sm_{?Jj#7qnue(L~8|Yk2>r z?kcUKwuK2{?nTh?rXF&ri}O%Y$g3(%U+Q)^*f>#rN~)y^6J`j>hJP}S6+v}_D#m`7 z;`X1#I z#{`>hJtfGW7Ud%c0f(&`6{q)S@ z@5EEXz`LA{!%y-?FENTYgrdKSL9S1s(9H+QV=}r|qt;~2;)$MKjkFxL66iPkVkCTF zZ27DKaFrbY4mw<2JfGq>1ct~MH1+*3FN?-FH@2N~>n4s+Vfj}`DojU%XddCPT20vA zD&k!0td-)ADwqIz38)U@q?NR~`2bk9T=A>t<6Gjml|cPb_S7Wzm%ve7f4EC{b5GW7 zZW;lvJOk0e#P5`0c%N`2e}pY6?v#h5DFr?VhOHMm7}$u|Jv47I4iIdS_bXG&U{d;( z3f|A}y)*-bG(90Qr1SS3BM!k#3HnjZ5zF9`_fd&B>65Zh*g|DC)V)6^qH;jm?aXX! zVg*(l>qaZq_JLp-Y&LBiPW<9Hg0Mawf3Cxk^C$c3?uhR-UUoPK6oO#px{SlY#QYQ| zH0vuI;#imPRm0G{m+;p@%>d;rKR4mF82-NOu`Lp8V(P?FGx#YF&@g8D@d7{b5Js9t z6bcAn-W$B75)=j<&4J-SWis}TdX2qmP)L3dl&K2fhzlUx0Qr7I$zxz2FejAoeb(dz z1VPT``sKYnd$7h<=`)zGdbZ~b$$HJ&G)U;CoRbi@!xe;soSI-z|EcXzL0d*k`r9^a z;Kf$axY|SYUGJY`<46lWR|SwXX_;+y-`U|QqZAHQ!oYj|ahSzEG13Jmj||y)!8C3)H23b2vtB;5`V+`J7WB)2DV-9e70?>;g~;6c zF#()=7>4Yl@?vu-#fZA&6<;!6MWF+ZVRa&RS_}U_Q)ArJWha}3p8ep^kFs+(`?`-9ouHrS#)%2k|hc_`gw}jDVtW~PJh=jCW|tk zDd5z;rN2kMU6|09e1K{m&tlP`XxOp=cwzJ=a!;i~LKb8vKYNNB98V zkdJ<#=~)jTbyQR#Q;j@mnez9I`u!;xFGHOlsfWX2js|NVk^;PNuhLu%|3mihfGJ%=(M{jZU$g z7AGbumP~7$nimTLEXc9ln?1oQSWjvBj^>-aJ6G9^ep=mmpI9hF`*HsFh=p_5$xhA5^G{WvsH60pjNV*|B91alsQf2Qi5)-@V(=S`6xIri4j9&50u1Y>j+O4eASPIA zdqWccTIPV0qsq^MBT*{Gf(ON&4qIiWawOH{#vw_dZ{r4i`*z_t)88TDkIe|!jh77E z!a9KH!_!hGEscXZCk!S<#95viqbTuNFCw!DPL&ZhldJC_Kt!-opOtUk5=+WCx(=*+ z65^c0wgQ*l-fW`?tBQnbon3Ap7sF*H4wctlP6m&O=-q2#Q)5fLfB zA{eU3@n%Wdlsxu^w_Oc^)a0qzU7$%b^szXKYRIP*SdM)kHezq*a2U66){eGsMuk~f zF_@;y0q7`^b{Bg!=#R@#rm!1r`Pr$)*) zN7?bOXv2@y!9d=|O3(T~3O)aVD$wK7Na{H_3YhBIga3Fp{sUE@|M7GD_nr*;9}~xa z|LK2NK>h(9XmMG7;yEmI%s&p0ALj=n{r~iLu>9Cb7=BtU|6GNMiSEbz@ss9ZqsL|a z$DlyXk-54F5mE0{;6U{lNkL zOEJe!9*By8mib4_!9w@{rI>@2^*@O@m}vi1%t254kKN@zg8~1VeEQD|OWtRRe~Lr@TgW6Z6+{#9cWVoKL3x9fw*YE=yx+3qr0ZOr}`M_B}e6@a%N|2 zycXRGS0+a)B#qP*#3U=U49i~LSH=*Ny@ajRK~u%osxTCL%PFLLXZ_k#cjb1w&V&1R zymqhlwa+~d_w1*n!K|7if#bdtf}@6GqkDc=w0A|9Y_~$Uh)z{^Mfa}a_ULA5qJm5D ztaPiiMy7aX6vwA7Eh;+d9wY^%P|!7$3lvQT23xZWv;+19<|*eE+qzq*gYP}pl>&7} z_+gSmc}sIgsLQ^ zORim!UDIvDZQU)(zCv;m^`#b|CVTtu_6Iw(!@4b__Hi~j8g(J12bA^@IsFV)bxDN! zfzmzc+Z0#j4$>_o90r%Ah(_JY)nUqbuih@h!3*&A$t>F7P?pxziX!YHTZMvC2Zb=R zFtaAJ`qB}{5yuHdvo`%Uvo@Qz^@$0b6pU1_39CtfqpYLpiT=s`Nrg#<35v--M_fk& zM+Qgs4vDWtuZ634Y+}TvU4#;mg;DY`3tHewZ(=|NvGQ>Vcv4A467>a#bH--Pj;ic< zS_#$?(S<5=7^gC)HY%fwXKQ_n+l|QslZ$dPIx-a|rOUJ~w;x0j$TZq@hF^Od8?W~cO2h^rw9NiVHs0(n z`*@4*=*f(9#7=)3eN0EA>#dw)buyZ7(igK}L;7f50Gfn>>{s{$7iajny(y_2AE)&f z)5iMtmBp~Boni5i+2`TQ*{@of=9@i^5!0Cr0Ghg#k?hkE*YHjbbk^hmX^* zs`6Z-OyhHqbfA1O6Ydv9)0a52N+S^|My z1`F?i#AY$9c#p56EPcvKku-83*mG�IhNdue-C_JbH*55zI;~MK`z6z<&qZ=Ah8N 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

Peo(0rq0Vx^iv7m?q4viEy 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

tZ$+aFK@IS^WpogTqm_HW@Xxd~jB4b( z74ZR>Cv_JrzWZt6lJ%%_jf0zJ44wN(xF#05{q%r6t}ao+LXsP=FZJu{xpgkGv&WoG z=2*puo$5G8NEDx|_BEVK$1QzmX8kBE;@eCPv8mn$j zg*&2rAGvm@1dG(yeM}2(V7_BWP}`k8Q6YlZ2VWsVy7@LhO24lXQ_cHBK}%$KAAg3f zRVm#Lg4|-stkg2sbi|tat=i%5?uzhx9GHeUy!@IZ9_%i$KUT6{$MtcYPCtBV`113$^E;M}} zeAzOeT5SDCcxF}bI>+XU67P89XUXjf%o`9jp!UgscrD0s|44npgG1wkNQ)>-}&6rXVk5rd>ehTOs zFbrR_Et_%`6RaN>%=IZsqFnK$i3>h-@)R`IodK{`UbxdSv!M=D-kFm=@fY-B(=&Xh z;HL&%%~`WLsmoZckj?UnP?D>CXkrP-gY_EVE!3+cF7Dbs?{{aG!}4D+rnD>vx!JOf zg$0O>$4=RUMTv&}Y5aKmxQ`=E}?jye&GR1LNF!>wnk&#NdB?3LI3w*hZAK2Zw>Bw;K9HtQyJVKd2EQBWNvwJko zaqm(Fm=V5T@O|A4;ez9%-S*tsEOV1^Sg(z^m+p4X6Un#X^QelRV}K~xqNRdE6AN@aK?+%1fRTU}TZb_!+Dx z=o1NJk*NWa)yp$1C(t~Ejo=D3G*Ih7Wc#}@Vs;#rK7G?%jR(-JOxVjo>!{I4MbX=S zcsd>cw4vPlnCV2f#7UsRVV5Vzvk-S$Ddq{xfNn6medLV*3qrEQy2g8tS77=ZRw043 z9la7`2VMZ!V_INA_oAWwk8`>wmaWf{9a!*ARKpxN+I-ZmGG$BxiR67kGe$Cd7{#u( z9+QL@8$YW`lpI?;>!#P0O!X@8C> zwb&S9Th&V&R6)bPfTv(0brd9@mHx1|dDYwG zMx$*^FB#zHidw4hpqnl8TGzswPH;9%L&v{DyLQoa?6;IwmQrd~?LL}bk&!+q0^aL* z9fw}}EXryU(TM9cz}>4<$j&qfaB5@{4FTr(t*}^OPegiKjPvWY2iD3&N?_WQsLOAsbXpm1vF=IdQ^w=h0ep4j#oT(nd}ZY0}> z8~3)AF}9pG19`llF@}13%?t;LbPGx%fmfj_YY(q8bPU8IGB3BUacMV*^;Z{eZ0rQx zuN+sFu&t?lshkte>!{Hy$UQN9m#L?Imr!Z)%*bl=LUe+=&(hle9D9<2{124}O;fX= ztPBU&3wXQF(*YOXt3V5JeC&|(D$?O`x?^;AHqigUH5>A9QekMlFNXX7ag?4o5lt;L zC{;Il6G!D{0SUXByJWA_?hy!u*Z6#G@zyu>@V?I4AnnY7zbQc@UNC*tzJ#c3K5)oz z9lHzCwFs95PnfG5JGYpXuf-FiSn@;p8tOM=izo9h%@#(vFEx6#`iWt#lR;s2t{&YA zA`@=#Wp|OG9jILg$aWWvm1p?G_rugC_T#%~kF`>E6u>CG>#tx~uPw=mFw|-Oy6`E`B)-tcS>- zIF^el?2^j8mQZb4`lEA<9W1a=l;UBMRcrY_(5W^JVx>&hjj81vki$qR(O=O_dm%o5X&I@;?|KoBz!J4a=Z z91#+~Az(?HW?z*l%H5o|AEe8^Vo)aibPUy0++f|F8)Kk!?T6DR{)^5a{W>d@-5PXL zNAhaYsh6)2*6P9HWqVVEn0y~LZe+7>(K6e7j0#qGUjwbV=(yHOdD5#}|Kzpb zN>?8pM0mkUi@aoad_U*HuSXgR!gxifr{f)f#x_J!m>-r1BJ^n?ZodcSv!(~5uSSQ} zm~+{HY>XgL%T+1dsqKwGcfzBCIT(#u#R0Iyg}NL|z9}UToueiQIEkArroS?FMS+p;Xmd z#-)MGS6lk2%f9spc&3i8>SQDm{2utz;Z*RGL<}w9Jq#o$gJdH7;=g5&tfL){F5$ut z^zHVkFwC;frBq?nPML=HQd0U&1Qw8kXCX zaB@-frG#r{wNC4xsa3c?oCyLu76f$nVp1OCvgJ!_n+@9ik^)(8wy)D@G_Y2+%07Yg z5-9*$VU&&;L;({7$~ZPZ=`{6a6YG}x*K-82J}aW@1+B4BaG%1q7pMoCZ|-2W=F|f_ zPnBRu>R@@Q{Sjgi*NEtmhOouJ{%v?9?86Gr895vmf?SQ7H+-V?2k894c*-QYxHZYS zwit5|1b!E|=%QA9`!?4WZ3_BtsEtEqn*1OMS|TEQtz#(@hmkyF0SBe>cd2NH)K8*V zPxf`6yHkG1n}1%(T@-0@NI*3!yQ{S9oMla-ddj3WAe89u)B2sAl~FL_Lo!ntU@E+Nan^20jStRXIOHpW2kfN-gI3FH9UNg$? zqkDDME?`48jIeTepj-3QIz$ zC+!a=U68#WQN`=yoUu{V&%W!K32l6{IcCiZy;cVY-OS&rnB7fk2WA$QmUkJ% z05bd2Qt0fGkVU?(GG+Qy2WW*gqR3J_rRlXPE3s<&+0)Ju*M|ba!p$6~KkFpH%So4w z*otqRkba!wv7hs8v@<1NwldhwLK$_zF9s5w@V<*HGPg>dYpNS~(fq*son6Ap9lXFZ z4qmf}jcnO(qVYdjs)h#aDTiMIzw{VjhYoG12wMQH{mFF&hn8yNcK{88mdinzgs6YF ze#ReLilNDu(hN$I=JKERWjJs7(!<@cZqfE0;yQu$%SGDkt7ZUjA}KiU5Rq(BRb(Rr zntH#hgMaEXPs936n_z>(XT&@nR?dAhnKF#f3I^J8g>g{dRVN*yP?%>Kna&f!1THI9 z@5RDH{`}*|=XdLaCkN9Qle!`U)G7;neSG5jjbODOo*lC=xvVcRky!Mm~Vm>Y}XC}3uSvQsnv`hu3BFzt z7k9mQILWXgql<-d9Epc-Z*foicv`5>U*80qiCx7ms#`QLiWM&GWNU$hQ9C0m)WSP9 zdbmzGL`Fw`*mbQ;>%zrc8?=oHo^ym3U4DLcz9&zXSoIgeqew|8c^-^=Cl($sn)FC^ zsLE7_$k{R*T@%v`+_kD(#c;3P3quZ7)seXJz48?P4nak#LVaW!W9ymS={obKbcDOu zRW{+a<4w1YBlO~r@{AZ#V6(^y3ty%k0*Eab`O>QQhfa7LsWG@SO#)pbbj{k%()rzz zSZ34yt&901fJWrH;||7u#p4-JpS4q_=~~ca7v050)Q=DqFHI8!!;gp%e9R>2BW=>Ig?WHb)$DQpx>!9FPZDctigj0YXV>fJpl zt7?V-_H|6TziNH{Ie)Q3rh-cO6fFfgu0_>W zx*?Zq;P~Eg68;$mZrO20In08+9ngb!a<|vIv)mW443u+P!T0yrX`>}d=;f%IHvqVI zdlP(l57K`aZ`pG55h{wb^A1_1f`iXP%PGLOvLf^&R75;|K&$>zS~>s;ZtytZ5F6Lc zdO-BTVKi#$bI;Jyb-3#9trmtnmyDE648lE-(COC+PHD4-lu8aiw|l+FEPE6d6EKT) z4LM@>3Rp%T$wow#O4s|<^8HzmwDQbQ&2Kq}B#-KVAmNE)`fuW(SDaolEaqukikBR4 zm+2Nr>2?NurE0ki36h}nW5n62$z-Q0mw(r}p&{uxMzbT^Vum7%?peqCi(;EQ{$7OM zNDircx$y)mA+ooocmr1!mjEovlpNFh)eBg!N-)fuEM+>Cd40VhHvFBI%`C$7-J@sN4g>1?Lf7Zxb^5!v3TfehuJBu!f8C z44|#82Sry&bR)xQLzY|)=+d*YhJ51R{5a>u2Oixc7i`q!f=FWcNA-mz1s)j{e=WZ_ zex^4vKAbcWLhP9?em77{7SUw-YRXwI&S2?f7uset_KJO+%_c|9BcEuE`lx4B73UO6 zXkDn9o+P-EWA1K#vbd0rYQWEXngp*}$V=nwi#&3AYPGWq?dWqnGOiN)bzKZKyOCj^ zgk#oz<}y<&uZhw3O9rSD8hl9!Z~l%3!zSu>!GF~{#dap5W@B(9Bwb+>g#a|TdLKoYVSNbu09nMb|z28&mTi<88xbw<)ZI5Yd7TxIOSaRIJZ+A z&+?wAw|ZxosWS@HX&{5HKYv=KxcIX&*12lPOYse#J2+qoEPw%YrsH^JRMB zNNgw@3b_c)$F0TPizECUEcbWkOG?4-TFzc?-W_pcfj7}SRiWevXemNSib~;C2a88w zh2sttYdTj9C6yKBp*A%$^b_~kujxyn0@)Dumk#AXe;2*m?^8ir6Dz(j8%A1>RtzN^ zbCnsV37WxYLe73y^>K>Sen?6{qBYQ-J@v&tkBKaNhkm!rF2pkv$+Q*IkyFkY0fp0CGxqSt_@Z9#$(t89zyav9}r3ZW=$a_u<*Dz1G>vJtry^8CfyE3b`?+9)gOd$)AHcRDpa>yWE#F- zRydf=O3JrsEs#_WFa;{++{}^38c=#73ODj1gK(L(vha?lf|7R21p$Xe;ZB8jqi zy>6c*FP85Asgeh;8{8LbGcoZpbRs`OfxkSJ>vlv5OqDY&{IhIpc(x@;o`Vk@w_{0tFDu4c?B83TV(+m^n3u9;Eql7f<05nFaZEcdWgk2)N!yn(Kdix zKU@HW;3CvZH;bCh7j4BF0Q$ZqNT`6VFaaJy`LZ1ZvOdW3eE=tyZa=U-Z9rC9eX&Cy z_;?6_NkkyG#&??CZQGbvqR}x>hnqe7xUD1$0_}tv1oU)dB>OxSA=PiX9C0oBdpBFP zRUR0A^&KxwLIT@fsrR6*h0P*y`pG#||6tEQekTpVK!5dXWbNx#e6GD1$Pz; z#j^Y;c0tZmvJ8Wcz-~@h%TRUfz*oUJst+VCjpgP;94Sp!d6H zAO*HhS^_xs?>}|XM8vE>06;z`Y>$o~;U{s=@5=<_{BB@2x*_UN2N178>jE_o?#l_| zUnl_Oe(aQvzh_|I_~`e4M*V+?4!(Y1Uv8M*@#*earNzM{g5Bs#C%Tm1pS=8a6h6n$LEfH|7a8F+V1L^rdM%K zB3qUK3JF>RF6+PgG=8tT;8y3;+NTpe`j-2>d*FireZel&hX`Ea`nl=JAHsvUG`)8| ze{g&$OcNE+l2nxp+}+eH^W|c_Q28(3IR*lKYi0IO4xHzO?QqY}L&*8Vql=3}^bLcf z0Q&Ru6Z(e(9{BRndTv}kS&W<=cOref>yu$-Hxq$&q{$t;1Xox2 zn`e}Wgd6dskNka9c!&Qo&-=nmL4_d_$lrcnQIMf&Othk2zeD3izx-lq=_9)a4T#H- z&AI&|thm`1*Mi(BLRdk&{?wOP=j1ZE!o@nhxnLimH1cer&Mk zs0iA0w^xZWB@2mR;O_vhZ=>!C}4sL;U=)nj2o5AdEE``j;jE^Zk6k%rrkH);7kjj@uuaB(0u>emHuX#)r0DGL6 zSP*Aa1pco#*V7iSp2_#fJk~JYc3QIZ(^=t@(|5gC!a#^OlRc^H%IOPBat{YWNlQ-h z#oC4_E!z@6vjy-AHD~CDo`)_5^9RLI8cVCKp1HoZbid^>HaypBIV&-R#j@?z|8I0- zg15Dq)|tZs9?Q}9y?98o7?tEA@w zwhGhwHTb{^@t99JfZAk&wn|+-DHlA+K_kZiS48m^Zy0%jpEWc>fyjh=j;^qHVnuPe zJrBbrb;>^4SJjnrKf!U|{%^sgyFXv_Boqt2N_C!N>8jYTgr4+3U{DHdME3~P>c+CS zOs*ENTf|Bptny32sG!rWhSO>vX@S)xIzfOuz;yH_c2dsB1 z{NvM`BxCvlFfm*Z#&h*xoad3X$F6B(#qz;= znaYWKjwgE6T?u4yK3EGEw?3{>A!1m+RR&#bWa^#rX?zsc>N{=-;pw9 zI-Kl$se;;B<<%y|kf+D}5ioZ>_|#y~6S1Ldt8cvEh7Qni9@Q7!N~Xi|sm>a3AxD!2 zZpW}M-c;Hhh9Bf&%<%x#;1lZ?sKfJcmS!6EW|NPFyRlXGl-Rk)Z ze8<$x_dlYD(X9OK@um}1j_H-B!MTSJYQ4(^k4gD|^q+~s-yw>M&kszS{BNoOobLdd zM!55g59(q~Jyk+yy9e>lZ*8An#+vP8x!IfZ`;&3LFlN1xnbzmaAbdF= zY9}cpvsNx zqTF}jCw{X2)VPMrx%f`NL~91VR_KzCG$LCimw9p@55ks$leg(@Y)Bqky7O>MBrfT{ z#=O!xtvqnQHYnjBVGL0YHmF;UZ$1KJGQ<{BVQW9cx!n>`m-3e~v7)cA_yyzLCT2JG zVs8SJke(X9gN34Di!%5l)5@4AnX#q6rWW|TgA0*lU>f%Sb^x2*n{}b$iddnD9=1SI$)4NNawEW+IT7iB z95KKo6AmMt*?2L|8f9LwxNEmy%H5gZ(@;qc{)p{VheATDN?WyVwe5Fe$}u5Ai%}_5 z!v-c!0u*i3s+y^i8=RU{%-;(`rdsF@EmTc{mRj4GJr9rrsaHkL0Y)X^JD$iZl8m?= z_N1r!z_gv(J`rzim&7U}?&Fk3`%2pGKKuJp|1#_^uLNZWZsP4fsVZWU+sY1ozU&9! zA`i()TNP$hVZ!}cwdF=k;o>4ay?p4a48qhls54AdJR2%0ME4n|riox(vec0Dcs7jO zbdVbOPtDQ*=i1t?)MonNd`fyoB%d(1_;6U4i%jhk&N))xvpye=&Zhv)_x^D+5G}n_ zmgq20kjQEqZ+!%=Kx%Go(^=#nZ9V_q-xW#>=#5=1n6~+VO?J7UrybX{; zQ$aGRl60t>8NN&2PJuLDByWGhmWrxalQuMzJN?OT`v=`JxRhZV(-C>xlJC7;m3ruSIUVLQ$>c@%@mJzGlhI!y^8jKoYFNrx}RNC ztvdZ-XK@*_(8o-ZzG)msFa0O2#~>1XP%&q|8O^UqC)m+w?WIl+Dkx1UUqN>}>B^za z1i=(y`Bn7S$cAi8s!mGgT7H^xA`gaVg(a-lFn)cmgtYougvR{P*n1X$ETvxup`Qr^ zQDsDEX$a8+4J>UKkaB5_m8p9iIEe)nN|g6u_@MT)*J0lbd`$_qDLwWiUk>g+#a^t zTKH>fUI(d^sK)#2ba(paVwY}Tt5MX@NMi;?{=8cYsr5mm$5X1gx@RlrN^Rp?IqV}m z+ZTPZ$T~D14;2YT3;Q!&uSTT!xdB7M$?!0UqqLgA^f#BXs6s%i)cCdtGwymKtQ^Wq zPsqD6c|Ad{#h?5no@ZN=6pe#d>D=}#yOpTMyk{}s3-&B)sH7*hIDtA8W0A(qE_)Ar zz|U_=nbZ5_Ji3{#-sWun?T-dV%9ad^foT1eV^Wz+;7fR`vZly=?7D_PYp-Z`jM2Tt z*Gjfl6wwZRUmR8L%c2Vm<9I524`Ksd{+3ZuZWgm`Z}mrY?tDrhqhjwsL!F>Q_lES` z>QNt6LZjAdN%4KzvBB49h*qR|DANa|yuOf3yw+<5Ti+z>U zS`%*HnI(G-B6*89+GJdHau*?+h7%-zS+$JV_L@a_=~?p~Tx!HX9=O<{e^BAAPq-O= z0Or9H5gYwGtft#M6T7N~MZ@H-+|$F+ow*BRc{++WkGio#)gC7&aEKP=M4}e$_v08Q z#X&q_%-wXQJ6b?6?IlO+L--TWU-J=5ri&`L6e`-gAz9@cfx8ZOFZ=lT7V%8PnmMmo zd@eGU8$!ynMg~P1uCz@~x>ULm+}3dl?SuD(*dP>G_%%2SW=7E+ZjlIw^tM@g`cB-8 z-nlvC%kedZJT5{7saWOCQXqUaP7U|f`MYWkF=>3<;l$^ydgMu%!%I#{kzTG%VS|9l z1-rDX%S{TZ#ZkN8?T7cCVayW_UImB%vD<)wTSjGkzQplZ|Pp7Ja z($uOaLG@G*L8(eOPv0z`pBm#YuY8SYwfM428xL@dBwX3p5Fgmxd*R0L2akNDBxydC z$`8x^?4Kt(-xZLlhK!mDxUt@k9eHz9(19aWCkr`@l$Lp!%Wl)X%l>gHdS||!sZS@L zpN?%_H_L{%g#gt<`Qch;1xUumrFY?#UN&h_H*yJFR#$vRqwN!U#b~? zmHX5Z6Rhn*5kH=llcFi4Nz!goU6R~f=h|_9(bHus{6}Iules%}eYVZi>C>4W3L5F` zJoGN&3AYj`j5}Y#5xIa8TEHE-<_mmFhx|;dKTOtw9(jwsqJn0)lMn}uh5>ay=GZ75l( zuNF^5WO(z35B7!7ox^AHqb&S{c6!FMhZYCOQ>9pp{TLk_YD?$~nCD&Z?B(NvM(Xm4 zPtU-1q#;CV>~+U>-!ybBjXgW2g4OYl9a@SpI6gL5?7Atin}s?pcxD|Es`SyMw@9^@ zL68V1p)cc$&!xv`?1XlGdDWEohv}q|UyJP`Ez-Mir)FM!hMA84o;`|U>+NQwE|f*F zs@h2WV*5O0YkI znlqKCrs>zX1ipH({j_1H;1h?n!jqES7Y*hJuvNco8Q@`WjSi|OP`9Z|*^Z?&4&QFX zGync9S7wFwJfC)y0!&k6IyX{7a75BgX4b!kKia3EyIz~H)y*Nde6AZ8(24V$Q+p2| zL(`9gcHHIDAnzA~R{oAE@kL35uUdPy6 zvlrlAc(O0hX!Spv(^338b<2yIByIFkNz0ND#~3J{JBzUfoYtOY5eleDXN(CE3}$lq zIuxp3&~3nkXACx(1A~G4z}tqt-my6z4bS^>Nl7-~RqG{j&cIFF;IB;gZ^0huB^D@F zM2wx01na{|yX)V({3?9zhy#*LI6+o5rojL-3%S%X48cfGX-Yf!vQ73t*CmDt1-6P;sZ%>J+f$RJ~nMI#92%@BCEFk}U5_RCcP>DWV5 z*3DgIw$&v&8ODjvWswMvIchN}z(>WfQ$v!INpttAZox{Wc}F5Mw{Q3NKl<{65}2Sa z23oZZxGU|ms4CPwd%+u_prpwx|j+KXdwCB$mSJX+3 z6a)&et7_6-|C?e3YGf`HAat>Z{)z-C)DB|P&cn9~OLSfobFnv(9lotZo64bJTXE|U zx2f%JqpoNLoTZO5NNW|}a+UN}TsD3s)J8-YQG;^aE)yIXK@{^|>&TcY6>qYkgcYjQ zIelxrLF0ef|DIgNM#Vt`gGsY8JBb5&m|(z`!_%YYSh8fv>ZiUi2=o1g zyzX-$;=bo5f$3DaGjs^-@)NiA!7(yF`TZwF(bRKQyT1wz@4*mZG*(Suo2uwUeLmXFj3YyDgywAWo`Y2~Rx4jT_Avqqz0r8T&2YY|e}l}{ zjT|y2{n=(cvcM*TL7W{_a!$V&s1z~a%>O`Uc109_XJCX%UR7OK)jqf*UtjcU^NN zfMx{DAZI9|X(eGNj_PcU!q(+jR#*azyF+4Ls8muOwi`iI$$a^G^e59;H0ZDwrr;*b zqTbVABUEMO#^oJSXcIx*kc$*GKS){bLier%w=(?;K_lS_Tp{VKqXIH1{U-a>%is8X z9@8(_+TiPwvkA#kCO-8&Jo9IKF7~^X5pImqtSooQK`SZQs{dRn(}P#UYBZZ~nWC4} zuv`x{=Q42oJj(NV2*Z24q;~hYZC_K#7pkJh9CuHL!)Q&T?LGH(QPvSXN!ttHL zSMrw0C93YjU!6+Aig0UoA-qN{nepjNIzE72zcmx1cNuH628)T zWfRAV1?_cYy_|Mb*)vB#E`;PBNMVP9^#i!WbS0P=yR#jy#UWkE$~^EWMhWg`a@EGG z3B0HXYp@5;gt|A;Lu+OL*5Q`AJ?pR3Ad-y|ZS8JzPbMK_7yIB@%p2cJRcujdqHSI1 zDyAZwFSe-5NLo|nD)Y~k=HzfeW-_=6X`(6ZYkV)VTOdcKOzX$T;jlm)v~gVhJZf0w zpx2_?({5(0i)oKxGmPt1CmPC^QT$9PxOzuhVKrY>bRVYY*(=&HS4Tn}7M9{!4`zqm z`3r^YLW_AtkIXcB3|P=+&%vQiO^x;5w;LX`?rBp0o{Z86J-q_68Etjt;@PkM&kJ$gtE z(Jck*Ad5v%uJ{ews5rOncq>&pL4Vat!7}_rEOvwKoDAP1D5Kdna{+2LGw8VTND?<*h2daGvkh$E0pIv} z4YU2|dX3J9qGXQLn(kgX{7htngKd3RX>I*R&eLNj1#mZHAeN8AGk_!eGP+7kG$T;x zA3fLn(>10UDPY}PHEb_9F%F_>Q52hWjcM@hiMj5ygWbP-4lLBwFn*P_wCF$4lY|O) z!Yhs8rM+b=Ud}ePb)f)#w4*}p7`6k$)+&~ye^Tp+gn$^<7_aR`1$X5QYzncmPC^$u;n2%OjclXf! z12e$jBf9LGZPMLLQO`G(5(y|$ zwoi9v7IMzy=bz7g!Tck$#59?}9KatlaI_7ZxIl9jM{I~oFg*#Use(9x>)xU)X0`UG z*Ryp4XZ$nJU6A~K%sNI3J*M-l!c_DmK=1@8saKT4b2JEDlCanr0 z<+xRF@>C?$!S7}ui@vOEqE=uZ4QsM^PrrP@^wivLMvnngtk1$F5I63XNI z5Tds?QEW@Nl;h+H4}3)92BjKmgOk2nd`f;Aa2hblf5d{yQ+%EI(F?$1WLWvXBKd6e z|A{&OKaqSPIRRls>HkXdC7cbc|L^KnZ2yhqa}Y2v{3fnASeX95qI?>L-;R}%vx$u= z0R!`Iq)A=;KX^RBe}VZzzX)H3PKi$WKd`;YFQorJ5WW2`oOk{&2>!qE_Wv`2XJhzJ zx8r{zcn0QQf#83Hp?+Id+po$(Npht*?j!zJ;m~GyD9lx^Dok} zzEnOn#^Ln%*grxL`DVA4NBe~a0E$LSAR8V4KYm?k6irPVFE_GXzd1h$3W(W(Ej*aS z7WE1<1DJOrxzEQG#eIg_6pR02@fyMWb=^>$zkXXYo2j0}zM7<(uv zC?IN|?=gVl0Ndvl0)VZ&5VBdw%X_s_KEgwP0)j)ixn;k#$_@2V^^MM-C0hUf>8&l1 z@SLsTe?YI`Mox_ez<^t8zo?KBxFHpY>j$+D_NX>PVnfJZ)i3kj;Af_tBd|}Gp!X-x z=2BqUuhsZ!Z=eRa!R-lvQv65nfDd83mq9C^%RenBN+>=E8o(J8pu75V^+&Se>Hz37 z>+lo01waG*wcTF_fE7*FwhzDydp8d~GA}EH3}F}U4gl=+t9R&Uv%uaF=`q!VoFjTc;7fl--j55-yf)Z#~(9c7wC^4EyR)D98`W*eg9oPs2`?! zKeQXj;I=OXLjOIxeny~gGh&sx&TdqMzFWHl45wSi&$*F2^phXT+@JoRTBP?GoCZ8u zS-+Q=+qi##ew=Q=A9i(R--1~@UvTTx>JZCPLH3(eEgL7 zlE0BBzL-W&bZf1qEZTJHV%zoSoXfZq>3X1Zg(@_+*P?ebB_@Bgfx z`=kpQsjv8SgG8WTT%)`IjkTX%+khVn$mKBg(n$8GC{$Wc=wFuDXDH@ z%|=Sf7+Q(=-vy3d!@j_4FCj>bRz+HESK?ALLhbW~W><`Hfm%Wk(nddvJFy1~o90tK zw@mWRQehRgWN+>*IvZvA>ER>`pTKH{#|t^wb=46wl<%USXIvh6HeIOxe!0IgqKKg_ z-sv^X;}7}9G124~B9@l;qa`*-K%5PCtm5k1YaJq;_|@~Mc*)MLs z_6jl`%*YV~cAmgqM>4z&qU~r@PhjHG$^k7;TM#@hC|@|@)+31{)<<5>#!#1$aae(O z?Yn8Y{VauI3mfgJazmh(WdG^}i&vn|QDOybuuRRPokV5UP^r1WXHhbbm?}gPrd_Tx z=}5Q-{G?}j(4!T=$Ns>^oe%1CIXwBFQGWLIfy2;Lp4In<05#K-&>Ri=8@?r_X z{iTqV$Vbp?cIBg@1u`#OVW=+wB8N$2Bqo~G=s%_Rs|cMLn;Q26E!zx=Le2uHTB)7* z&xW;wyQ66h=J^m4TpM{R3}W4X#$HjIuc#4|HHkA4(bvD`(dOT?Eu8&#XHR!DTScyb zH*hV)=+hFTOT=eQm}qxme4z#X$qsQy!?1z!()$ebpB_)<}rhz8$%#-@z60{YusR*E)RFTb!^sMAMdO#Z_t@U zT;}PVbuE!+qt$z&ET-o{xco}1r!E~{i2et-dj!JA9M|!cX(iK*Gmy>9JXGEn0IQ*y zhK>CJ%;INSq|}v_)+6&quIME<>1Jj~8`_gbt&LSkAI}a!g&T_wk#}UkHy(5yWF}D) z9tn#_w}9;mI=%K*y3r6G%VDyg8Gj-XqU?y%(?>^g!Z$Zvx-m7 zc7s9BCZz&+)-06ZimmK%D!Ggmdt5$w^l=rjq)1)nwm=@?b}>R~KM&2|2(c&3Df1il zR&52L%pOv{z%in__IvtsetQp(3@XYZ-E0U`^WE!?vh^MzdIU|pazvL48S7HcK{hHT z!Uue-=+PhzP+7#AC(CLQ_THUDw{-0puT$~V%0q2U#07pVG<*MF1t5vH2^dyw2zYb!h1r!G}J(NAzND)!xDPXVH$#CKHUW1D~}yuZu<;* z1uO|v3i+s+6A@jwU27dnRdMr=Zn<>H+dCP}IYKL=tyUHuc1onvqex#?7ejUG=a#JY z(Z2^j(unTiHOIY%gAS$^TX}xhC+Y~$7L7xTS|x}5J2u=UAd~VqLmFagkkz>Ey@z&HAm0-bQANKZV zyE_d+;V~FGAZ0?HTvhvCN>;uZ%muJ%Y?`*K$PYnW0S3r4eF~v_<bmz&q+Rn!$Y|^6}2>S`)IkGFLCuY$p~Z2>#%7w zN)KW;kym@!h6#Xpmcw(@Smf-z?PpR zo4sO}PLj|w6lt&!oE;cMcm_D)^(J$i;?z!>w4=>FEBtpy)v5&bQ%pK1m)FW8@{t(m zW3uEfsv@UHy5gQ-bj&SjZ60Nfm1J^$&@5~fL1fy~{Nlf9U<|h4nY8)c#t{gsz1K$z zmBTQp*!2)JL-xK2ntBYNCE3XIqeniqjvIva?t#(DQCZYS#mqA5M27sW!}l7twb`)W zBnY7PH)OFqis9W3pV#QT!=Q;S<`lP1>a2JY#kOzq`JuA>rUTM)lUL)T zuGkh)GyH{Nhpx1cG6C=edN=emipxQS4B(k%UL>)Jsg!_%^l-!~l-1F=2?!Q&4NvN! zNeNX?Aw@FUBG{?uwSudG8T39NsEdgHfdtIfcbtW^B~_m_Oa~_PK3QD&%J>p>Y2~6? zCRxd_>^7Hr;JAgvyUKS9*cbtJdjyx~@Q?VX`FJ-)#Vze5zfMIb5gsebgj+=%p^M7v zLx|eHT7?ugK_-hdQ>jLTXnfifXx!IR&PK%P-g4!MSZhB%-b4^(f~wOGbb7xg$@xr4 zP7l_4k)+eT%-C_J{d@86w)oRK=c0pePj6NP;Pj2Pb1hU6#<|fsl!=+;lHK2#SG(wrGVfgkw3hug?OH+J6c||w;Z;1UelcP zrrwz6u_eV3>z;Zn%^TM86dc=#oeK6r%!)10H0B?$t{P8~Y$xlbdw14OX(>&$v{$fU ztXkw$UOun;QVmF2iBC?|5tzoCp_8l1JS-}s08-8mzMD&ol<~jL7Fg`~|iG33vF2pK0Jbt)?6@6qaojk)IAaALbNdCBKTqQz~3YbGzwjVU4u9A;}FoMZt zjCF^F5tzWy3_R`P>^|=LyXA8-2(hKND+?`3XV_{ ztQrmW|2o$PqSF4m_+Gcn%W8Q*Z%{@ObEX#)N|X7O$j2?h@rFRy`Ow{Fo~*;S&n#$y z$lC$+{&_`B=P$6pmSyyl!cqi4p#GK;X}?rjyz?ZH49+*a8W+2J_jB@cYX7|;$^z&F z_-i_**5whD5Ip9>TTyjGy+v?nVUhS;LX3GxMV@=#?Y{Dr7N89a3< z6!4q>nL+mZJyR7on6NoIfd2zm|%ewKQ%vA%5KY_JX7?W=vVY?*+d& z3Z`V&)$t;k{<<#rHJsWZP?wBvj|V0~C+zH1QM|vXO~7uI8zn+~j-cksUjLEMbVi)% z=#GxBt-q(n?PKdRf~)Ww*_s$q?#6aIHg54UQHzsQ!Ar(#PdzBRTb1fKw^CTBgXZnXE;yk?eUiAB zN#A34K(!=J$cPQ$QwBdaig1*yCMMQ+XmsK>X(sU^tEhI?J~B?}2Jm9;RfVkF#Bxwp z#Xe*gW29~;=|-4LRa5VrOs)qEwCHv_2ZI~u8qCC*k=4w5c1>r5`iO@3gSx!%#|)1z za~Ab>#ww}FcLdz06YUqaha7sC29#nJ7try-(*rjE8+5tOh)ot;j_m7t&?K%=bRJ;x zk3Ryki(wU}7n-s^2V?I`XDqM$G1abdPwNe$(s@xXAj3?Br60`@H)~sct>v&C_5*ZWBfFdB5n0yYoA8TeTjH}D%alMlNI&<~x z8B{k30;4+@(-uHi#Pp6M6>A>3em@@QwEW3-;FSYd8GbCXnz#}Q=W4GT7%xmEue}Ek zjjuMD^1{E-ZMRvSPh%- zto{+I*UZNC8qPpZIJsmh&_*9w1NXmp1K5cgdkN?A4azwaiL5Kg;}K#H1jQOIa2}K_ zHH8ErnsW+*b#qx=&$e_3S`ulDNf?~rh8ggu;7N8@mgxWX!xux$gN`q*a+w;n#aiE< z3oqS8VR~zU8z;KhEcmIv;EsGumURfyYeo5<#HA+@=%Jm&7I7dJbe3V_gb7$x-!h}v z8V4O=3gCb(ASJQcpas~iZP;&)O^FK4K{zyvYt(84pDsC6xBlAhR=Sl9W@#xTTsCO? ziGNs}_(G*kHnLO3wNE3rY;o-DG&6cXTuX(^=zN{(SJ}JofTq$3B5~NxZih%-|FFxa zGscTnFMI1HvLqFmbHVn^)TK@6>7j>^4aLGz^HB^}`i|4w0GG!$Fo$XmL+pb8CkHxS zd^0}q4(C)NiEt0cOB$-OEjLyqxvOfH$SBLVCPy=Uqgks>+222j`GN>zwY|45Zx$xn zg>aAdj~M?OeP1l9YCEuflQ7jd2+^%%<9&;fH8Y;Es!ep%Jwc^7;neB5V&Q3(7rFBx zZ~(KbMHJ4x=Im5PVi=f2QZQV~)A4rwK%|Hc;S$cTCq|3iRsebDe%qFop#P&`QJ3+l zAub@1tdhC@8NKskzp5uKj8PJUJLA~0F5dR1PHQZ7MvxFVGlQ|N>%2HME0k(eEQ?1O zO?3FT%=9X4EJ?qnUb0S+V1D1?jG(Ya^CeC;lwNTb`@=hRerV9Jf9>1>MAdrvVwfDE zJ<9qUcxVE|I~4a2FBe)AmZE-nqPPdjn@A2gcx2Lt3c5z+x6~jc`H7PhKq&2n<~%w{ zSNs}WbnOeNp=s6lz9s+JrjqqwP|Z_Wox2UeIj}c_{*(--6+0~({ooj4l4rwKR5tB5 z47=TFL3C{N0g>Xwnb$vXuni4{Y5!59PAD58Nkn6EX1gx|?`LnUe(}D@%kmDk=^0W9 z`&u2oawA}2RF1WMimE%oNul^W9DQ#r|?qu&gFcj5o7MHA3T?R-~ z#w{f~ULe-+R(1*PW^ZCpDH9HcM)a5$HBkTcutbpO>oopKoe&5mLd!E(8bg`G%nq}V z%_hqN2zwlBOSd|cL5hG9&vjbs3iO(wh=BBvJ9*Y0`pN4j;o|ASgV5**gvRVE4C6}5 z5VHBKs$0`PVQ4PSn)9Yd^Q^9Nhgv+yv!kQl>;qJo2|tdb_U%Pw5!EThdoK}7xo#p6 zY4$OvB|I^bT(!`XSN2Ene-CN-YN5taKTkI^YlB-3h%O|BWT4eQ%qwWN=dBGlQC4D1 zQ)K;2B0DwrpWBYVRY6oZA$8}mE8@?Lad?$ALsP`HwiwT2NlEv+i1)F-uWKh=(klha z++O>&dMJq1v-?)-yq=uensVg>+-Z9(-$jkt+4@6Zkh^lCQ~zZpV-vZYFCg~_|4gLXV)l0_$wAl#8Re7 zkJ!|=Ui(806$aatMyJp&VLwg1bDWx;Onik{B^Mp#Xy;Vl(B2TJMYQT1pSan?4dzor zXkI4R2CG4JhQ{q7Q&~9Xp3b?;AIYXbrEd?DFMC&IHvWOE(j68}$>P|Ps{;WYC5Psg z-(`IU2oLxIcS@)&mv7)x5Jr`A6L*7ehh|IJ9u> z?@(5Q6a*b?)E0!2Y(r3CwkF8@Xd!z$bu;u@m)DQxE-75yAR9pQSUF}=8hdeY?_Nl- zbU*kM+pyE?=!B*uylcF4jkQ7xP^PHh@^B?oI#rJW@f4=3W@Q(P&4{C{AfkTq2ur$7 z$WwYK$VH!+8Z0b4c0V$Oeoq`f0#W`kq94_KnHP?Q3Qf{_2G~O1$hHozHrB@g8+{mZ z^SqiTuep+&1!txXof&B$f(&K$=dCNu-x5bkAy|ls72|mk1g5-+K*FgmMWrG$DP2Ac zPa{NsjJ1fjGv9X&R`RYri?T-R%{$|o7gqkRw~n+;fNqP5+!k0{ShY;Ty+c}6Ps~_DvQw;wqZLZ!A3C+?rOIx#S{PI*q5|*XL9`wWVU>TT9{U z7x6{I+v&7*-(N^=7njN4JkGmS;b1?Vgdb(z71f@axJ#Mb%@ap16flHBEN+1dIngtJ z`@En6Pta>=OuB8u8OO_P6qw1CeA2AHwkZ3Gr4d{Fqyy4}S?>;gqaTW%69Pg+W-EL6=#`I{TuL_MR5T;EW3)w9J_=M!blF%yb^C+`Kt zv~}1nxdvcFcQOlmPd|ICweGsm3>x-&TO5Qe>~+dv#M1lru!15Yy;lvT>`mm6N22Rpu{|QkwjVh(4v%3@B8>%C8*Y$-XOIa4=E1` z8XMFN%&N4&_S3k*HeVKBeGvRGG7<6FQDH6v--*U~!Z#6XW=}q!uCqFHF>auj$)Ym83=E21YYS4PF8t-+O1C@RjZ5hZ^K-n2Ge0+VSHHS^+>;u4)%t~m>4Vb!hRtM%8MxT;EFoeWM z4)5meEZ9|rElX`mqj9D^vVXW8(#)yQD%$nfa0Cz4l{5HnJJK<-G@y82OcEHYse}u) zz7lLM4LNq_Ix$=)<3149hz~>rZkAcqcgRiYjBS^jW=jdGKU;E*$nc$1ox!PEzH3!2 z+eVpz%}s8RR2!qvi29dgaB`SaWDb-}C9OKYomC6ZP4olTp_E8fHwWo1mv~pGc=skX>EMbHLDxA9G@;j9NC$2vsg!)MI%?k zYIM>8@=z(+Luq7V>Ec+|nE`)gI2vZl4Z*sLrIU%^AX&bp+VJx;tZJD(npT{!|54+# z7=Irb`d4VC7wEO%NFH5BR1#-nk2WUemg)w6P2oQel~%F!rq&_o>}Dti>-OG*Y3Y50 z67LJ$NtM*E|JP| zvqbj1dGNbn(5V)?ZaPc*1u2pHA-^B=YwWVXqNP4j=)+B9=^%Ho0At{gUih_?Zl}tLvVIvO3+sSMu~jyl*M+}v z^B1)qT8Yc%n2{yJh~9F3s-fHB;tA!*D*F#;TJq9|qEr=UZcod;Q!^->t;UF@^2D2% z`%mug^Dv~xKSXn(+SV<$Q27v)g$FMneD}4xqdJ?93EckHQ3g-j97af@rkR&N{Y9RBWExRx&8sMfp%R4-wEW8CVo5mT@$@#>`?%A#1BT zs;vWgt-#gyj5bYKGl&Br6}X92A=VFN4jE`TW2n3rWNeHyYCArZGiy#D6Yqo)_GS?J zrvfR}?{e*ooEcAwGM$W$h>EyHqERq3eI^eo5o?s+dU536q%7N<+Do-7WCU??7Ym~z z|66&w(Mw?%1V6NXs)S#p)LZWJ&6yDNaA8v7xpgRAGr>-=z8;WP7I~F^6*)ZHVL605dki9w!yH0tvshjS0bnFw2@6VJOaDp zl+IwMd=bY2{82m2{_|}OROI=(!&MRqnv4Y7hq#B23VIpDj0$e4A}^@IjcNVJ3VeRp zHBbB(MCB@K)k;L}iw>HT5B9-T&yj*tq;lwa8>4gXV^4`j@)E}~>=EF_$IOE^T?o1m1YLbB1!|y*9ZD>tMsQan zeU+d3$L0(RxT)EO!6>KQ9x(AJgWD9{@Y!7nM$(G|_L`b&=~(GQLlkp1ql@(nmmQO? z;|)GX4r2C{b9~X=O;~O$Ut2iL3}5|f8;`w5EeC=EucCL2UQyqBxG<8WVn42$*kfEs z3Fb7iMDox>h&@%r$&}S}q7ca}-NdNO`*(?IwTXhp7F z4WH3{jg}R;qKejReurM)+sd~<%I)~Q$ug-}mD>)#g7#z{QDSbb<3&L{!J%fNM#%cs z?&@}(ULZe~#aY^7D$5=k=u--to*EUh`mppxq2 zUj=HWhNOhJ;a)wKVmK*HoxQQh(3AC61;RMS;XSXfC0;FO?TE)gNT|b6@u$W<>ibyd zl*?Ypxmb*!TGkbYFbBKaREU(hL{wf){q}nX z+*D2E@e@o{@ZdZ{;Ios1qvkdqi)bqRM^=DQvRCNa_-gji{){fR+VseMwDl=v6*HW% zsUw^H4B}6;+k@0twB?G}{H`9C6|px|vW2Qeb@v7{0AX}@Q;ZEPh<;P2+gsw<=I`*W z=v6DJ15GVYNWnX#mLPrfytT#8_+9Pxsv+~d7J>Sfz`Z@34mk?z1S$_gW(R5E5*6p> z(hcWfkQ<46s-?g{@QNh7MSHxaA$NYxq(wmKnn3#DNOX4VBdN->OLmu#jb-yb#H~kB z;|Mv=uP*1T5af_A`Z&OL=5Ru1WmQV$SU#R#Plreo5isykoshCT%*JC-Q-@K5gY4C`{oOJ_aK_uF>R#m^hDpX z&cZ^%>tvd=m4;Q$C*=}x%Gs?*w0rr<*c{CWHEn;szZcA9K~~~Yn@vr6G(?EdGVz-k znq@9I3%AF2)WtZl%ODcxaZT^jTVAE&vQNRGIB+*0Z-9l6V3Cv6{K~s=8z^X0UH72+ zr(;CP}R1>U}sm^82|#)`4-%N|%Y`sFD6QDpEbh^e)`Y zY4ceo=Xp26&U^~FLL-HZVpo1_{v4pJ|G8Pu)rx8GXtUjn^N3Qr4yyW;z+i35*DGJSW;_f#J3ehl@X1GYmIfJUH zk4jpM+CxAVFS{Nw%9VLzt^S}^#-+0NA|7=>e=LN`%O~;tOASNAjtufk#OZ3YCNn+4 zt?LJaDn_LqRrr?RIVVfdn}0{8f3uvcO8e~QaIEcUt=7~nAlKxI-IX$kgTd9f=B`hi zkHeNlK*N>`FIJtg|A}fsnQF^&-#c8I&rUEXoybi;0Thk6s@wvA!x|ao7e0MpxWiJ( zJRMaIhS2sbFrq?ahoQl2^wYTa_~#mMaZKH+f%i#YND0;QnU&W=TIScB zVxxQTb6-8S+1u_~Vz|zfM^(aWrXRm@lD8a4_a=qc=KDN|N|)tXB!pQ4emz@ppmL~Y zRUTHs-*yq$k7+8~s;ucW8_%>}gfRQjey==?)}j2xI!?c{0VHtNzXF0?wB|(;kSV(I*JupI%^mS`lGn`!1VA|=D(u7@oWfA;v9U9r&b}S(iWlRXXXc% zCv`O+$$E~3U!%;Za$@5(Z{vZ+$X>`*X|>c0ma}15_9IFW7boixwpx!)9s2Xg#(RA^ zA>efm)xlKh;unfIhTCL+SSK%oCnh=rNI%KLLlj?mR>zn=d4iS{>qK*-haxw-<>vWk z;Su5#f3~$0=A_KMVUT>vtGoy@+Ik4&-lkNVNl$=mTy<9Kk<53Ijn(Y93M9`Kg=1<% zh(1MGK>Frkx9{uk3Q9%IvaYZ}kKjmsDp&mFXe^sY)YH zu#~Br4ydGIFu$mxBDd3=e*c2Qik2p)LmaitHT@%c&6tXDcB@$gHglp72Sm3Z(o zZ-xDbM-;j@-au>!lTP!_5c3dL%DMwtx9gn z7nK_8c0<2CQcao&D)z?w@?I1E@`U*sDIgk9Gs={zn>?A4sfH*slTGqpj)Rhv%2{o! zH?0P0GPknLzNYZLN+#Lu{$j29uw4M?t`z&&o=&XTciGvIW0BT)1p9FZ%@6+Jn}jRX zRxB^D-JK1MkDc24C^YH2TNPHQqoG!vq@yIOc)~d7smvA5C<%K)(?~9+csRc(7c5&k z2LMdWMaup_Lg0(+dp|fCt+PB)Xn6ivcY2bfDvpj=AD%_TDojVW$)-ri5tpESG#UD^ zwlVz3(kEbqK?T6lI)-co_XVkAISklH$t15{#PxrCji zzL@istk#1#3{LHn5>T>HfK85L$SG36J1^YRi+=UC3E-CHpiUgfdlf14$^EjH7!apY zl5$rYEs0)O3GXB8u0?+E0Xj#R68K-n_Zj|6Uj6?ozOSSq!Y?WJU*r1<#->jHZ_#}w z0vZN3=Kl~=)BjJ={r?E#{}(a!f872TF*PF$-G2}P=7#+LA#f)6``?56Z2vX4&+zY8 z|2r?W1l|A6Os!6*@h{=8Z*6C6@1SpEM5pgaXFz9QuWx80lO&~CJqK? z2@)UtrP&_D5{rw1{sPEaD@Fe#9uOVaEN(!y4kVld&{x42ECoDp+CcBL48w6P1`eJk zt8Y0wSnm|{?mp^1D$@Ru=bFR)=f*4+A=s?1FJ4v`Fg5`u)IN~2d!A7y%@!`d%wKC( z3=GJ>qY|)SPR;>p{<#7`7b!45?2LTtYeTRg&2>S*m`+XG^mVnh-;jIAsHk9Su3s6z zqrSO%IApyWDN&rGeQQTGR&;+3`DF-3CHGW()-2RACN%u?eVX9)8iV?@0@>KKDyR7A zFgX{~x1hle^xP>_md7O4*Y0Y7JN^ zLoITYr}U9($$DcGvJw(td*4=GdN>bKCYtP>?Qh>>+S1#IpnCsQ(a_Z7joizA{nQjC zCO$~2vCw)01L3p)(fLMP6v^@v%=m~d{e}FIRnGhYs5sU;LqL6Ne@-lZZ~1aUfq2Q2 z_}=Lfnt*)nh*?bkttEl#eZ}v?1c0#XHs06UeHFxhBmTtLzu(~6+aMtPqyr!9Oo8gO zhkz&n`8?g+-V1%F1FzoyoETq2Ip4lR_WZDTLcVLh|Das=ob?n)a;&lW0$FKo`UL2e z;;y0?6#)mUuYXs?_W-oXDtx$wV}lt{KUWOB0l@ZO7$t_V&5bS~{CRW=pBUiw_3t%> z^)kuRDtcr%zATr*k;h0CKj7c_G+P9*DePYt#X6opUd<3aiBKSJ{?zp7Cz&)sf|uw2 z9_=iN$GBI$qwXGW&vbY@o6#y5gp`B>5hV#y zqK;l_F%m5dMTf|shD7B;i8+maDDz1Jox+FN0K;p7$(Vxi*)4QeOEq=^ir!VSbfnzj zHF(FL9KQFL)aP9Kuwyd_2{Gb ze{19!Kn66(n2cV;;mdXciBVkv-uL(kHb#`BbgXOld}&=@??m;kT3wV z%^#&l6AFSX8J1_)s)l@e>tQ}V$paDTVeat1cxMz2NMN_YF|*ylENZ%$tAe8R^beGS z@m`w=?2JMP+Xyms63B@(?k5f-v+Wh>>E)qnQ&YsGtJ(Edsfgxz;rwg4#q^@TMfRQd zCLLmf-IzRF^sYpMvLBQs0c=R6tx5iC!F!r!1gv)&$+I?t%cw>8-?l-Z2?kk;ql{wB z{_@{_=cP0=?%9q2CnZWt*F?%#h}aAhc8(IFOc<77YIv+d(fm0JfsfdCd-i$bz_yP_ zx7z0B3$;X|OhE6+yHx_6I`Zs?ii1ae`8v!p^*~C$_L8oRi+XCN2#xEq;CN=PF6CId z(1!V3Hz|Bi0^xrIyHyTo@FudHr$w+yL7WF;N8C9h`T-Q23rWLJCW4R%D|JQ>Sm%LP z;1UbDWDaZ6w+gh4{Y9FiB_^wah@WF!lrx6bv`lkI!zpL(fH?$&cjcZS82tn5&p zU+7o5amhF1J*Y&nF2;Tk%U5M(7NG#4W#!7tFpxPu$Cu+zkMPH}P&Iap%uVhglkty97GN20}=wxpnZ{YxS}> zr1qlwJ(`aiYH;>DwR)S+JYSZ#l2?!V5D>;N3-DgL#1O@MP`r|y0T}&hmY(M|*sm&& zfb%%5AHAr?KNi%{IcD|(&;OpRThYOvLm@d&Abo;ZZX60;X z;HN6dc>z;$KpQp1h+d;KmW$|~haI^(2ld;}4+`fIO`;-zEw=eC-Ff16z$-FJ*va%u zUb}Af@|BUZ!cqe@{n;KDH9qq+*x$E;?ke z>gmm_Ey};+w-NC+u)fCHmrNxRv$Cx6_t-ZLWKD;?_H>Ne*V}5Iy|%U^Pv>S-nY31W zkZw`(DEoIWABfu6#MCbjUbv)#d1!g*h{)FFM@p1y8?DxF&G(bqI}4sK@lZA?Yn-=m z^Xox@8J}ZK_$9VlZioD!(^H!(ovGKg1fh>hg;?LXDO*aHvz9!z;dSMsHoA;=l=D*$ zo2{MwDSp^FoaptwA?jYvd~XOg5Vxy{Yc7j(>Vh zl7QPPeur7C1Bp#pL>oA75AWJcD86KpitvzRmUC^$7KGvaV4`_4}&tFm@DR?W<)uK%7 z+>IK(ASCeP0d@gdx`Cm>|h62IW#k87xSRsQm=VE#24@A=`JdA$&KOVddtY$!<&-?;a`oYY>Mf zDZ?AKZcL<`s|Hhcm7VG`>WW6NuuHKJh+XVN9bDSKcu;!JT)s4|cgWTMoR1m{!?ijk z&LI%7JdjGwv=~u~09rW2Uu_|V(|!jGsw9jxhPdssN}a1?tjML3f@z05GP-vKw9F%S zAAyCYd?-V`uZR4E4H_WzWYxpJpdnK?ZN-Eiq(-eOzLy?t6j-poIo4E@U;looa-{jj z6IJk_*n$zDhIRpq0=Yv=p233zjyHAT!KcP0t8ouEE-zfE)K^ZB8~t=)TYII; z`OH8I6J<}@$a(&o@lf*mls*;?w`@ZfnrjGum-N8KkNG@rwZ{t*xR`KCJaR&2u59oO zoP0K}E;(@bUUeXn^nK1+oYF9KfzI6dajU*|vRY#~^t*NUMD#_fUjgh6%zFb5NiQkf zbK;PjJ@$Os{I=>X7;-2kW7}U)E;u>Oa|~!(H5)HN6ME!&INp6Du~h!3tSh`pY%@B% z4k&cP=z|W5?W5T|?5{X}axq+#U;2Gw7zp3Rx08_Kr1~#k-L`$kaRb%&!T_5=4s@|i zqUS?~;)+~x7u%0c_C1fg+&M|02r;_ zVVyF1wu(ns*Pl6epUXiw`VWBCeY}*O@cXSiMEvmBd3SoJKxQ|&iH25VOF!Eo16)oP zLDzE&`X`SHVK3?&tYG0fGQF~&fcSiylb=ihik{DSs+NmQSZeg>XcGP4zq39-?1$8s zwfw!Q_Sh0C3Tk}`*5g|&{t>At)^kt_#=jRA_AU(TkyLe5Qe%#hU9E^HU4z-e8Vm8> zL4c>?KB4wSY?->A;DTV3ProC`r8TeVvESH0^EbZ~5usK5U0V7%=L+l@Z(61w2kkt| z$Vd$*0h2nGSrhLxY%+)$L)ZN|RxEwbD`keTNn7CAE+2`l^F}J}IhCXd#{~Ia1wu6galrm0e_IH4#X;VTZ38 zp(#W>&RM)EXBIU!W)*H%U=QJfJhB4bUyh?v$A_*XQfkZ!?r%{IoZ}*F$t6)ZQ;9t- z2>Ny>wkEZ<@E2v_W6r6CGsv=QJ#FP>aVv7KiA55wG1f!jb=&IZ6I1BOg?w)fOzp8= zgUC%_hqSu*&@^a<=U@Bp-w5IyrxaWX)~t%aUihi9Q#DBC_WX zwMg`T^5aD$RGIhM7q9u`*Tn-JC*A4QpZoBHbEfz#l5)$Z{N)X~%HQZq60VUiHfSE7 zZ|YMZbKdw!J@84fn#bk#Jmb95<%`>`4ROr3@dj^c$#Dd0LY6JsIsgUNT}kYRtAxwN zbU9ehS~~(Iu%I_e60QSgOJMXcIkaJZts?2k8 zxP0D2M@R^fscN;cMav|$K)})Sq;3pwNKuTqmI+esq{nq;#kf-)4?iz29etE7LVGhi zNgLMH4=e%J+=b?xj-B&*tt`fv87#79+^f6u`VPAc#?3~2P>yG1igzL>wQ1uCG` zv>V4s$rpaE3ut*S_at)oiTOF$KtVk)A*#}qTX-|ZvLjYAtIzbCvBfabf>^5~OBlLg zglN*UExr{(3A17>QXk>sv+bbZuv&_-9XHzVWvr!Xac|~qa*8JCmF{m~7p<@!;qkGb zfnZeG!lJl$Skt*^Ya(ehs7A_AvM$F<@|-|)!Q=R5T6NYC6TvFfhvr1=IaT&btJvN4 z`JfB)+Aq9=(G1Y(RORk7x)-D*6|@HZ#A_Bo0hqE>ZXNQB6VC@2c(sMcG$Ii zh(cCs#ft50ja@P99JpPY69FTTJb6!U*KST%gRD6+&k|L1Ms$>Ox$-Mbc?~E3#mEse z)4=qt6Av%7g)Udw&l-(88_h}%($m?;YN=f}d!IZB zI6~f_t9r97elJ0Gwdze$LqN$3xG?XpU0k>-dR*j^g2oY6>*0LLHj6n8oKjg$sg4?F zg3{}eEt@D`*@@E>eF!Y7CEEGbvdYVF5+>o$evg$}L~fNrq$I@^jbD$_xQ zl{oVX2}!UB3&}OqcNdq6X+`QqKSh|4_dI;w1?MM46Zf=pq}lX|+;4`O9_`ZH$P0i#VTD@piH-!$u!NxQn|--Q;!QwPq>?u(VAyiy{#-H_SojbCn=Kx= zV>4FbOzEn=L%QV_dDMBv<@04n%R-Rb<6E|gq^=uN+o_)?-Z{z4X(3(W z5~HIOK_*6!g>s6 zKS`ESaT<5Fz3>vTfIxfEz`BEaEv5^zBm&>pQ^NW*WSDg zYGmoLtDq|s9C_fF$T6ehyv966ROzM7Grcxv?F+R%>Z zAvfmFJhCbq51RUKXl`e?3Cpc`62&{M)Qth`7g77SIpKDRWi-kSWL40G1xsdK!kh+b zgkQTwOkRaxVv;>s&8^q#3drddl5U+D>d}U=UJSk=4-EODzk)<_Q&qhS>$vwOJhimb z6`I~C_6!Z8I<~~KxBf~6YL8T+wjW?knLiPQetLb%rE1_mbt<)FzF6LWZRql=Dj+DK zwr&Y#;cGnn=3do0+1Pq0}cfZ0TiHD9Mx?9_oHL+^=nr!b>V( z%g|Bs)S&0%9SBn*AibN>It16ONlZ&rZ&Ina*YXX~@>IhQQ-Q5SjXV zZlPR`1b+a-ov&byv^~af5~Fa%+?lS6Jy2~mF#tneE9y8nYm{zGO-z|1ec^E)lrQ3*{)+ z34~4`mmCgzU`3|ERQ84OpM8+jdxu&g5_PjhW`}ao?}uf1EO=^`wNy=CYnc?W1g^d5 zaQ$o;!>YIhz`3eZpJ*>7 zd$;9*Ilp|@GJG;_adVa%#2#(Rg_ zjTbBP%9Ps&8cJpCiJ$A#-0MWFncVvbp}L|le}VjU@yCU;=Zgv?D=~uovnZKqUy%OQNXkh+(W7h zRvs{|Z?S(`K22zZK+DX!ewh}PE94VyWgj^#EFK=qI8_&SwJ%4b{OWg|L?|#@Xa*ae z&o$A_<4C7!s0Dh&^N78u#pt4vUqm$yWd*&{#5gn8z%1cXy;qBG&~(GBg%*5Ob#0-! zPebGIOnJaYS0dk_@>hiE9N6<+cv$|a_sh>>7^ zis1)Ya?eXyuGRR#HCdI{ZpY)VqRS4`VLA&%p=iSOGdW51IlYNIiV@@-2!g!1?fb+O zZyU*|ooYC@6dcZEQRxS#jk(NOpY-SIde|!6MzLXDoX>B_30f^=yj~sR{s@(WGaZ@? zGdB7nyzGFiByOTgSehlX3jolr6X_f5>sMkw0wf`8!cTcSgVDK@w@O`r7QUoLpKpCW z_OCTtvr&;wy#H+c;@kRN;LiO5sUD(8Gy+5xhu_6ZT0u{{MtSdLRwN&v_tYdZj{v^n zRC$-D+E1@}BeI1f#OpUagtRnSzwG$#b$n7qhzI3j)3Kow-;V&{XB~#`t0pPxJW64N z&@bua7TC}WPRo|HmTD{G1hO|lvgm-=-K?fX8ohQfu7Lh}^(AEy4VB5Y;KTHq$RyGd zU=24Lk3zJ-Y$tGh*E4IJ<(uLYfQshKK~--rW~G&0>s4hyaqbg^J+xNu+f&;|IJ>K^ zzEbSM;6Yr*u89>Cd|&at%GT2R?QtRJvl;q>B9|Cm737;Y11W^Mu3Y3Vvfn`wTmBV- z{4{o#XGjR`+P#cU9@PMl=5%wylKVWW6$HvAc|cYrKuwXm`w~&JhaLBd0KDN$aoPH| zK=;fWM?O=yU~GvwJ`v^!Z3}SiyJGg~Y@um~IMrJboW<3{VoZ{$UYbkP%r$Gsgij^Y z??oIJ|FMp!#*Rzi`b!%$^t4dTe>N}r>v|uQ$@Ut}1bzNwt3U}WF4LKF@NlaCxLq1e{Kl#B8^3(U)Hl{&yn>7~A|rfbiYfwcK4;pK zsW8v5N6|btj{C%)0^oi{*mx|H%W<%xVi>i4Y$sFk50Nu|&3nT}bW44oP7{XZv~jN) z2A&8}1wdHTz)>*bl;Go!#;$7QHDlC>6XoCV3Z|gEEsLeQ4=-1=K*x7ull7v=X`q)3 zKF_-!-uj@6?at`CtmLB)ykTyDb%jZU`<96Yhu`!sQ4ufx>2%gwVQ^w_|3BD!^RSw} z=erplb56f&ma&iA4WQKC?!L~^Se(V$5g$}Exy8B&^%A!SHOlSmnoGNnPIA|#1Y zQNMl9KIfj{o;Tj_&*z`d@A*ES$8*oQx3$;WYp=aud!4=ac@o=8J4m)Tu2;k!Z_mA3 zPu#ti{b`?q{7|cEnGq%l{JR^1m%N?5aHnW7Lv3eY)yroLZt~A*9Phe8DdX@hzXF|Y zUi%HkYL*;7mZNs1ufqP3HyexAco=P4Yko#;_|O{#Ieg=t*KBM%>HOYC{Luxi85?+*+Mex6vf z?8n8bdS2Yz$%TXMT%#29XWt$WIiil0d8H;hU~95#$1Cd|%a*&Zw9rWpD?D9wwxYox zt!2}eVP(BG?!A}tbndS`yj^e4om#k|zG+ZstJ$TG!w0Rn^5N#2p{=9ChZsIGf2cJ0 z<(e^Rqw=@t-&2x%pEJr#+ubN4Xp)0=Tw2Wz?)QYu(%BQNjpx60$yJJEM0?kcI6JH6 zcJ}A89vN$&%p8$ep|kC%yr=W91w9XE28W+)dKtknk$K|SVLyEQ*&G+AbFwwx*3L=1 z&OW_w_g1U&W$HzW+vXO8G+Mc3`0!(==pSDBGUQT!Uw41UdwVWknb?i*6Yw#hBH|oL0e;!JnrUd@s;FsnKr0a?7|mM)Ud;-Uf55i(`ZSw4-go8n6=kcW%+9hfufL_~9a z&f$4hUVFctN?HBo{uYrZC&7P|?c8JY3`&n2(9%A1uzy3c`TW7t<9rVuj5h)AU~^CC zQ+#hNUl3BCuMjl<`8b(rWi7RzbsRblRF0csa;fj3Zc&Mw4_nV4;+4{&u-^BTtYNsx zjlnKob4GrtyEwm(45ziPh3e>J)mvsC_5t?nb2hQrWO|*;c;5j7o*T3t$-b&@)nK73 zzdCxc?wf?XL6&+$_rmPRD(MHb??mutYPtW1? zx!N0779ACpovtXmGkNJw?}!CGj)r;Jt$Lgg)-P|qvgWH_8^i8d-BFJI((AC_-o~un z6MBzg@qHgV?5n9h=J&R+OLoAGkpkla}=kRP6OKY%c%8tj)F;1^2gnYMOih-nxg! z`n1~KH)cfc3gO=Uvr_34dcJkKJGyEk3=4c$Qt35t-L(t6EPWAVG%bng~-Bme` zyY}V&QgEqE*x%5<`RV4WaY1?8mpU@$d3ol)>~Pz-RQ9{b;h~@B{!?jv+`nmB4V+x= z#k#*;^dn_a-^TCPR1)({$2g>JdY{Fxp49K&S<4~c9QZ@5ug#3BJACT=v?~dkR*H|j z%8Yj>M4g(s$Vcyy-|?-_Kflctaf{jxW=6co^V+?4$CRDp4jDx#-|Rmly?B$+;h43b zh87sDd{=mB3wT?X%6pghyE$%I*=KmE*Wx)!_d^|<^v`aN*Y#>x`?@K=X=_T>7W1^6 z^kq(pZRTIQ5! z+n20wP+O9?)@OlDX0-Y|)!2+HuOAvDeV)AH$KdqYUwn%{jd8h?wfC{YWx;aJnR^4@ z`3fJ&c8^-5W#SjR_HKT(kLyC;D%Z~X zRy9w(@Mdz8<9y-p;nS7;-X;ZE2FKeyzIf2F`=gGrmtQ_mE#;4zK4xBNz2a1pnG5b7 zJ{}!>{)T(k*TtXY>U-ZC-F(yQwcZGRw2$d!&brv59F|c|+_(Fq)*trU6UGgEH=)Z1k6JSrXh&zBuXPUR%a;d8Ycj zO=j~|%cevhmhoRUL^S6H(@ef2mv?;TpyJeKy)qs74Ab(0_>E_kZB|XnNE9Y=eMVk= z#nI!%tE=9>y6^V3V^6+CsGU;3XyE#Jyiohcj=ZZXQ{<8(?HPTn^OwweTVC%KpF44x zZS3*fd8VfgYi2waoMoI?8T!R!N`6W6ucI#SOQxq~hpx4l-n=VoY)aUN?^Pkw`$jFk zCObNHlzdSSVYG3RhS~0&qG2jy0za>Mv7%<~>)|~26`!Zhb+LB{e5y0a&pvZqH~*N3 zt6fz0&EMC3$5Z#gI#zCNQL7DOi*{^$ePwmr57xGTUrGh0W1g=Y$M<=Y`)uFm0-2vP zlQ&L~pSxk5dM3B?$dawo3(Z*xPlt7OOB&|WyHY(m>x5eN^Ur=k$NLoixHX|>;kOk5 zJLap{ML#V_U_4t?P&YI=|8{ba-_4n(AqIk>SH7kHm>E|wex;jplvXjP>yq6+?<~6+ zpEh0Qcx5i*M$Mre@vD7(WCui@=BJ-edvJZA(vDFh^E9jlljgta72EiuCH7H!RpSwn zQCyket6_NE1(g+{g6(&P2Brj#63%~bKQfC)5fdXzMH)4f9KQKp)qGIEQ=K~JW`i- z&8S$@WcidETGX`bntt@Nl8BeWcAZT7^PBdD$v^VEUgXp5&i%@7FQ?gj?58-ce?eOB zgKKx^`o+A|+B80)p+|~g_$B-GQ;+y2Rq_qGKONTFY=VJOYE|MCh2*yT`wV-}#tXPZ>SL@a&Y zGUG(e^T%5Xb4%xJI{4JmYf#eYN1aDUy|X#F-gEE1MfO{!e%a{WapF10ZB}O&kBO55 zgpC`(QHo<1-ez2Rz)3oEB=z*3tNJckwJ|NPYQvMJTTV4dVRz}3U)}xJDbE3eg58)- z>Yv87Csi*Adz$g;VC9yZ$!d-!d)7R=YZ=%nGxz6}OfRo2JGBt^J?zKlx^jcrjv)`2o z_0EsG>>eB)w1gjXm?!$UJSFkz-NXz2vjYvi7|v-iy5BaWo9_K)HbOWnpwyyi%y6IA z#tmn+njWv z!tbe%vp;s~$ma5&{WxQnI0fe`+&{oxp>$-5;qxf-qs9A#yW2eF(!w=erw_m0&8zCG zR?df%gZ<8o@;lZi`=eQ4%g@8nT6eSu^ItOuObBVbWMX^Uam9*w-6uxOjVE@0xaeHH z-7Mt#(;-bCbV~Q^=qBo#9XRmw?cT*dR`ebp`dVGZxw;~iSNxLgW)yAAlb5?%WI2t= zSygTGVxa8xxr^64X4z=|OpnsIVeKlov;SgF(94eZP3MveEmssRl=a-PVZa(sW!-a) zH)mZE33WD{{ZX>L$Fv*VkTjP-%e%5u`j=d`x_@d#o9}Tw+m}6JS1I1TEDSiLIX~9M z-pwancbUfVE0NDEqNBg68$6pCcA>Q82RGZmSpU;5bMsXbH4__p?704Qflc+JK*q<% zYpg`o-M@vqjSHAPuQ6u95)JQE*{kyV%AI!4?>D)#VtvN&BQ>qQi#^7z^mkwH8nx~1 zy>o8uBR-wHpy3x0S`{;3_tBWD)I9E{X4_#A?Wc~-I>=WUIjqN_RK|p|!?TR5S6yp* zXBW~nu5-~t*Fl~BMn^A%j&ncQJ8I3Lm#HO1Yur@3g`fGXUV3#v-=^N0Z9`YIb}uzp zs%O@5{!Hz(W!8(#1f%-4rX-C#GTo=@K;w--$KHiwc>DeQnTqRoJn3K6pSjgD%5&4Y zy12O>roL}gBFm2(_EDeLp>l^`w3c?&JDadr`A@6f^_J)vEM7)k_5Qm<>-pl9?`*L8 zS)2bqS@}*lw4M)M+AcY>{(rjmU5GArr(M_n`vvX)ZYBHwX!-j8`kHm|0(J75b(Zwz zhq=z+b@vX=Yru{K2YY)FSaxqKa#vl!)UtQbvUgNvG2q&IsGKT`g)Q+%mf4G!-V;{u z+qpP83f)v$e8Nrx!peNwMg2l|@xp!g^;#PoJ>Ah=1?WZrbiF@Zw!c~A25Z;D%SFp$ zt(!;$Hx}4CY!qp^J9ulki#CGI1;|?tw45EBMd&^Scaf6=+_B&&a(CB)+Z5KgiG-k7 zV4BF?!vXAO0Q(_kY0cKs)0(3-S4&^ZKx-a&F~Xm>R1h{xs0vufHVSON1c(DIPiH%@ zuff*EO{6N|X^C5*EwW?69=vB^EomQw3wX7ltCpMijSE_yS{t>zw7j)8X>G>0Xs9xn z9KtpY@KOhXmJPBaLzThjX|3^e0J}4sT;N^}t3JBA;$A?!JAuvOaR{*wU&5fu6>yRF zE~u*h#Ri0>#x7Ob{nOr=dn*JNce}5mwxiGJqTWG##}&crZko?C;te!h+{>?{{rkv4 zvCDM&8=oo9O>OM!-ty6NT7g+o(xC4Ticafzok&kO`l;pf;5Tn-tTs6~PMf}BMbWzH zIy0^nrmH7yT-{PMzC7Xkmx>3c6Q{45Jng#g_~Gp)NjrAxe(HGB5q8XYNnhO}>krk7 zlLpCu-J+wUT$kfsJF|I+-LY>u&F^ln4?pSsHgwwRH_Mh6t`2Z#r_C2WHz|#DzT9!i zuRc<9;1M%V!OHUY%ekL*52yZ`u8>%i;HPP+S@i9R@)^I5qio$d&rhUZ_j%)cwLSh> zX+g8wRAmi2?NL{j#a@>+FL=_Kx_-*(4u18)rjAY5jh>}^x&0{a`n%_G3BTfgT`f4$ zG-Sol`;)IbeXloi3%@=ip!9`ntCGUG>fmnusyJQr`7{2z?6=NtdcPBfG9S31Dc>76 zuW4$${dikS$A^CAeb2f+ID8~p{luv7vCY9ldp73gtj{XzDkrD8-{z8g*de#Np?l7T z^r-AnJ2dOvUYiD|K#R8Y-3!WjIXCB(^9+>h+K29LPj|LajL{u0zwXiN!#Cf0hVF<@ z9X_xvxRFu1>{Lr|RcUpPs+&3c7kR3^40qjT{(j^Vt#OPkD}N00o~<-`d(4Xk6W7kW zcw%Y(@!B)HQs!Tjf4bvo{Kl?@r5`hO)(`mkjQQi7*_Q=RcUn)C_pMX=aqfA=iC39g zVX_$k{d`Z&{h~gIm+}5_lveLf$4`+Z&n9a5G&J|tP`4ap(cg2uOZ%r6VTb3=u-si; zd%tACfM2q%^}Dj9M?nUQ^sW+o6a@RNJZ(HSZ4jwyiElFcXw4S7i}YQbJyf-pEZ1K= zdzrePv9TcoY|Ikh6z|+}bJ*bF;-<=GvH3_RtEKPY=I$ZhpQXwLKQjWo8oU5Iz04i# zJl494e+xTgt)(tz&Y(}S6M=h3aFRP|9{2wr@hbR#@%sPb^{?VJx_wukbiA^7EaJ%Z zckyazV6f0+9*kEIds6Yr5x>33R6OYYIbK;}Xa>I}#j7|tDe=mqi&wb4@Bh&F8gum5 zIbC_rX_Xb}h4%_veW%*X+gfYuPuk|VEiR>b|9*qKe-ml%gs*Q`+o3@s9Lkz!;+^>t4|wmc^_4C#JIe)a?|@6hLw73pE~uD!g|@1 z&ZyilN3EFW1+#lp7p%KKdCP_#Z$3Ru$-Z8sy|WKCt~oqgORa(uV#9uB=CM)YwSGAvYGhIKaQ#h$0CQ+iI* zS3ISbAGAGavwqjT`ig12?m6U&<_yc5DAS}JI_ow=$dAeEvT0aegnstD4X3(CINwWN zp%U-KRf$jene;I}Z^O-*BmDYJ65MvHYZTa6I|%zf-I}WZNh3eM;>g7FQwv)so^Upq zcWHV5RjZw6ZFQd5Tvog9T*HD}-+bIx9svKn2ugREb*tgy_>Ha~Y^x&92gog7uqtQx zk4L9RM_Lb8x#twT$$CX0>$4W;u>4C=oE<$(lA05rEPT^@`L}2e zU(+fzZE(T1l**l7rNfoMW)WWn_IKgB%tUYL5_2S6!M<7PXcf;_NYN^OmziXA6<^?^ zD;n9PXcdPhC0fM;HhJ4FpyB^>(fV{k`vM=O4;$}h`o#N1SO4_LRmx6Z9bnq=x?`nR z{h&dILfvI!OD2CDk-H)Ayt%UD)XCFcIK8yKe^uw~+}YPJY5IK}sq;A7s^^iU@OPQq z)6MyFACEhoo_wzCf(}o@w}D$s`S4E(FH)y&wXWNQD^kLFkXWa=_G zGt^8q`*k~O*G=%PoAH+~ae-NHd+!tJB`UPG9J;aov{R5?z{?HE)21oy^$PdZ&D)x> zEs)hT*WbGF){I3~p`7wWzpBr1Z@k`FDJ?3u{bak%O2>D|j2NGmVT-ELH?394uKXq# zHzVLpN%En>*h5EWZ&l6?-KksEF{xwP$Bj8&&JEcs@}9Sk?qgi;zsa**ca%bj=E9Oj&d>#u%x#j3V*UBe+paj| ztT3qfi+_Oo`_HHlkIr?ym=K?@=M+ozbPDOZT#=ikO{tNIZWoo9cG2hVx2MPE$xQA&|Z0Om%&BTm61uuCTSiY!knC!e?d5U zw^?eBtSNhMyeOIXV*5eDI0gE)#2yy4*3fEbBX5Z9&uq_K`r#L=Bs&l~)+&ORvs< z+q-u07=y+jix(!bJ01FK@nvtXf4FMLwpZBvTSpqYr@nn{ z?$K)XWa?ty)rTqrlp3!cce4z1)pUNsu*#9ksaVokJ6!9ceEH(wUk#qk8N8y-^xTdX zv*wJXqRui=XZzIl84o^nMqKaQmDiy#zJ12AqR!EFoqprnGZ>qWpHF=~ z>2})4H=9D99i81UByF(w*u9LhGYR)Pwp)EOaH;&>c)#$FapR0Qiw~ouyB-FcFP(-I zcP77^hg-~oTfC|W!gcVruJ*MQ|NBZ5SeB!HK|Ihb6 zye+y4E-}JT!?(I}F-gao3a-yP`J>yQgqm=^vfr;CW*4+fA9at-NiS;9zIW}UwfDZ( z;G)Oc&CmA)c=xKh53cHycFxH4TI^vH*S-33eMiSuX{g#WLeG`y@AT`@V+CVzx9y`gcDZw<3x9)K zV2{~~esld2E!UlrQMl7SB{JvjnN9gqy2$N(0{Wf4p0C&u`d>glG(s50k-Jd%Al6}5 z@(7>jY~|+fOV@kq)O^mU_h9UP)yMPfn9Q!;hQ_W77%It8x74=kF~YZYJO1qJst2me z2kwau@_2FGX~3X&>kcw%_L_}Zr0q9Q;D0D9D$r(#(Jt>yLB7?3=B|TZ`P;rI2(kV2 zGB;AK+e^nGkE}NswVttk%^-@b=g zW~v94DJ@Zc_Gs9ncf-fs8h*yaRQGhD?Z$g826t!fb&Bt`Ca=%W1+TJHW2&~wsW08S zjbnfDNAb%F$JSIOZ_6CUt>vFTE-qj7A>w>Zx}D8qpB4Uv$E;0s*PGc4^=cf#=RbQi z@?@b^!p?0<>(6Co25+5EF)k-P>T$!mS3ACT+tP2%+kJ;_9((Q<;O@FUux_d|zh`(G z@2R(;=a0RYK5dJ?(V6zJqeax55r4fi?MX+AW_x*IQRgiCPTAmJDjv<-w2L|;b2}79 zx6fb~bsl_pgI(jKf4j!xaw9mlub{r@ectn9s|Ihr^8VbNk&J-G<_P6x*-ue3HusKi z&`kGr^zZDl*r(2juJ-}29R9c9v)tHxf!Tbd_o1DpNF@PTAon1drid>jT@PD4Nuneb zkbZ_dP2m&gQdrWS%l^+v`;D`&s_z~=@GzdVH#LmvFaN7$n#-qr=bHoPxMZ`M$^vFM z`%Z5dzx?H>QnmCGRrkY67Fgdl>~Jri%j3;mv1(!5@KIrxS90RcsARd9AD_nCSF&}5 zHnIswx;YuEvx(Vs^*u!&UlEnY5&^oJJ2=$`^BQ0J-p_8DOG1yiy)+@Geh~M(#P{3cFDMI51r>=^0KD?l#b&QM#voT zQhApdmiXk_!J&N_K9Tpq6y@sml(lUy%;Vxu^IW%>%`JO#?qiwq;9kQuPDHsGOx91+ z{k&+QQ3lV`%JH&^YwQQp>3#mBR&hg|*6@3v}FfUYQSiOC4tBcGnWyOSGl^I%zSylwNg z%7wxS)}JC4J?Z#9D|-H~ZwvvaC3Jm7z%{#$;1*U);oOvYw`QjC-<4h+7jVya)(Lrc z*=>_`^tWYK_ZtyV6*8hpyEtd{sJ&ZEhmJ6My?8B)l~MBk`H$tb0j+8ehmA1GPL9oq zO;s7u&m|?q)%bnP0Qb+uEe}#hX7~0ezO%=BWb;9V;P1(w6jq)*B)9T{Z8ycdP>r9Z zcSNVwA9pvpC13HV&y1uop)++|Z>{z27gv~+`c3DJqc7vftE%)@2UBz>Ta}DH(D`%3 z!3O2n7~^k>{3M~WbT~43JYxFnFXthP7g)}pg+8D*c5yb+nC;?dM>8YgN@e@l;^Von z?7RS+sU`_bB-sc86MG;ElJm&pQfjQi_$5wKNI3Jq5UUIESRIm3tZr9^ZC$^_ZSnKULbi-rgKpj~9j6joMUA00ZL<%&%k)7)_3gTk zAlk^A^T;`b!Z5YttMY#sHlxdk4Y|MG~^`U<&ewc`ZG#>e*asp2nqI3Rj! z?xrK!g8qyWZ@=*d=X*U(KAgLF=~&BMYWUE=%BLCLv-M_4Fv0m3HPJ6%P#x|e)3(OflMhl@du z9eo?ee;TPWx!S!*<(9U}pj(S`x@(3Cmb4}Bc&uF*TXAxO@}1xlzRn{4j;&Q23cd_m z8Smoh8tBZ;7`Ao2tM%zut5ky1KL*|3=6f)^MgGKFVi_1 zJPmIeQl@vV`EYj6*`Fr+&ruC>d!4xM(#us#Hr$>kr+QSW4GgS~AsbUncb-uZ53Ejc zzSBRC2f_N<&`tgRQRUk=E`K`vBe@~^^5yH7^9)MPd=>|5y7K3&Xb`MA`#;*Oa4xC! z(90}I+&rytV?f)s{732B`f=T-R<#v%ocR{)9wv^~?z+4fUY{S$3;U1O++9&&{YuWb zu&lSI`Z+b5H?QV;?fyPGq~|7vvYc{A;>OHf-aDd^XkB8_cw_3beuq=Hs4Q&0<)mPh zV6m@mP@2-h&tYkA<~)}*Us0G4U)5%F;QgEAhVm&>kbyN(_LBauvW7$8MB(q>8#`Ll zlE&2D{OWrtE>SNdKDHz&o@+TTdGLWJ_QQ)3JKlx$nWW{%;6_^ra`euvGt3&{eJ?9j zZMMVRNBLs|Zyehb0=Cto}8BEZUQTXW#%nQ;LNcKO=4jE$ZVfAsN)yU$L~D>xO}Iz2(-W{&#mYFGKx zufu#E?Tm@C2{2?@=k8c;J?`oiix~?~cAgCrhWT2`Zd=zJyvrcCwa(UU-DghW9f9q` zHua}B&bNpM);VcsE8xJIX|7Z&|I27|Ku1E3VEWqo9NS#I9NnHx`K3phUn1`9y?gph z>l^*>;-}YF=T0yj|0TjbPc&n5%_i^s)cSSVoXT+h+~oD;V?R0%i}~WPb7+~~C+1Q4tVAXqh!V4d~&>MJBzBZ$E&_;D-aWs%@^@y{m}D-N_5Cp1^zc;=;Z{m0Yt z=*DQjm-j%lw%oNnDIKjK!$(YY|6Q~i%{HE`zknL8i)@OLoo6tagotIq zRQw-@SLsDdU||`~>yqL1-$bnO`f3od?dEG0_B0>XzpiXBd343=-fyouIXt>vn6=DO z&vs$hS`Xc=^0<{|~F?8wPq>*+1!hyM6VC)|Ffu)e`2(N*3!aL#}; z?xRmdT+mPGx!}F2(VW*=pB4{S+NZ5Kd+ytLCS#x6()S-xSL}H|ki+9`9B}&D+I z)yA&PpY-nfs5CdBOk&rDM+vGefC*NVZV%5QNamdzOFLxK}X1hlQHm>BmkN0x# zc0w4pJe$!mb-VhLH>Gady0&IjMpZIytt_u9_4K&WdS4u}mM@#XUPv%LFr}kuJv-g& z>KSgPb@y??`O*=~0FTfJP5tj8)^M?b@qAM>VwVVi!@^P-G7z5l@Jb3+w)nyOU$8Lj z07%0t@sYhGSpUspGxG4t-Tm5Z@cx-&YOXrHTzWZed_@8nUiFrJD333H&92|55b-W2 zH9We96vJgVWm#Z1+!m(Kmc(W`V7XDRy96SS!u2c)Ql=*l zSKZW7rcj&U6zG&-akcJf`)h^fuvGE*x?=bWp4O)}o5uwy?uBW?Emlvr)LbqKj0^eL z;=7IM*mfoUP{Y%PFyWC`ciShGJo@$~oxQO<_2k;j)*~9+(;~Z&58*Cj&MF1kI)1Qe zRniLDcWx{Q*DYCuh#?iophQWsT9=5@7>aUF%vKKzY;OV z$3IZ{Rqp{~WOwwcA3NvMKJmi{Dj(7?sB06YR_hTo$j#N+F4OqbFo(5BtXNJSFOK{yH^?+?sljk z{40N#?6?c(v!);W#yII0b!PWo*&*D)WiN6YxNS>)j|+rtN4@(gOpadpHG0_@KiRn@ zn)XWvb-dX($*X>g+8epb?z*1&vs2~U^=AY(CuhlO)BPyr<;AhknS$ZYZw%Rd4+N6<6o7QzMkut9p_)@W1ypIzBhT+ zjK~{7`Qe2HA~|85Q5MKGtpvHI;>sacUHLs$2|%tXdx^>DY_(HQYwyIyk9oZ;Rz*K| z+p~pN17}=Go55*+lo>t0RGe$_3Rz!q?3&%L;OgbiTgl^V1sGrbe9`fB6nT902IFfb zd3^O2kFP3eZquj3`Rf;C{`xV# zFN(`A*m_EbEQ|jimZ<10nl;DNh#Io!ZV2immM4{P;t~^13W|ENo??`-P5DAH2kdgQ}j>K(^x5CegnySV(UKzY7&Lz*Pa(vNKy^&T{HO8*G z$(wI^#d*}+DlXrj6E~^Zxqo4iX8FsP8}u?$ZhOx-;VhoS7N;%yzNVLV*7qCjIu7L> z9_JAxP99O_@T>iZ>WY<)nUNVQ3(bvvCcL|Z8>G>!*OK|jIjT<2{C3-*p54%yW5 zF44zpv8r8y<^E^N7l(b{yp1nl{3?4PYHf}7oPFa;YDm;1tMXBO3Y9;YD{7ouxxZ#( zivLP0-xW(n*VOQ{#}8Il{BhxwWsq&RR8h{D34YAo!RHRWdKjQIqJ{$^_U+89tsj;5 zD(xSWS}~hB%VgKuZbR#rI2ygqdmYK-_ZRx?_J0@@r61yYa4_fD!3KZjkBMjM4SLfFQvxONE3&bfWaKOuq zYS%t;`mV+YHw~+|1xv_vCiRsY?>I5xRC2k~H;127SlL^T*!7beU$gR+?W-~cxxGnN zPm;%fd%jQLRlUWoOrv`EKcuMzLzqV9$t1cW%^{N z=VP$+u%FX6MW;E!5b20zXbb-RAp4JR?U0IAsgx55iN&L>Bv{!fKL06LrB|HsiPLaN zu>Nl#aml5N%eEM2Is}cFc{uh3n7`US_efG7_r8_EYIyRx_Cv`%=ObqIH%@0InNGhQ zsnc@q^xJZbiQk7jS9mws{Gf~9w8s3Tn!KhM|4st>gTyDGc> zdh2U^yRh76eH${set15z$JR{~_Vrhsz2VEELIux~QZ(nZbki0*=kx(Q%#m&EXAtx( z>e6Fz&S^TDbNYPCNggoqzPhm>=k#mZmX!VHTYPHTZf_b;sJLQIL!MPj?dn+%)+P@Q zp0=3tp(Ur|eb%=H)+!C*Wz#0G$@eg*NzBKCi9Pl*9D7WvJW20lI=p-y0G=}|Xy(H(PH|LT#Lu_R7LbZ72-1fmE z2PO6%G#MbV_+ieRy(5eM61);Z|^*}F4wczJgE27 zqbwM$JsfrNwwsHiwF!yVrdFks-_81!_<#4z{W+n2@W;2$r~X)SBSYZ5RE)$i2of`n z#{wi?zu7wB!0x^;4!GyZt+>noq`0+C+v|PIGuv-#rsq{;PK>+AP>A;FS1Y_V0lZvk zx7;2ct10E6?!jP&U@pQZjA;QZD7i|e+>?&Z&4 z*1Gg8w=6BZ?Wz(U99Mt%{fR|!6FkjV!40CW4` z12h*ns1FceJa2Ti-947VwuIC3|!HqcN!nwo;?*Gnm4hOAU4j1(> z7g<~hDw&H_3Kx>0DuV}i43P@wkro>LyTak~Q&1ES$&-Q)doLo3l z8!eNmjoQfsuUkUeHd7m|Z64&c&*oi*~O}9;Oc5Eo7?7^7Ks$LBg9rP6 z7CO!mEoU*o>(2f@)X0T{AcjRTnXqnIpt+-W(AoyE2cwV$N*8}cDx8Jn#{N^avsjQK zz{Yp9Rk6UfG*~zb9qL(FII`F@g|m^0`fr6}QO#n*<*lkLHhd8s_<**576++WQ&kp6 zI@DMkq|y9s;pl7#_U$YVY(qdW=6o*Z2rgDBTud)?cq3Ii4iemMd;q(o+*q;bJ+zF&WG|utKnj5okDA zt7W0XC%A(|6S*nTC~pqzoW<8A6Oi2-N@xJAJfJhfwPh zjt=m-pjabvU6SoVMlY%=*wz`bJ#YdgQ3c$9t(s&Ho%=aRNJEFf`42$|W&s)rYy{)* z)&R#;i3Qjttw)f*rCNX;!XdT*Te=_#8LV)$`e+P7ejz23;AL#hJ}Q&yAZ+C@RsyBL zVdkO@4pjh6C22584G!6uB&7-T zm_2ZUBe4g&q_qdh{!vwdv<&Tm*&2x|;9c#~VAT>?Hj9-`jB+8XqR z#6;94lq67_h+Q+3Lsdc&_yRZ`l(>ST1O^$#oD|TooB-P_0vZQ}%8$?d{3J(cCObmIBlcTyyw6 zCA`7uGAJJLDSRan4l6>69O3t5aeSP%&?h*On2|Jcq`845X|P<_$R(=7Moxiv9-&pj zKcto_8I$=G+LDxt7=f8Ys1q96;^VZ%|1E9tF?N78gmp!jNyNCtO2*=r2wQvv+9)Q$ zXQ*PQqq%pyBGFO_Mj&^n0&vGtfQrm1d~BeFHH39Vs1X=XB7T92(sw?5n$#N~XEOBp zAi)S&J47SIcPK{SX*NCuwj^r9=0xuJp)%OuBe|mKGx;=l#mCcad@dODaB#jI81ZE-h1ctOUV;P?&1INd81O@QRP)6`z7v zd`xZV2`u4*s*Mf0P;Kmr&J#2g#>Xj)PoXeLsn8Qr+y%d+~6tW=&HVvNfaXjNw@Qja^N{9&>Amige#-{)o)d*BiXawdZ)Ceri1^t3u(fNf2 z&(NhdNbf|!Gq~oQ2&t4+=tzQrkFyn@k`tpCfz4o{5tv_4Be3ZNGy=P#GlB-s_&A>N zDR{=mk}|MKOVJBl2tjFFIBB5|Qt{3X69`sR$+oD|{NvLLaRmErW_#WVK0{C8==Ku~^m%Iu^U4b1V&w z@$n28pGsqx4$u?QCL!Nb9E<0|_;59$#IfYIiazE<`3nmK%rBU|s7dH#2{noM42VaQ z2jkXlCm0$!7nDKBh_cqo?<>WhZIcsPIYC^<2SaKz1Yx=Pa+52rC6 zg~lWm4o$~c1#LB?=bxDB7zvY_J`IiWa2n%LXiQQnY6Kkb2z7!C+>{E(X^i(<8slLD zCKQf^1!@vzArj4!%0$}`kpXx#G=?tOL)s99#&}X71Mg6bz-f#}p)rZt&=X`DgUU$a z_ct^KmmN_{l}xjE6dIG13M)(62&6J8;&2+{{g%df*dPXllW7cHAB9EpZ)l81Lt{Lg z#&{GOLl;>IBseMLo22 zVweP5Ck5_Et&=A2g)TiqS|^3gB&9+lP~ajML4#R59J6>7%p#9GTr4Gk))48jIS2^f3&z9Qj7Q0W@vspNR-{xeiATd`JePh5o9u1!H@GKaQf@c)r7_LBPpae$nG!1w0aPHz!xJx1&6(`kG({L9L=Pq>R zmSkv@G!?{Y;`7Xr92VO8G1XyHq2!V{go!SfhO~G%X`zd*38hkVfv{w9A0U3$5Smfr zQb2Bc3N=xMlN>6=dvMnWr77angl={G zr)t5_18OcsOuDqbo(&wT&!4V1&VeAD`=1i-Sa5U%y1}3 zM4sfa$Y6mbR^TL0Vj^ObB=%?~c^n#Y;^5@Op^y^`%gVr-lp+oe4J&bQR^m`ti6V|< z64Z)GaQ_iIFy_cML3C-IH(;2Pt&jx2WKS?g_Wqn zi9;(#ik0AgSxT$KS&2hoC8}`J&??1B9GVOh2WKS?CBsA!PGTi=UoTE%f?xW zO-Ue8gp*ha>Pf0|8dhTCti-0U5>+_Kp;D{_&jF&;InGLK3M)~ClN>6=N^F`{Qfz#c z6q~|I6yc-<5_(<{vCe78iH(yJn?g=h;UtGjC6L%O2_!boM{G(0i6WdtOKd4x0-LO* zg9uL`fftXHW;0abB!@~Rkl?u#6o=v%gzn@2r(O}oAUMf`dXkzV4HSXX2cWvMRN23U zA~p$%(DO5h4yA!2aK-^H95o!BSW~J6dvbyhDtz57NpqS65*vpi_HUsGJ<10iLoquD zBM}W0v2iE@CpP@fp`-*7TMCNUGzla&4n^$WLJ=E<3DludPz1lHv=$tS*uRA$^prBJ zTBH(4@Oz4I9E#Ah9R8^(k`hRm9fUfkNg%;fpFth~G{xUS5sL&xm>sxq_&rr~2^6s? z2_$k;M9+1@sznNl;P+(VEF6m9Ne*~2gDRZZ$gw@4)}#pfJ7*I-~=K3;rEnk!J!D8gYlanVv(Q-vxA^H4HU6(C}RB< ziddus5@rWcxHJ^8a413#CHjYU&LSm{Fgu9CX&j0tkkHcv|4BFriZD9}!fBw0g+meR zw@}0)C6F*Xh{C0zh=oHD>$gw@4niTe7Ss-ca2hB=kAXtk`EQ|!MM@xHb`XWrI24B> z)^DK*occu6TndWd_mp;yLlJsH-9I^$1Vxw~1kGunh=oHDIIQY-L4?8t94s(9h{9XU-j z$*ZBGJ({t{jKFL{O+;*xj4?EMHF$6-RR_uLYH%nLxhAC;gGEC}ES!$O;dCSc6eCE9 z7fGrRH3EY^XashJ8bREc%%XuP77kG?Dnv=;V8H2mKubz3;GhKG*iIOdM06FXTQvD%6`89U@JViCxiolZLjKIBhX0v?VDO`cK*jL@P=Q$N7p$;VVkx zAn}#No2W^cg{VnrLqJVp62?0w4TdrC+!Q!|_IGY3@djot!Al6HQ4GW}j7h;Trc@RO z-k}PRq$|MjyJYP!eW05$)I#e7V@6mf*cF|dX&8)&GZ;7qn7&l#W@#f3ttdv|)CJBN zCW|9S5=JtpaMWPbB+Nq8q~Exi2F}1)jIdzPRZ!rJDFrg{4#fx@$CwlxV`6Hfiel^n z6~(UT>Yj$b&?DWE4wJ%Pl$gK(0#+8*8ZaGDx1li4zx-LR=CfpxT%x z(7MM+7OIV1(W*_;vE!J=q~x|?f@O!FoNpLeLv_{qy zyo(AJ4gDsiIsBe1oPlE)gMwic;n-k`2*>OoYA)?<^e}mGv@0C``t{NB|WFqkt%mCeU$0V^9c9A`bc$MKYo| z8i(Oe3KgVjx8LE;z;Ug0C%b>SSwpl}#P1yXM=UHJ&0P=W$S zGzJCH$g(khf##vc5~_{{y%;!pp|4H(hh{>eKZX=qGH9p_y!cQO1{5kI>y2ewpx&qz zM7?QTjCN<}D49I71*L!vloghCH?N5X}I zP$bJq00pa1l2!wURzsCwd&CACH2jI}5s^Y^GWeo&3T0vCLu;h43i+BW3x_HSQ&IXd zR9z?->z!eLjM)iI!Qu`zg-@UYgl;IsOGalZb)g+1((gzy7fpf-CoU>*kt7iVREoA} zU<+q0DrynMVo-uqkCe8^w`9BVoE8U|(uwF8GInANgS0Q~f@Ywk;U*lLDAa@n9MZh7 z(EzCrDU)bO2nQhw2Vs&Bu~JM#gG4wHQGkdn39TtaL6mp!I!8!?T<19BP!NYC77Jr2 zmO8Z4pbt(y6!0O7CAv~7F-1c&ILuJ8QkYmoK~!7ZZsc3C-FR||$}z;YhOq$jH>xe{ z%dp-HX=@a+BvL*if?PIEJyhr+l}&UdY9GNQ@wXJQlGvlb52*>0*he~#CXF;W(NKVf zB$mV+QaD3HGdRppSVnr>7mw>?Qwg+!4ma4KPpm-_t6+9R?_v2L#CzBUO;16GGdRtl z4T4fO(paRekaif(E@W~+O~U3dgyA21bcJb3Ixa@4mLx2L4i2cEl<}GvgBTT{MWdAo zhimi#E1ED`izSf#BYDV!xdVG+CYBCE>ImA2w`rglagMN1=p+KK)torT#a3g9htSPq z5_o3-WDnJeh8`j(O$N9F{zzOw*d1;0E!dS|w~$|Pkkkcwi;4V*c!!1DLA133&&?d1 z96TsR!xCAOC~vM2HwMghOkqSfHX;!TNwicBatEny^bQxfgH#rJhlkuj{Dt1(BX^Lh zLhlHWJBV|Mx?-h5MFmtv#S*BB+O8FD@DRC)>k(BHy8~(nY38aEu{)rKp!4ush>4V+ ziH$^GLn!%Ev6=8KphSH!!Ju%$FDcb4w(_5}7S|Q}_CbjNP+Ls&)sPcy9fj`h)=n;V z)(+M#)(r5^#?!&k&e~n%;o;!C#$Buxgdd>5AAV~sWU@s}mdK7Fw70jj)3y6mLCAk2jc;eewHE@R;KU-PJ=ns}=LK}g-tvxs$6iP#z%Aa+! z1^fMl+6-Hv&<1Sa7QeC2j>okT@_0fJ3Jg1O0DuC-VM6BsP>+9M{~ybsc#hap0ig|^x-zsyOd(Uq5{U#1STAUJNK3PI6A3*WT%4^vT-J-65&xpW z^{3wg{|Z?)BH&04UkKi#0~`vLHSt73AvkB8$rak!it7;K2VHGBIBjqgIf1tV!}7(A z&B58-L+I!zvO}66cuAAU*&XPHG&>0O|3g96LVJ*pVe@RjHVOvMj$tq03%Paz8=lBs zn*sL23T;3zXhYDUD+-GYPiF^@P2$Re(-Be=`D0l8*`8a)OMgQw88pj8_>kT6Ebw5kZuc9VLY&yfiDz+SHCgr zz`KN5d?8EQ#tu|6!T9% zp1_`EFCJmgM>)T5UsPB8(XW4MUVot)r2&d5Kx)kSlV_Orc1(c{Fc|b*pbKNzGemaw zT+kAQw)VER_TpiYhrWsV&l-aTfwl}g0oe3s#}OiO?7_-3t~MBV*ft={L1k(~e*O#3 zfF-d4zO9|T4UfqcX|sgdwl=o*cHk|sOs1_6v?avNf7_Z_wzhVlOXTo`;N_g)^cP^Q zjmXYU#Id!t(bg7--Ha~r`5Vndd^?W42)uF~biGWlo&+>V(Bk+)ThI)_c>qWUj*`zG zTQkd^DP(i_Hb51;3(s(DY;Ble00Ag%qYb)J zaFV?MbQNG+q>q^=x+BtCbm5L|41ZdUHJDTU}ar z8H9AZAhpxsd^|H4AGWL6`NC)X2w|t)e04c21K7=P;FV==53bX>Ld^2_uW?|f*=4i2 zoL8s){)9(tz#2>UAp(59ug?i^{cLK90EYtIecml2^D^I^?8D}~JZzTh_42S@!LCPG z48iUYOz8Gnl=}r_%C34mO1r^P=dzojUzsgY&D;6yxc2XM&&)cR<=Nf5as6#1+_|hy zP6c*Anv=Ifl#4!W_q*Bk(t4F7$mNqLs7nj-Ik$9WM2Hc!|K6C>< z-`D2^_;hNC0OL0JFahF!7yHZZ{I>THug`DTxA}Q}T)%nb-VQrFpoi|&)4V%h@I`O) z<@&ri2^U^U$$OriXY1M9c?rFM&8{Y=7q)pn$CuA9E18eBCuLmt!tTv;dpaL54eipp z`FOno4Ewimx^~CQ4Ewfo=PVA0nXu&+JjXqAbESF(7-?vAn7=JghoiH0Cc+Z;w^71Z${wmJsPtI?aBv+}2_`Hm{k&=#t8Z1NTXxxD9)%XwrKHt~p1o(7ni2&oweV73E z2TGrp(0UG^1V=T#i9or{pXzn6s$ zr?uZKP6tV&E^kewzG})}0CvP(z}swb-k(GPA66IX5cj+71taGc4Bh4KY9xCF*lKYk zR=MZrWPBI?c|UU%Y_{vYl*Fg28lp)wA0oi#`}&*!kI$x-2yjwg{EX8g9PGEN?eTcV zf_QQ-;C5gwP;EyU#oWS(a81tcD&ki!ICjG55#W6- zbmE&&yl5_OXX+;94>4?b)8qMa+f9zIIp%BLd{}+nz;@xC>Z;uCfH#s zIC8g)x9J)K_=>g-S8;xGZ>a%tCPADoZ*Q^=(*@2hgyL;`=ytC%lp&=a_A9Dx#jN7M z9WNf>H5rZ)kJ2-6b~RPLfV0p4{6nb9*VoJZLqzs`@17G`8$J=zYnF&~Dg#icl^6Tt z)_T>P-DF) z3*101i6V6!;FZ# zJF2#I-l%Rd$4QV{Ulo~evm|#D%#MyEHuB;8Q67$oCHaJVc>eN!bq(Vz*Jx_Wm_;q=0@l%`w5Ym*c}X-*wW&gwt%b zS2 z4w6DtQ3SNG-_eu1$+kpBNp30ioUdRLdb9ph#qV|DD06l~{PH=zZP(}R?Cccm*6Rbd zflv`3-#&DSeR3KPM|8BO_ngu1tX5KIVMFFyI$>1@+OfJinZ3Ml4?L!WO=L+YO}yLF zpKsRZ-RUq}tq+SJ*jv`ZUqP_X_x@FaeLBrVu)oS;a@)7l{&cqWns4%jIzs@7b-m!0R9dV_*cpI2{zk zq`h8y&q-8_Dqimpd2cnvUI$5v-ydg7W@p#`?tJ#n%q7>Q(O#XIXX1vv`cS?Ml4hI; zB>J5eLK?IqRt10Ra9&my0iyA=+{*mD4w8}p-@aO0Hm8elSKlwzu4_s#wb*xI3Z>|Y z*Xmag?DFZ}ze=#1XVXjs`>QN0SAyNHFaY+p)2~@C%q|rd~>{TV)b(RbovlIUXyQK>2ndW_dIg@J{$k>Cn zp;qxce2B}~)1y!kE)TNp;$ZNyJI2VvW<_|$$Hp0;Zul6;^Wp8tMm4(-y9EvH7U%Wh z%!5JRsnzlr-1;s3)5`?QDTl>jcVUuTQ&1hZi#?_I=HNX%tj^60cq^9rD+u=a-oHw) zPp6p(_E%YCuB33-;8)yBM5Gc!ImTg$+v>juOpe>J|-S^ug zp?^X9b(%S4cn&7a1)=F|mYDZfg`_JkPj2UnBg(8LTPUs0oW)x9zRl*u6uyq9WqTE` zU!Ub!8TqwWV8fMcyYgb4XR;h`w^Y8zw@a|aw@QD%f?%KT{i_6fdN$2Ou)oTJb3^iF zwmo}psrWEo?kr|84p?*~o+5=9fg?2vj-Tm$Bt{U!9vv$$Qi*iYA?8}eh~ z49BP40VSPL*pc=g`ibRbN5OnLzlDSwmEFMVwrSXbvrIE5aI~-q(f|D z-A3I$?VnB|5!nZ&n>{}vyy01Ty%|;Z^7OVksDXE#S+l_ua>5nMm<<`%WDS zbvUvitS?TyyX5dc@qMw~E(k8u5OOQE^zycOHmQ;h2U_tB4Yc%qm*v|!G||rWe(r$= z^5G3uX1T=eUAC9ijD#`Uox=^`#2QSJ#S-#_jBR`D+AsmqCm`^$#{){~&Us@_-LQAz z&gZi@GPin1FE5Dg>MH&K0-XZ}HkROgwtX zEiw(o`?!8AU>A@FS)UGXmu)y*(h;87O88#xjviuGg77J`Zx4M}3&=CQwY1V_7JPRn z8zqlla@(A~L7>Qy?J7~_K$BT?(q%e$1Yf!i38tB9IA^XVq!>b?p$6QVV4RIWdz%p)aMU* zneX$xf0baLPBRhg%XX*qtNx7^thh@2h65IB42 zbU6k`tB;LGb4*_wjKzh zYuL~5Q=#S$g_bMgrF(J+_#X2(?DL6(=99t4#MA;_pWB2`|DS(8i+cOZ{)f}|@QZ)C z%fhA3cqcAHJ6dRAWXI)cNqZ=IhArU2sK!hkciMV+7rzCZuoN!9ywL?OEcl8YnS1!d zp;nwHEn52YUbEMfVQ9U=hh)j8d%@}Sgn8v`wz^OQ;hs#m; z$Cf~SL@-Q{j;u?N5#lZ6gInGCM|0si&0ovTzwt>ts87XV@(>T*>2#piZ5&n?vtG|c zHy7UEOv_8bN^ae7W?XRK5CFyp_{g{6I+rK3`-vfy_(gIcm{Ir5FAGkum{0{5T;2?e zZAI<=eoRr_te)@I144Q_nM6phSvWjyzkL7Ylh-ZYwrh5k>Fw$Ied7CeMk2DY(*?L^ zPM)AGG4n#jzTkcu^3dk(0lBVBUwvMnM8T5#9)yk<8&iVxZIK-z}_D8{|!ka;>TV1ltY z%?d%FzM@d4#1K|*)pKzjU0ha=k!d@4mlH}e zqjz`{IJ4zA7>>(F?xI`b*wN+8w;`hQki*@_ECJ&tE~a=MfqpEvOE0fCjkAkshRyK` ztjU{?Z=eMB`My3Uz^7A71Q@K}hY8S?9j`an6~>=UgkXiTfq8pN1tl?aL*`xK_?Iu= zec$p_oWA?~)BelxFV}10zF}(O16=%@z)$9_=4r(P5=F1Y#w~;@x)>QK`7*Fi zk`B?;UEM%G%fJ5e<@~?&b#dL}(E7fgTUw1z(g1zl|M~psFTY^zy!y}QT|e~h@e8C; ziUcW)y;Q;cxgo&<*4ywMbvB*SUoj_I7y>g|~Q+L)AQs6f6OHBL7Np z8SfYVegUvCJ>AMj^f!fxr_)Vz7@PY1D(ojeHROi+{mjb&^W+}7Tq1Ko=nF;q}{ zv_$Q|s<2##ps~I01^p1T@D4UHIM}nL@Z9%wivc|`Scs@=-q1k*niE2`6yi&BP?si_ z(<>pGYrS{W~yzlzW=T-7+M3Mdh+%-+w_A)=>dM>nsCnBX0^^A~u>hp2f@ zD<38Jr_)XZAJp>e3I3NKKL2v~eEj*l!?{mHw7Djx{s?gwFrR3-BAARW74(1Ce*ZD&~vPFu1L>)C#+-6%FT=JH?Bya(m_zV zBsQ`oNUg)^n)8o<9kO{u#J7R&svHX${rJO=pFYd&_5JzFkCFe0B=9meM&E|a#ZE$% zL?24mxWeVoE$}he@HL3o(wNybRp?_@w#@PNm=&x~s`|>;ADv~Q?AL4(&qj?vfD5ix znyd(GU(lI~TZ;f9E*P^@2p|vq|DHiVEd^@H=s|^n%=rLH+rX8R07mI}I0O@I8-DG+ zQbvnT+ASFLIiGTRaAT2tIrF|97Muhd^j}GFGIG%ev0!oOc0L8sU;zZVU_+O@+=UZ0 z=&#V^kcRJSp$C|}^{1Q^M)7u#2d6y)2Ssof=Ogzla+tuQ<~_H)`jvl>ZWHA_r-8?} z^y?EIlW=3vK6E+vBk_jh&?L7UA$5;*`M zfw$hFcVQejQ4~sw!rH!Vz`n>E)OnWX3lN; z=J(Afgc;oY2kyjvx@<11?O6;wRirdc9`qGY6Ao{pQD*EHZKIxx z3h(fwS|kr(8~H9_OGRIC!=m40WydYW4a-&PN=R6=zij8=qx<+AF?pUwOPdnXTi%p3#kV;6 z{9UdXNk2AqsT4$$Kdu`C+64-K_XCrHC;mK2cl+J-Un7@8$dr!a3i9=@yfzDr-eKwD z7Oo&U>PfVv?3f6BONhHo(EwnjA%@H2uS2ZQ>1R&=3gsM47V_0 zD$w}*uR3bl%GjX1l^+?;eJZOLotOCOg9Hzr#xwtg1v?V4r-ftP-olTqgCRhcNkLic zrvex_{6#w9Ik{~m4Qg2Y?8>j$Z3ZUcEd0?=a;DL*(9W)eSyT97$M>t|xN|LN^0E1P zWEjn<2o@*#lqqYZ48o!cT&G}>xG@fFm)30>zj4(x9rPvgUo8Yn^6%#JEvQ>H0>Nutut>J zg1+<;ZBMSn4!-&QUr(Pt?LSMP{rS_UpT7U)&vG1hcg&~LkH=r$Ga!HZUe@j7r}L*D zK7IZajz|QN>#g$v7(e@d|49PnD}*ku9qhr>?U`|7K|I&|T%SuS$s_;(Ue4rFVMD z9`J!te);s%r$2xCxiM+qVfFqThq@CuehZudbFpX_PbXV`Eue8>NPzI+=di4JIMXR~s+?Njri_3%;)7Qms+$l5| zUl(XxEvwFd@hcsKa6Jq|@>iW{go>yF^>t6zTigSys?PgLh**5^rGG?IraHc7+pPbE z2sk1e;N`|i{SZadei~>3L3Z%p3LBuafyu)$3lIe&S zHg{q*eK=BD5=W!!Ih^`jMkoGzGS~8t41EJ19}&`#;9rbas~9H5_x;aLi|~S$7;s0! z!@?);hp2VlB*$=?3=PfAEIhSzrb@Msgw9egO0d9biAOyvp)B#dQAB0M=UpzHiOH)8 zM3tx>kbHkfMuFYobTSc!1{rV8mpIv+@$XK4B~hBfCj9JFG?5lZ;I6DbYKJU2#P4SD z>~cVi&xh17F^}haFtP9a@16{w2x3a{KQS34GQ`8F0YGE>CS{v2ciFnRC59h1J8?tG z?GByzJaSwLU*?`FPNRj)GrEXDJIH<~zid1f+fExX^|``Cw7aaaQWwi+K;IYn=LCM* zQvt*6^PBcz>T>}z>}5;J+ijE};91I1LymQdK3TouRgrG*?v65lu2%9=DS{9Qx8K;` z4#G{n!#w48QN$o}q}=~pp@9>Zb&7O(BSm6}g`iyL_@LGdC3X9}Tn`h=c)kZy1cC4$ z51$BP%6u>}nUg4WRKO!eBs6Peq@55M#Lt>pUmRvz)qR|DRg^W(F^zH+u^CbRPxe1S z<-E7U%IuWf$Egw>yfK&jBKT!XOsRs%ivQGsi|>-}LOY|K7u&?-FLMDCt!RNXae|o? zN~GXdzKelJX0R|t-29~`FPMvb4_ga=iWPQ)ijGHEEMY;C2Jw+VDX#2H!6ATN^}*YrLK7Tbr}a zhxMkMyS3RbfgNqXh6}v?>V@k2rD;#;UT=LpGNQq5%-*fdS>r4}9@~8`lIccjw|-b! zuhn=hZV3^5Hx1LZUt|5|4cx@EP2e`~d1jHOG;}wRfm$vu*X!Wc7O35J0^F@FP|KDy z>KCZ(Z=zejKrOe%QNKWqIJs!6^A4qaH}6%R_>?l|Hc;S}pT}sRz^$~}qqe|ppEdIK zZQzza!mwYQ!BwY%yLJmb8k_nZGKmz(w|VQB=wwRvzX63@p}8X(4KZBXcs`IT1ZjlG z1?0+OJ))fme39vT4A0brR+U%#eFojcvozR(yr<7)yqT+OdF^i9aqab)1Fyi%#!EMv zjmc;l9gN^<`0x$!A5z`=T6nM0h_P=o-X=^pz1Q@F>QOgP5AO*j=dX7u*OLgl=9_Qi7DzcgVU)>PVlC=pK7DYzcJSl!|q}hQ7`hBbVqQfK1MJ71&%|tKD~BqfBhtkTN6lf}Cwb%3K9D zm4X<~F0d)@;IJvsF_D&{VIju8O}N~^cb~jgN{T=_93)7ykEFkX4s6OyHRu&rhJq8r zmcV8oPTjs+2Rd%?Uj@N2^mV?vB?JedO(J+5*c`JK>%gWMhv8HLo7)kO6p4=H!X7R( zq7@WB9W@1U;bsF?nQ)AKoA4%0xLv2y6AoPb#q|_KT!KUD)(HbmE zL9`*AZ_FtQDaVHe!7=u2!ud&VvgP!IVN=nQAtf4vRbx20@Jka#IK<`_HhIhrR~3F; zQs0bv1v(V?n4Yhpuk%&=HX%6RPR=(f!O7S-8YHmE<9LA07T(CgXV?_jl)r1(6xe+0 zVI!GFU_}O^4=WxxKcC$d$^YO4(2piPkvdNzsvmv#l5!c1i^QhK~jCJL*E?Bl*%hD zvvJeC6Y_g!^TOTbtqG|Ihu45iug8?$*Q0ydpsAPgeNedNbax|>_hz`o1?GLb6~o9I z6ow0l%F4`ZRg~I8k_w-m2$2F;N1-h5>g){p*&b_6{PaSTb_8i1aj{{ zIaO$GjyZ-bZewQD1`qBID64OWzGK*W zAaSfD9!jfhseWkeqIq(ALL7KskM3zbv9Wj86U;e%R7Pzu=u}eqhzFCdITKdPp)12m zo_TD9=*Zk0D7<-`PcA6tG+0o+5E@r|e?hSm>Qm-HV<*<#gYu5@*a=xVQt!CQ`U(hr z=TNuG?v@&??JNbhN2K%nL?c4NvOzC|+x~C1A;soBO*l^o%Tkp+5<-HQ*y}6;hQ<}dw zH-9zE5v4r@?y4jUD81e?hSkeYDW~ps^8^oF6o+W1oacF{P-@um0eTQsKkM59BZ zh~a2~TAdL=H@P*Qq^h~^*FQKnKx7WOJ%@MJp}SqrPrcT-2Rc9e+c;W-;=4>N@2!FU z#43HeY?w$q>$j_G>%A-BI-71wTJQ0eG{O1aQq~Q4qM2_utu?X3S_A!^R<2vhrlCJ? z)dog!W@)Q7fjD^t?@-sbZ8rT7nAn4xS01sWOPCq>WiqJBf5YSN?6LeWWQd9l3 zG&=x&@}YOwmM?34be=f=F^DPkJG4a+X+aMd0$+!?(rfhxgW8KtCM>;8W}9h9v%TnZ z8x4Tii(Z*OXf|Qxjqa}~<}_SUA-bTb`+F2}OmEyD3~Mu#r_Wel*o^!X1zv2%u5O)$ zQb=bQA%NU}ast}mj`mOe(L-0jA^ z4~iRfkGu0`qnjqYnAKpLNDgUHG1mQUYEC_}+?EN&MJ!~jw8vY;(;&CUwU+Pg?YAN5 z%(LhVl_3tyXH|bQSU5TvEXxOJSq~V57{I2?RXxemgl4&@aw{a$ndeqBSX4@d7aHN* z7ghxPN9*)1#e4?K$?|rqqg*!W%g?_Yzl>siPe13EQwNTaOBqlf2hd@TcpqX@N5>jpDf}HbuFVvN%&zn+lS9g_!qhRIQF|Hi(QN zS6T5l8S$fXj*Z6Lr|m{A=N~ z<7GR2#lOS^P7CR?m2rq{t5H>LE4z<^CDJ=7Y#}d2n?Mt%Mz`_ToXQJ?{Z&uyZEpo~ zKU@3wh&Qd-zvvO~sG@mG;uw_LxiDtaK}mJ5dhpvq5(LQw+NN|5=Wp1GpZ8znenaGa zGVI@SLtdc?>R(H&Ar-<(jwluT)DlzIaV_t~e4}j0$vYeQmw)>`)s5#dQ^t?W+C>Wa zz3ilCN#&KWl|M=Ks%t5%2aoW}_hL7m%6@OsI5J(zufz3!c~UQkNtG5_Uj0iX|LG0- zUjv`qLQngPYLv(2QnvcjR)(_3T`j?g9O{Sbc4sgexSa1eTJxTl92;-UWpAry{R(e-+K~jf z*?xt0F0EFX6^`5-vXxd07wv=WEN|N*4hFw+37;RsKDbDK`21!6{r6`HHGT{i`P+tk ztz$Nt>>c)WG=oI;F>wg~-QWG)@BZ+gB8=&q|2}#AhA<>1Ix}@h8ah9$B#xX%vP0!K zICfpyEld=?f+_J4zl{LqntZO{oVW^5v&p_vdM)2 zJL_EArcU-4n#|W{HB;1Q0!o1c`Hdw+JZ=;o_9%xNg}FUAunC$l4Ef_u?r%j7lomg2 z6gQ9z8$U~@9AdOuc7eBN)Ha6ue0N_Uk=?V&B|@Ck$UP+;Q3^1SdA&aBs$Ac^nU9_>d0r? zG(}M_&nl5pko*gGS`XfNkv36PWEDqFOXq1PVo+U=Hz!>@P+Ro<3%&y*(`YzPMOib2 z!^u6DRm53|&{;e7&0$2!@w>NJ4@QB9o&A&$Dw1|?nVKa-KObdsM-HPezGt3h~~PorxQwKGpTOAgSuI?-BF&mkC59<9802LTe;ejwnjuo1tpzsEx5ZvA^!sG>V zy6wU=e>6hv(_s_Q1Y7drUDJ~SyjUJ_)()x}ym^Z_PW5`07q#@PvysA+BiE6_YPng+ z+z8@QZDeU6)>^x^SOnyWxx2i;v zmd>+}o_|K7inU_5BFp|>%p)vq=b9irO2_T5WOa1{e4VVQ;GXX2-K(nG$fpxagcrE` zDB;nvi#K*XvjiN@r|niY`31z{xP|jJXX@1hP3Y*Lpby8BRhjIymBBkI`knDiv>D#c z=BvHx0vDfcisub`!H(dm+q;Q`>%TDp;Iaj2`)@lC_f@E)c?n{T#PULDLAl_7l!m6+ zCaF{FR&n zc&yD<-bYp#xxa<}hS|`4*2I#J5Z?10eM)#wCzc2==J-*(w8`0#P?VBMF=Mw@bw#+*2}_dv}Z+ohcB@~#pc0g|G+@fls*)3Z%E&OOTelWLNf zeE*ddo|Zu^n3HNbi&j%%)%$Eed9Y%90_NNcFR!z6X0d0l*H&doFBsFSHNHs1QQnEQ zUIhbXF;z}H%(hhf&Z#KxU>6#!`x5a8UouFn+GS2KmrFu{4Vk?6bJb*I#3yGrSnaj> z2;n{7(Wiv>bYh9{VvZjrydy!#X*=LN-(*u}{ya!p?uuZ#Wd3PSZSN}hWP@erm4IWf z=+4H4H&Y0CHQOQ+22ht@tAN_agFPcW#S9fO;=#7O>=p_?Q^JN}cF$rXR&aTp*Ap(k zdpQ({ljwbcS7%M*72`mwt4bF@98najaa~svQ zL}BPCT6j=%P!f+l8T&|*jfx4vo*onV4bn;(7aST9XE9SIgFJj*lc6kDg>&VM8l)zO zy>N#$nD<42SBFeQ66^Q~k$l=yByQB1lQW#cMQz#D8&kM^J?oPS%hI&8MLm8nZgaKO z7!n2~)!(TaSh?A)lzgBoKS@?}h4j+qhjyFJ;o|*T%#L10mEILQrRb!iRA-=V{^N)G zHm8Hg(u1N>Z^{%>m2V|nUv0LMT&sr`8O7S_9^WK4NGJ8;3+JD>>N_wrxdf8++1p56qUarWuA>q@0;l&(TTBAL+`oi6 zFo;fKqc?gM3#Ar4_%}xWaPSx@z!3(r&4c^31EX*{=IgYk&)~BZx;eZVmXUnC3-&p{ zT=l}Q)6MDWrcBYz%QH$u^P+aW18L1M(!c&hPMZgQU^x#L)7;?3-&lFgvgOdCNxU*4UaZu9D^I) zJa|VsFbbm__gsPAc*aQs$8<+s;(D8HRoRsZtr5e01#JiBW6+^ofhxB7JvR;RI}J>G9G}os2k`lxJtC;5 z(@6yNqK>_roD&=xJqi{{vWUJaz^Pb0S16fCb3R@v;r?6q`TX<$JpcSj4TNwu2@gJk z)?E~*-cg;IHE7}Dh{3R24CRVB;g<+Oks=SSIYhh;?`@@q9g$3EB*PmSKo+@kR6v&| zkRdAAwmxye#3fhery`o#;*zmR9>E5sEFQz4>RlZ2xTzh3gD3yJK0j`m%d>*wTq|X` z6PWG9NZZFOMk&W0*5Ea4zeropw{MEJ$~vFUD-l_2$qPJH9Y@*tC2OeSO5D#>2b7

h=y{}B#`2cKs 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�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 O?(hEYzy0^0zx#jtiZ1y8 literal 0 HcmV?d00001 diff --git a/Documentation/Full_Documentation.pdf.meta b/Documentation/Full_Documentation.pdf.meta new file mode 100644 index 0000000..015fdb5 --- /dev/null +++ b/Documentation/Full_Documentation.pdf.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 401b1f7968ab1464ea0be1effca2556a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/LICENSE.md b/Documentation/LICENSE.md new file mode 100644 index 0000000..6874e0c --- /dev/null +++ b/Documentation/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 mod.io Proprietary Limited + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Documentation/LICENSE.md.meta b/Documentation/LICENSE.md.meta new file mode 100644 index 0000000..461d6a8 --- /dev/null +++ b/Documentation/LICENSE.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c1dccd53c7d0d77439061db0cf13a76a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation/UPGRADING.md b/Documentation/UPGRADING.md new file mode 100644 index 0000000..7d622e9 --- /dev/null +++ b/Documentation/UPGRADING.md @@ -0,0 +1,356 @@ +# Unity V1 Upgrade Guide +Where the Unity Plugin QuickStart Guide contains information to help you install and setup the new Unity Plugin in your project, this guide exists to assist with upgrading from mod.io Unity V1 to the new mod.io Unity Plugin by offering equivalent examples of the most common functions. + + +## Why Upgrade to the New Plugin? +mod.io Unity Plugin V1 has been deprecated as structural and design decisions have made it impractical to continue maintaining and enhancing with new features and functionality. + +Upgrading to the new mod.io Unity Plugin results in extended support, additional features, and improved user experience. It provides enhanced support for consoles and boasts a new UI, as well as numerous enhancements, enabling you to accomplish more with less code. + +## Core Differences +### Interface +The new mod.io Unity Plugin has a simplified and clearer interface. All core functionality is accessible via `ModIOUnity.cs`, or the asynchronous version `ModIOUnityAsync.cs`, located within the `ModIO` namespace. Additionally, the browser code is contained in `Browser.cs` in the +`ModIOBrowser` namespace. +No more calling functions from multiple static classes depending on the context! + +### Callbacks +All calls into async functions on the new mod.io Unity Plugin provide a single callback parameter with a +`Result` or `ResultAnd` parameter that will **always** be called at the conclusion of the operation. (Async methods return the result struct after an `await` instead.) +This provides a much clearer calling convention and gives a guarantee of one operation completion - one callback invocation, rather than the two callbacks required by async functions in mod.io Unity V1. + +Here is an example of the usage with a callback and an await: +```c# +void CallbackExample() +{ + ModIOUnity.GetMods(filter, (Result result, ModPage modPage)=> + { + if (result.Succeeded()) + { + // Success + } + }); +} + +// OR + +async void AsyncExample() +{ + ResultAnd getMods = await ModIOUnityAsync.GetMods(filter); + + if (getMods.result.Succeeded()) + { + // Success + } +} +``` + +## Initializing the plugin +Initialization in mod.io Unity V1 was handled mostly statically, pulling the details from the `Resources/modio_settings` asset during static initialization. +Optionally, a developer could set the user data directory by calling `UserDataStorage.SetActiveUser()` as seen in the sample below. +```c# +void modioUnityV1Example() +{ + // Optional (Sets the user data directory) + string userProfileIdentifier = "local_game_user_id"; // Local User Account Identifier + UserDataStorage.SetActiveUser(userProfileIdentifier, setActiveUserCallback); +} +``` +Apart from this, there are no initialization possibilities in mod.io Unity V1. + +For the new mod.io Unity Plugin, we have kept an automatic initialization option that pulls the data from the `Resources/mod.io/config` asset, similar to the function of mod.io Unity V1. However, there are also explicit initialization methods and shutdown methods that can be utilized if automatic initialization is disabled in the config asset. +```c# +void InitializationExample() +{ + string userProfileIdentifier = "local_game_user_id"; // Local User Account Identifier + Result result = ModIOUnity.InitializeForUser(userProfileIdentifier, initializationCallback); + // Do work... + ModIOUnity.Shutdown(shutdownCallback); +} +``` +For further information, see the [initialization documentation](https://sdkdocs.mod.io/unity/class_mod_i_o_1_1_mod_i_o_unity.html#a1ed1149bf968635573142b52dbef516b). + +## Getting and Synchronizing Subscription Data +mod.io Unity V1 built the synchronization of an authenticated user's subscription data into the UI code, meaning that a developer not using the sample browser would be responsible for ensuring that the user's subscriptions were kept in agreement with the server. +This has not changed in the new mod.io Unity Plugin, but the process of keeping that data synchronized is much easier, along with fetching the data for the subscribed mods. + +Adding, synchronizing, and retrieving subscription data in mod.io Unity V1 involves chaining multiple calls together. +```c# +void modioUnityV1Example() +{ + int newSubModId = 123; + int newUnsubModId = 456; + + // This call adds the sub to the local cache and queues it for synchronization + UserAccountManagement.SubscribeToMod(newSubModId); + // This call adds the unsub to the local cache and queues it for synchronization + UserAccountManagement.UnsubscribeFromMod(newUnsubModId); + // Push local subscription changes to mod.io servers + UserAccountManagement.PushSubscriptionChanges( + () => { /* chain callback into next section */ }, + (List unsortedErrorList) => { /* error callback code */ }); + + // Fetch remote subscription changes from mod.io servers + UserAccountManagement.PullSubscriptionChanges( + (List newRemoteSubscriptions) => { /* chain callback into next section */ }, + (WebRequestError error) => { /* error callback code */ }); + // Get Mod Profiles for Subscribed Mods + List subscribedModIds = LocalUser.subscribedModIds; + ModManager.GetModProfiles(modIds, + (ModProfile[] modProfiles) => { /* success callback code */ }, + (WebRequestError error) => { /* error callback code */ }); +} +``` + +The new mod.io Unity Plugin streamlines this process by reducing the need for callback chaining, synchronizing immediately for local changes, and removing the need to handle the mod ids. +[FetchUpdates()](https://sdkdocs.mod.io/unity/class_mod_i_o_1_1_mod_i_o_unity.html#aab9e3eb7697f13e4e96273ac50ab79af) is the single synchronization function on the interface, handling all synchronization actions. +```c# +void Example() +{ + int newSubModId = 123; + int newUnsubModId = 456; + + // Pushes a subscribe attempt directly to the server, returning an error on failure + ModIOUnity.SubscribeToMod(newSubModId, + (Result result) => { /* callback code */ }); + // Pushes an unsubscribe attempt directly to the server, returning an error on failure + ModIOUnity.UnsubscribeFromMod(newUnsubModId, + (Result result) => { /* callback code */ }); + + // Synchronizes the local and server data + ModIOUnity.FetchUpdates( + (Result result) => { /* callback code */ }; + // Get Subscribed mod data + SubscribedMod[] subscribedMods = ModIOUnity.GetSubscribedMods(out Result result); +} +``` +Furthermore, the subscribe and unsubscribe operations automatically flag the mod as requiring installation/uninstallation, a responsibility placed on the consumer in mod.io Unity V1. (See below) + +## Listing the User's Installed Mods +Like in mod.io Unity V1, the new mod.io Unity Plugin allows the sharing of installed mods across multiple users to save network traffic and storage space. + +mod.io Unity V1 didn't have a direct method of retrieving the mods installed for the current user. There are a variety of different methods that need to be chained together to retrieve a complete picture of the installed mod data. +```c# +void modioUnityV1Example() +{ + // Retrieves a de-identified list of mod directories for mods the user has "enabled" + bool onlyEnabledMods = true; + ModManager.QueryInstalledModDirectories(onlyEnabledMods, + (List installedModDirectories) => { /* callback code */ }); + + // Retrieves a mapping of mod directories for mods the user has subscribed to + List subscriptions = LocalUser.subscribedModIds; + ModManager.QueryInstalledMod(subscriptions, + (IList> modDirectoryMap) => { /* callback code */ }); + + // Retrieves the data for the installed mods that the user has "enabled" with no directory + bool onlyEnabledMods = true; + ModManager.QueryInstalledModVersions(onlyEnabledMods, + (List installedModVersions) => + { + // map the mod ids to a list + List modIds = installedModVersions.Select(x => x.modId).ToList(); + ModManager.GetModProfiles(modIds, + (ModProfile[] modProfiles) => { /* success callback code */ }, + (WebRequestError error) => { /* error callback code */ }); + }); +} +``` + +The new mod.io Unity Plugin makes this much simpler, giving you all the information in a single call, returning a [UserInstalledMod](https://sdkdocs.mod.io/unity/struct_mod_i_o_1_1_user_installed_mod.html) array (and a `Result`). +```c# +void Example() +{ + UserInstalledMod[] mods = ModIOUnity.GetInstalledModsForUser(out Result result); +} +``` + +## Downloading, Updating and Uninstalling Mods +The new mod.io Unity Plugin has the business rules of "Subscription = install and update" built into it, such that the download, extract, and uninstall processes are managed automatically by the [Mod Management Loop](https://sdkdocs.mod.io/unity/class_mod_i_o_1_1_mod_i_o_unity.html#aabba78ef1b55e60e2334cc1ba6faf1c3), a process that runs asynchronously to detect changes to the subscriptions and automate mod data management. + +mod.io Unity V1 handled the installation and uninstallation of mods in the ModBrowser code, but any developer looking to exclude that code or understand the installation process had a more difficult time. +```c# +void modioUnityV1Example() +{ + /// === Add a new subscription and install === + int newSubModId = 123; + // This call adds the sub to the local cache and queues it for synchronization + UserAccountManagement.SubscribeToMod(newSubModId); + // Push local subscription changes to mod.io servers + UserAccountManagement.PushSubscriptionChanges( + () => { /* chain callback into next section */ }, + (List unsortedErrorList) => { /* error callback code */ }); + // Download and Install all mods (equivalent to new mod.io Unity Plugin) + gameObject.StartCoroutine(ModManager.DownloadAndUpdateMods_Coroutine(LocalUser.subscribedModIds, + () => { /* callback code */ })); + + /// === Remove a subscription and uninstall === + int newUnsubModId = 456; + // This call adds the unsub to the local cache and queues it for synchronization + UserAccountManagement.UnsubscribeFromMod(newUnsubModId); + // Push local subscription changes to mod.io servers + UserAccountManagement.PushSubscriptionChanges( + () => { /* chain callback into next section */ }, + (List unsortedErrorList) => { /* error callback code */ }); + // Uninstall the mod + ModManager.UninstallMod(newUnsubModId, + (bool uninstallSuccess) => { /* callback code */ }); + + // === Fetch remote data and fix installation state === + // Fetch remote subscription changes from mod.io servers + UserAccountManagement.PullSubscriptionChanges( + (List newRemoteSubscriptions) => { /* chain callback into next section */ }, + (WebRequestError error) => { /* error callback code */ }); + // Download and Install all mods (equivalent to new mod.io Unity Plugin) + gameObject.StartCoroutine(ModManager.DownloadAndUpdateMods_Coroutine(LocalUser.subscribedModIds, + () => { /* chain callback into next section */ })); + // Calculate uninstall mods + List modsToUninstall = new List(); + List subscribedModIds = LocalUser.subscribedModIds; + ModManager.QueryInstalledModVersions(subscribedModIds, + (IList> modDirectoryMap) => + { + if(!subscribedModIds.Contains(modDirectoryMap.Key.modId)) + { + modsToUninstall.Add(modDirectoryMap.Key.modId); + } + } + /* chain callback into next section */ + ); + // uninstall mods + foreach(int modId in modsToUninstall) + { + ModManager.UninstallMod((bool uninstallSuccess) => { /* callback code */ }); + } +} +``` +Of note, the uninstall process above, can't account for mods installed by other users on the system. +This is one of the key processes that has been streamlined in the new mod.io Unity Plugin. + +A call to [ModIOUnity.EnableModManagement](https://sdkdocs.mod.io/unity/class_mod_i_o_1_1_mod_i_o_unity.html#aabba78ef1b55e60e2334cc1ba6faf1c3) starts the background process of monitoring for subscription changes, and takes a (nullable) callback for mod management events. This can be disabled at any point with a call to [ModIOUnity.DisableModManagement](https://sdkdocs.mod.io/unity/class_mod_i_o_1_1_mod_i_o_unity.html#a7eda62ae267aa409b6408fd60ed16429). +Any changes invoked locally, and any changes retrieved with [ModIOUnity.FetchUpdates](https://sdkdocs.mod.io/unity/class_mod_i_o_1_1_mod_i_o_unity.html#aab9e3eb7697f13e4e96273ac50ab79af) are automatically queued and actioned. +```c# +void Example() +{ + ModManagementEventDelegate eventDelegate = (ModManagementEventType eventType, ModId modId, Result eventResult) => { /* handle event */}; + + // Begins monitoring for changes and enables downloading/extracting/deleting of mod data + ModIOUnity.EnableModManagement(eventDelegate); + + /// === Add a new subscription and install === + int newSubModId = 123; + // Pushes the subscription to the server and flags for download and installation + ModIOUnity.SubscribeToMod(newSubModId, (Result result) => /* callback code */}); + + /// === Remove a subscription and uninstall === + int newUnsubModId = 456; + // Pushes the unsubcribe action to the server and flags it for uninstallation + ModIOUnity.UnsubscribeFromMod(newUnsubModId, (Result result) => /* callback code */); + + // === Fetch remote data and fix installation state === + // Synchronizes local and server data, flagging install/uninstall operations as required + ModIOUnity.FetchUpdates((Result result) => { /* callback code */ }); + + // Ends monitoring for changes and disables downloading/extracting/deleting of mod data + ModIOUnity.DisableModManagement(); +} +``` +**Note:** The `Result` returned from [ModIOUnity.SubscribeToMod](https://sdkdocs.mod.io/unity/class_mod_i_o_1_1_mod_i_o_unity.html#ad05f5c1fc8b66389cbb11c2f6feff34d) and [ModIOUnity.UnsubscribeFromMod](https://sdkdocs.mod.io/unity/class_mod_i_o_1_1_mod_i_o_unity.html#a68adbece196b850ef361c445d915fb42) indicate the outcome of the subscribe/unsubscribe attempt being sent to the server. For notification of the outcome of an installation/uninstallation operation, the delegate passed to [ModIOUnity.EnableModManagement](https://sdkdocs.mod.io/unity/class_mod_i_o_1_1_mod_i_o_unity.html#aabba78ef1b55e60e2334cc1ba6faf1c3) will be invoked. + +## Authenticating a user +The new Plugin requires a user to be authenticated in order to download, install +and manage mods. The plugin offers email authentication or numerous third party +methods, such as Steam or Xbox. + +### Email Authentication +In the V1 Plugin you can authenticate via email in the following way: +```c# +// TODO: EXAMPLE OF EMAIL AUTH IN V1 +``` +In the new Plugin you can do it like so: +```c# +async void RequestEmailCode() +{ + Result result = await ModIOUnityAsync.RequestAuthenticationEmail("johndoe@gmail.com"); + + if (result.Succeeded()) + { + Debug.Log("Succeeded to send security code"); + } + else + { + Debug.Log("Failed to send security code to that email address"); + } +} + +async void SubmitCode(string userSecurityCode) +{ + Result result = await ModIOUnityAsync.SubmitEmailSecurityCode(userSecurityCode); + + if (result.Succeeded()) + { + Debug.Log("You have successfully authenticated the user"); + } + else + { + Debug.Log("Failed to authenticate the user"); + } +} +``` + +### Third party Authentication +In the V1 Plugin you can authenticate a user with a third party service +like Steam: +```c# +UserAccountManagement.AuthenticateWithSteamEncryptedAppTicket(pTicket, + pcbTicket, + hasUserAcceptedTerms, + onSuccess, + onError); +``` +In the new Plugin you can use the following: +```c# +ModIOUnity.AuthenticateUserViaSteam(token, email, termsHash, callback); +``` +(Note you can use `ModIOUnityAsync` to `await` instead.) + +Be advised that you will need to get the terms of use hash key in order to properly +authenticate. This requires the use of `ModIOUnity.GetTermsOfUse`. +This is to ensure users view and accept the terms of use. + +Here is a complete example getting the TOS hash and Authenticating via Steam: + +```c# +// Use this to cache the TOS we receive +TermsOfUse termsOfUse; + +// This needs to be displayed to the user before they can authenticate +async void DisplayTOS() +{ + ResultAnd tos = await ModIOUnityAsync.GetTermsOfUse(); + + if (tos.result.Succeeded()) + { + // Display the terms of use via a text field + TextField.text = tos.value.termsOfUse; + + // cache the Terms of Use + termsOfUse = tos.value; + } +} + +// If they agree after viewing the TOS you can attempt to authenticate with the TOS hash +async void AgreeAndAuthenticate(string token, string email) +{ + Result result = await ModIOUnityAsync.AuthenticateUserViaSteam(token, email, termsOfUse.hash); + + if (result.Succeeded()) + { + // Succeeded to authenticate via Steam + } +} +``` + +## Need more help? +If you require additional assistance you're welcome to contact us +directly via email or on our Discord channel. Our team can help answer +specific questions about the plugin and provide support. diff --git a/Documentation/UPGRADING.md.meta b/Documentation/UPGRADING.md.meta new file mode 100644 index 0000000..f40f2b2 --- /dev/null +++ b/Documentation/UPGRADING.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a8f403eda942e1540a59cd647b9e063f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor.meta b/Editor.meta new file mode 100644 index 0000000..ee80743 --- /dev/null +++ b/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 84e2c064e277fad4996d90e334c19fe3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/ModIO.EditorCode.meta b/Editor/ModIO.EditorCode.meta new file mode 100644 index 0000000..54b62e2 --- /dev/null +++ b/Editor/ModIO.EditorCode.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 744a482dbac7ccb4f84fe15b6d565f55 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/ModIO.EditorCode/EditorMenu.cs b/Editor/ModIO.EditorCode/EditorMenu.cs new file mode 100644 index 0000000..2a2dbc4 --- /dev/null +++ b/Editor/ModIO.EditorCode/EditorMenu.cs @@ -0,0 +1,77 @@ +#if UNITY_EDITOR +using UnityEngine; +using UnityEditor; + +using ModIO.Implementation; +using ModIO.Implementation.Platform; + +namespace ModIO.EditorCode +{ + + ///

summary + public static class EditorMenu + { + static EditorMenu() + { + new MenuItem("Tools/mod.io/Edit Settings", false, 0); + } + + [MenuItem("Tools/mod.io/Edit Settings", false, 0)] + public static void EditSettingsAsset() + { + var settingsAsset = GetConfigAsset(); + + EditorGUIUtility.PingObject(settingsAsset); + Selection.activeObject = settingsAsset; + } + + + internal static SettingsAsset GetConfigAsset() + { + var settingsAsset = Resources.Load(SettingsAsset.FilePath); + + // if it doesnt exist we create one + if(settingsAsset == null) + { + // create asset + settingsAsset = ScriptableObject.CreateInstance(); + + // ensure the directories exist before trying to create the asset + if(!AssetDatabase.IsValidFolder("Assets/Resources")) + { + AssetDatabase.CreateFolder("Assets", "Resources"); + } + if(!AssetDatabase.IsValidFolder("Assets/Resources/mod.io")) + { + AssetDatabase.CreateFolder("Assets/Resources", "mod.io"); + } + + AssetDatabase.CreateAsset(settingsAsset, $@"Assets/Resources/{SettingsAsset.FilePath}.asset"); + + //create a data representation of the Settings Asset + SerializedObject so = new SerializedObject(settingsAsset); + + //Find properties and apply default values + SerializedProperty serverSettingsProperty = so.FindProperty("serverSettings"); + serverSettingsProperty.FindPropertyRelative("serverURL").stringValue = "https://api.mod.io/v1";; + serverSettingsProperty.FindPropertyRelative("languageCode").stringValue = "en"; + + //Apply new values while ensuring the user cannot use "undo" to erase the initial values. + so.ApplyModifiedPropertiesWithoutUndo(); + + //Grab any asset changes and unload unused assets + AssetDatabase.Refresh(); + } + + return settingsAsset; + } + + [MenuItem("Tools/mod.io/Debug/Clear Data", false, 0)] + public static void ClearStoredData() + { + // Only used for the editor + SystemIOWrapper.DeleteDirectory(EditorDataService.GlobalRootDirectory); + } + } +} +#endif diff --git a/Editor/ModIO.EditorCode/EditorMenu.cs.meta b/Editor/ModIO.EditorCode/EditorMenu.cs.meta new file mode 100644 index 0000000..f5aeda7 --- /dev/null +++ b/Editor/ModIO.EditorCode/EditorMenu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 76a9de76b05249a419395e5d6b50fa7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/ModIO.EditorCode/SettingsAssetEditor.cs b/Editor/ModIO.EditorCode/SettingsAssetEditor.cs new file mode 100644 index 0000000..27ea7bc --- /dev/null +++ b/Editor/ModIO.EditorCode/SettingsAssetEditor.cs @@ -0,0 +1,90 @@ +#if UNITY_EDITOR +using ModIO.Implementation; +using UnityEditor; +using UnityEngine; + +[CustomEditor(typeof(SettingsAsset))] +public class SettingsAssetEditor : Editor +{ + private SerializedProperty serverURL; + private SerializedProperty gameId; + private SerializedProperty gameKey; + private SerializedProperty languageCode; + + private void OnEnable() + { + //get references to SerializedProperties + var serverSettingsProperty = serializedObject.FindProperty("serverSettings"); + serverURL = serverSettingsProperty.FindPropertyRelative("serverURL"); + gameId = serverSettingsProperty.FindPropertyRelative("gameId"); + gameKey = serverSettingsProperty.FindPropertyRelative("gameKey"); + languageCode = serverSettingsProperty.FindPropertyRelative("languageCode"); + } + + public override void OnInspectorGUI() + { + //Grab any changes to the original object data + this.serializedObject.UpdateIfRequiredOrScript(); + + SettingsAsset myTarget = (SettingsAsset)target; + + base.OnInspectorGUI(); + + EditorGUILayout.Space(); + + GUIStyle labelStyle = new GUIStyle(); + labelStyle.alignment = TextAnchor.MiddleCenter; + labelStyle.fontStyle = FontStyle.Bold; + labelStyle.normal.textColor = Color.white; + + EditorGUILayout.LabelField("Server Settings", labelStyle); + if(myTarget.serverSettings.gameId == 0 || string.IsNullOrWhiteSpace(myTarget.serverSettings.gameKey)) + { + EditorGUILayout.HelpBox("Once you've created a game profile on mod.io (or test.mod.io) " + + "you can input the game ID and Key below in order for the plugin " + + "to retrieve mods and information associated to your game.", + MessageType.Info); + } + + EditorGUILayout.PropertyField(serverURL, new GUIContent("Server URL")); + EditorGUILayout.PropertyField(gameId,new GUIContent("Game ID")); + gameKey.stringValue = EditorGUILayout.PasswordField("API Key", gameKey.stringValue); + EditorGUILayout.PropertyField(languageCode, new GUIContent("Language code")); + + + EditorGUILayout.Space(); + EditorGUILayout.Space(); + + EditorGUILayout.BeginHorizontal(); + if(GUILayout.Button("Insert URL for Test API")) + { + serverURL.stringValue = "https://api.test.mod.io/v1"; + + //remove focus from other fields + GUI.FocusControl(null); + } + if(GUILayout.Button("Insert URL for Production API")) + { + serverURL.stringValue = "https://api.mod.io/v1"; + //remove focus from other fields + GUI.FocusControl(null); + } + EditorGUILayout.EndHorizontal(); + + if(GUILayout.Button("Locate ID and API Key")) + { + if(myTarget.serverSettings.serverURL == "https://api.test.mod.io/v1") + { + Application.OpenURL("https://test.mod.io/apikey"); + } + else + { + Application.OpenURL("https://mod.io/apikey"); + } + } + + //Save the new values + this.serializedObject.ApplyModifiedProperties(); + } +} +#endif diff --git a/Editor/ModIO.EditorCode/SettingsAssetEditor.cs.meta b/Editor/ModIO.EditorCode/SettingsAssetEditor.cs.meta new file mode 100644 index 0000000..5b92a00 --- /dev/null +++ b/Editor/ModIO.EditorCode/SettingsAssetEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f25a5dc8d3916e0499601bc8f32a9cfe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/English.txt b/English.txt new file mode 100644 index 0000000..a7d9ec6 --- /dev/null +++ b/English.txt @@ -0,0 +1,576 @@ +# Modio English translation. +# +msgid "" +msgstr "" + +msgid "Build Info" +msgstr "" +"Project-Id-Version: Modio\n" +"POT-Creation-Date: 2022-10-25 03:01\n" +"PO-Revision-Date: 2022-10-25 03:01\n" +"Language-Team: \n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#this is how you comment. Just remember to make it sharp! + +msgid "Play" +msgstr "Play" + +msgid "Mods" +msgstr "Mods" + +msgid "Quit" +msgstr "Quit" + +msgid "Back" +msgstr "Back" + +msgid "Featured mods" +msgstr "Featured mods" + +msgid "Trending" +msgstr "Trending" + +msgid "Highest rated" +msgstr "Highest rated" + +msgid "BROWSE" +msgstr "BROWSE" + +msgid "COLLECTION" +msgstr "COLLECTION" + +msgid "Search & filter" +msgstr "Search & filter" + +msgid "More options" +msgstr "More options" + +msgid "Collection" +msgstr "Collection" + +msgid "Enter keyword" +msgstr "Enter keyword" + +msgid "Check for updates" +msgstr "Check for updates" + +msgid "Filter by:" +msgstr "Filter by:" + +msgid "Subscribed" +msgstr "Subscribed" + +msgid "Refine filter" +msgstr "Refine filter" + +msgid "Mods matching:" +msgstr "Mods matching:" + +msgid "Date submitted" +msgstr "Date submitted" + +msgid "No results found" +msgstr "No results found" + +msgid "Unfortunately we couldn't find any mods matching your search. Let's try different keywords or tags." +msgstr "Unfortunately we couldn't find any mods matching your search. Let's try different keywords or tags." + +msgid "Let's refine your search if you haven't found what you were looking for." +msgstr "Let's refine your search if you haven't found what you were looking for." + +msgid "Mod support by" +msgstr "Mod support by" + +msgid "Search results" +msgstr "Search results" + +msgid "Full description" +msgstr "Full description" + +msgid "Created by:" +msgstr "Created by:" + +msgid "Other categories" +msgstr "Other categories" + +msgid "Cancel" +msgstr "Cancel" + +msgid "Log out from mod.io" +msgstr "Log out from mod.io" + +msgid "Unsubscribe" +msgstr "Unsubscribe" + +msgid "Waiting for response..." +msgstr "Waiting for response..." + +msgid "Submit" +msgstr "Submit" + +msgid "Report content violating the sites Terms of Use or submit a DMCA complaint using the form below. Make sure you include all relevant information and links. If you'd like to report Copyright infringement and are the copyright holder, select 'DMCA' below." +msgstr "Report content violating the sites Terms of Use or submit a DMCA complaint using the form below. Make sure you include all relevant information and links. If you'd like to report Copyright infringement and are the copyright holder, select 'DMCA' below." + +msgid "Email address" +msgstr "Email address" + +msgid "Reason for reporting:" +msgstr "Reason for reporting:" + +msgid "Report a problem" +msgstr "Report a problem" + +msgid "Your email" +msgstr "Your email" + +msgid "Downloading..." +msgstr "Downloading..." + +msgid "No mods are pending downloads." +msgstr "No mods are pending downloads." + +msgid "No mods are pending download." +msgstr "No mods are pending download." + +msgid "Are you sure you would like to uninstall?" +msgstr "Are you sure you would like to uninstall?" + +msgid "No" +msgstr "No" + +msgid "Yes" +msgstr "Yes" + +msgid "Describe the report..." +msgstr "Describe the report..." + +msgid "Generic" +msgstr "Generic" + +msgid "DMCA" +msgstr "DMCA" + +msgid "Rude content" +msgstr "Rude content" + +msgid "Not working" +msgstr "Not working" + +msgid "Illegal content" +msgstr "Illegal content" + +msgid "Stolen content" +msgstr "Stolen content" + +msgid "False information" +msgstr "False information" + +msgid "Other" +msgstr "Other" + +msgid "Next" +msgstr "Next" + +msgid "Done" +msgstr "Done" + +msgid "Notification" +msgstr "Notification" + +msgid "Failed to subscribe" +msgstr "Failed to subscribe" + +msgid "{GetModNameFromId} has been added to the download queue" +msgstr "{GetModNameFromId} has been added to the download queue" + +msgid "Unable to subscribe to '{GetModNameFromId}'" +msgstr "Unable to subscribe to '{GetModNameFromId}'" + +msgid "Unsubscribed" +msgstr "Unsubscribed" + +msgid "{GetNameFromModId} has been removed from your collection" +msgstr "{GetNameFromModId} has been removed from your collection" + +msgid "Rating added" +msgstr "Rating added" + +msgid "Your rating has been added for {Mod}" +msgstr "Your rating has been added for {Mod}" + +msgid "Failed to add rating" +msgstr "Failed to add rating" + +msgid "Failed to submit your rating for {Mod}" +msgstr "Failed to submit your rating for {Mod}" + +msgid "Vote up" +msgstr "Vote up" + +msgid "Vote down" +msgstr "Vote down" + +msgid "Report" +msgstr "Report" + +msgid "Authentication" +msgstr "Authentication" + +msgid "mod.io is a 3rd party utility that provides access to a mod workshop. Choose how you wish to be authenticated." +msgstr "mod.io is a 3rd party utility that provides access to a mod workshop. Choose how you wish to be authenticated." + +msgid "Are you sure you'd like to log out?" +msgstr "Are you sure you'd like to log out?" + +msgid "LogOutMessage" +msgstr "This will log you out of your mod.io account. You can still browse the mods but you will need to log back in to subscribe to a mod. Any ongoing downloads/installations will also be stopped.\n\nDo you wish to continue?" + +msgid "Something went wrong!" +msgstr "Something went wrong!" + +msgid "We were unable to connect to the mod.io server. Check you have a stable internet connection and try again." +msgstr "We were unable to connect to the mod.io server. Check you have a stable internet connection and try again." + +msgid "Terms of use" +msgstr "Terms of use" + +msgid "Email authentication" +msgstr "Email authentication" + +msgid "Once the email is received, enter the provided confidential code. It should be 5 characters long." +msgstr "Once the email is received, enter the provided confidential code. It should be 5 characters long." + +msgid "You are now connected to the mod.io browser. You can now subscribe to mods to use in your game and track them in your Collection." +msgstr "You are now connected to the mod.io browser. You can now subscribe to mods to use in your game and track them in your Collection." + +msgid "That does not appear to be a valid email. Please check your email address and try again." +msgstr "That does not appear to be a valid email. Please check your email address and try again." + +msgid "Invalid email address" +msgstr "Invalid email address" + +msgid "Make sure you entered a valid email address and that you are still connected to the internet before trying again." +msgstr "Make sure you entered a valid email address and that you are still connected to the internet before trying again." + +msgid "Unable to connect to the mod.io server. Please check your internet connection before retrying." +msgstr "Unable to connect to the mod.io server. Please check your internet connection before retrying." + +msgid "Something went wrong" +msgstr "Something went wrong" + +msgid "Invalid code" +msgstr "Invalid code" + +msgid "The code that you entered did not match the one sent to the email address you provided. Please check you entered the code correctly." +msgstr "The code that you entered did not match the one sent to the email address you provided. Please check you entered the code correctly." + +msgid "We were unable to validate your credentials with the mod.io server." +msgstr "We were unable to validate your credentials with the mod.io server." + +msgid "Installed" +msgstr "Installed" + +msgid "Pending..." +msgstr "Pending..." + +msgid "Checking..." +msgstr "Checking..." + +msgid "Collection ({subscribedAndPending.Count})" +msgstr "Collection ({subscribedAndPending.Count})" + +msgid "Downloading" +msgstr "Downloading" + +msgid "Installing" +msgstr "Installing" + +msgid "Log in to Subscribe" +msgstr "Log in to Subscribe" + +msgid "Subscribe" +msgstr "Subscribe" + +msgid "Installing..." +msgstr "Installing..." + +msgid "{seconds} remaining" +msgstr "{seconds} remaining" + +msgid "{BytesPerSecond)}/s" +msgstr "{BytesPerSecond)}/s" + +msgid "{A} of {B}" +msgstr "{A} of {B}" + +msgid "Mod installed" +msgstr "Mod installed" + +msgid "{modname} has finished installing" +msgstr "{modname} has finished installing" + +msgid "Not enough space" +msgstr "Not enough space" + +msgid "{modname} failed to install" +msgstr "{modname} failed to install" + +msgid "Mod installation failed" +msgstr "Mod installation failed" + +msgid "{modname} failed to download" +msgstr "{modname} failed to download" + +msgid "Mod download failed" +msgstr "Mod download failed" + +msgid "Mod delete failed" +msgstr "Mod delete failed" + +msgid "{modname} failed to delete" +msgstr "{modname} failed to delete" + +msgid "Mod updated" +msgstr "Mod updated" + +msgid "{modname} has finished updating" +msgstr "{modname} has finished updating" + +msgid "Mod update failed" +msgstr "Mod update failed" + +msgid "Report content violating the sites Terms of Use or submit a DMCA complaint using the form below. Make sure you include all relevant information and links. If you’d like to report Copyright Infringement and are the Copyright holder, select ‘DMCA’ below."; +msgstr "Report content violating the sites Terms of Use or submit a DMCA complaint using the form below. Make sure you include all relevant information and links. If you’d like to report Copyright Infringement and are the Copyright holder, select ‘DMCA’ below."; + +msgid "Your email may be shared with moderators and the person that posted the allegedly infringing content you are reporting." +msgstr "Your email may be shared with moderators and the person that posted the allegedly infringing content you are reporting." + +msgid "Details of infringement" +msgstr "Details of infringement" + +msgid "To help us process your report, please provide as much detail and evidence as possible." +msgstr "To help us process your report, please provide as much detail and evidence as possible." + +msgid "The mod has been reported. A confirmation email will be sent to you shortly with the details and the moderators of the mod will be notified." +msgstr "The mod has been reported. A confirmation email will be sent to you shortly with the details and the moderators of the mod will be notified." + +msgid "Something went wrong when trying to send your report." +msgstr "Something went wrong when trying to send your report." + +msgid "and {number} other tags" +msgstr "and {number} other tags" + +msgid "You've gone through {number} mods" +msgstr "You've gone through {number} mods" + +msgid "{num} Mods found" +msgstr "{num} Mods found" + +msgid "{num} Mods found for {lastUsedSearchPhrase}" +msgstr "{num} Mods found for {lastUsedSearchPhrase}" + +msgid "A problem occurred" +msgstr "A problem occurred" + +msgid "Error" +msgstr "Error" + +msgid "This textbox is unable to display the input configuration." +msgstr "This textbox is unable to display the input configuration." + +msgid "Queued" +msgstr "Queued" + +msgid "Updating" +msgstr "Updating" + +msgid "Problem occurred" +msgstr "Problem occurred" + +msgid "Ready to install" +msgstr "Ready to install" + +msgid "Uninstalling" +msgstr "Uninstalling" + +msgid "Uninstalled" +msgstr "Uninstalled" + +msgid "Installing (progress}%" +msgstr "Installing (progress}%" + +msgid "Downloading {progress}%" +msgstr "Downloading {progress}%" + +msgid "Updating {progress}%" +msgstr "Updating {progress}%" + +msgid "Waiting to download" +msgstr "Waiting to download" + +msgid "Waiting to install" +msgstr "Waiting to install" + +msgid "Waiting to Update" +msgstr "Waiting to Update" + +msgid "Deleting" +msgstr "Deleting" + +msgid "{subcount} other users" +msgstr "{subcount} other users" + +msgid "Full storage" +msgstr "Full storage" + +msgid "Subscribed mods" +msgstr "Subscribed mods" + +msgid "Mod name" +msgstr "Mod name" + +msgid "File size:" +msgstr "File size:" + +msgid "Last updated:" +msgstr "Last updated:" + +msgid "Release date:" +msgstr "Release date:" + +msgid "Subscribers:" +msgstr "Subscribers:" + +msgid "Search" +msgstr "Search" + +msgid "Clear filter" +msgstr "Clear filter" + +msgid "Log out" +msgstr "Log out" + +msgid "Queue" +msgstr "Queue" + +msgid "Privacy Policy" +msgstr "Privacy Policy" + +msgid "Connect with Epic" +msgstr "Connect with Epic" + +msgid "Connect with GOG" +msgstr "Connect with GOG" + +msgid "Connect with Steam" +msgstr "Connect with Steam" + +msgid "Connect with Xbox" +msgstr "Connect with Xbox" + +msgid "Connect with Switch" +msgstr "Connect with Switch" + +msgid "Connect with email" +msgstr "Connect with email" + +msgid "I agree" +msgstr "I agree" + +msgid "Send code" +msgstr "Send code" + +msgid "Continue browsing" +msgstr "Continue browsing" + +msgid "Most popular" +msgstr "Most popular" + +msgid "Recently added" +msgstr "Recently added" + +msgid "Updated" +msgstr "Updated" + +msgid "Obviously explicit mod" +msgstr "Obviously explicit mod" + +msgid "Authentication completed" +msgstr "Authentication completed" + +msgid "Settings" +msgstr "Settings" + +msgid "Audio" +msgstr "Audio" + +msgid "Game Id:" +msgstr "Game Id:" + +msgid "Api Key:" +msgstr "Api Key:" + +msgid "Production Server Url" +msgstr "Production Server Url" + +msgid "Test Server Url" +msgstr "Test Server Url" + +msgid "Save" +msgstr "Save" + +msgid "Language" +msgstr "Language" + +msgid "Please check your email {email} for your 5 digit code to verify it below." +msgstr "Please check your email {email} for your 5 digit code to verify it below." + +msgid "Code sent" +msgstr "Code sent" + +msgid "Enter code" +msgstr "Enter code" + +msgid "Sort by:" +msgstr "Sort by:" + +msgid "Downloaded" +msgstr "Downloaded" + +msgid "Connect with PlayStation" +msgstr "Connect with PlayStation" + +msgid "Game Id" +msgstr "Game Id" + +msgid "Api Key" +msgstr "Api Key" + +msgid "Game id: {text}" +msgstr "Game id: {text}" + +msgid "Server Url: {text}" +msgstr "Server Url: {text}" + +msgid "Failed to fetch mods" +msgstr "Failed to fetch mods" + +msgid "Retry all failed fetches" +msgstr "Retry all failed fetches" + +msgid "Failed to uninstall" +msgstr "Failed to uninstall" + +msgid "Uninstalled the mod '{name}'" +msgstr "Uninstalled the mod '{name}'" + +msgid "Failed to uninstall the mod '{name}'" +msgstr "Failed to uninstall the mod '{name}'" + +msgid "Uninstall" +msgstr "Uninstall" diff --git a/English.txt.meta b/English.txt.meta new file mode 100644 index 0000000..2513dbc --- /dev/null +++ b/English.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c5dd3fa88a173d14ca72b04e14daf5d4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform.meta b/Platform.meta new file mode 100644 index 0000000..367bab0 --- /dev/null +++ b/Platform.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c3374f1178467e4babecb65a599a7d5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/Editor.meta b/Platform/Editor.meta new file mode 100644 index 0000000..c7d8826 --- /dev/null +++ b/Platform/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 81a3ae5c90c9311469a4be3218ee11bb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/Editor/ModIO.Implementation.Platform.meta b/Platform/Editor/ModIO.Implementation.Platform.meta new file mode 100644 index 0000000..46db853 --- /dev/null +++ b/Platform/Editor/ModIO.Implementation.Platform.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f48476b819890a043becb400490df7ca +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/Editor/ModIO.Implementation.Platform/EditorDataService.cs b/Platform/Editor/ModIO.Implementation.Platform/EditorDataService.cs new file mode 100644 index 0000000..ce85f7e --- /dev/null +++ b/Platform/Editor/ModIO.Implementation.Platform/EditorDataService.cs @@ -0,0 +1,179 @@ +#if UNITY_EDITOR || (MODIO_COMPILE_ALL && UNITY_EDITOR) + +using System.Collections.Generic; +using System.Threading.Tasks; +using UnityEngine; + +#pragma warning disable 1998 // These async functions don't use await! + +namespace ModIO.Implementation.Platform +{ + /// Editor implementation of the data services. + internal class EditorDataService : IUserDataService, IPersistentDataService, ITempDataService + { + /// Root directory for all data services. + public readonly static string GlobalRootDirectory = + $@"{Application.persistentDataPath}/mod.io"; + +#region Data + + /// Root directory for the data service. + string rootDir; + + /// Root directory for the data service. + public string RootDirectory + { + get { + return rootDir; + } + } + +#endregion // Data + +#region Initialization + +/// Init as IUserDataService. + Result IUserDataService.Initialize(string userProfileIdentifier, + long gameId, BuildSettings settings) + { + rootDir = + $"{GlobalRootDirectory}/{gameId.ToString("00000")}/users/{userProfileIdentifier}"; + + Logger.Log(LogLevel.Verbose, "Initialized EditorUserDataService: " + rootDir); + + return ResultBuilder.Success; + } + + /// Init as IPersistentDataService. + Result IPersistentDataService.Initialize(long gameId, + BuildSettings settings) + { + rootDir = + $"{GlobalRootDirectory}/{gameId.ToString("00000")}/data"; + + Logger.Log(LogLevel.Verbose, "Initialized EditorPersistentDataService: " + rootDir); + + return ResultBuilder.Success; + } + + /// Init as ITempDataService. + Result ITempDataService.Initialize(long gameId, BuildSettings settings) + { + rootDir = + $"{GlobalRootDirectory}/{gameId.ToString("00000")}/temp"; + + Logger.Log(LogLevel.Verbose, "Initialized EditorTempDataService: " + rootDir); + + return ResultBuilder.Success; + } + +#endregion // Initialization + +#region Operations + + /// Opens a file stream for reading. + public ModIOFileStream OpenReadStream(string filePath, out Result result) + { + return SystemIOWrapper.OpenReadStream(filePath, out result); + } + + /// Opens a file stream for writing. + public ModIOFileStream OpenWriteStream(string filePath, out Result result) + { + return SystemIOWrapper.OpenWriteStream(filePath, out result); + } + + /// Reads an entire file asynchronously. + public async Task> ReadFileAsync(string filePath) + { + return await SystemIOWrapper.ReadFileAsync(filePath); + } + + /// Reads an entire file asynchronously. + public ResultAnd ReadFile(string filePath) + { + return SystemIOWrapper.ReadFile(filePath); + } + + /// Writes an entire file asynchronously. + public async Task WriteFileAsync(string filePath, byte[] data) + { + return await SystemIOWrapper.WriteFileAsync(filePath, data); + } + + /// Writes an entire file asynchronously. + public Result WriteFile(string filePath, byte[] data) + { + return SystemIOWrapper.WriteFile(filePath, data); + } + + /// Deletes a file. + public Result DeleteFile(string filePath) + { + return SystemIOWrapper.DeleteFileGetResult(filePath); + } + + /// Deletes a directory and its contents recursively. + public Result DeleteDirectory(string directoryPath) + { + return SystemIOWrapper.DeleteDirectory(directoryPath); + } + + public Result MoveDirectory(string directoryPath, string newDirectoryPath) + { + return SystemIOWrapper.MoveDirectory(directoryPath, newDirectoryPath); + } + + public bool TryCreateParentDirectory(string path) + { + return SystemIOWrapper.TryCreateParentDirectory(path, out Result _); + } + + public async Task IsThereEnoughDiskSpaceFor(long bytes) + { + // Not implemented for this platform + return true; + } + +#endregion // Operations + +#region Utility + + /// Determines whether a file exists. + public bool FileExists(string filePath) + { + return SystemIOWrapper.FileExists(filePath, out Result r); + } + + /// Lists all the files in the given directory recursively. + public ResultAnd> ListAllFiles(string directoryPath) + { + return SystemIOWrapper.ListAllFiles(directoryPath); + } + + /// Gets the size and hash of a file. + public ResultAnd<(long fileSize, string fileHash)> GetFileSizeAndHash( + string filePath) + { + return SystemIOWrapper.GetFileSizeAndHash(filePath); + } + + /// Determines whether a directory exists. + public bool DirectoryExists(string directoryPath) + { + return SystemIOWrapper.DirectoryExists(directoryPath); + } + + // /// Determines whether a path can be handled by this data service. + // public bool CanHandlePath(string path) + // { + // // NOTE(@jackson): For EditorDataService, all services handle all paths + // return true; + // } + +#endregion // Utility + } +} +#pragma warning restore 1998 // These async functions don't use await! + +#endif // UNITY_EDITOR || (MODIO_COMPILE_ALL && UNITY_EDITOR) diff --git a/Platform/Editor/ModIO.Implementation.Platform/EditorDataService.cs.meta b/Platform/Editor/ModIO.Implementation.Platform/EditorDataService.cs.meta new file mode 100644 index 0000000..55299c0 --- /dev/null +++ b/Platform/Editor/ModIO.Implementation.Platform/EditorDataService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a3ce0d329fc71834180fd159a9fad534 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/Editor/ModIO.Implementation.Platform/PlatformConfiguration_Editor.cs b/Platform/Editor/ModIO.Implementation.Platform/PlatformConfiguration_Editor.cs new file mode 100644 index 0000000..e1c4ba7 --- /dev/null +++ b/Platform/Editor/ModIO.Implementation.Platform/PlatformConfiguration_Editor.cs @@ -0,0 +1,50 @@ +#if UNITY_EDITOR + +using System.Threading.Tasks; + +namespace ModIO.Implementation.Platform +{ + /// Interface for retrieving platform services. + internal static partial class PlatformConfiguration + { +#if UNITY_EDITOR_WIN + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = "windows"; +#elif UNITY_EDITOR_OSX + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = "mac"; +#elif UNITY_EDITOR_LINUX + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = "linux"; +#endif + public const bool SynchronizedDataJobs = false; + + public static ResultAnd CreateUserDataService( + string userProfileIdentifier, long gameId, BuildSettings settings) + { + IUserDataService service = new EditorDataService(); + Result result = service.Initialize(userProfileIdentifier, gameId, settings); + return ResultAnd.Create(result, service); + } + + /// Creates the persistent data storage service. + public static ResultAnd CreatePersistentDataService( + long gameId, BuildSettings settings) + { + IPersistentDataService service = new EditorDataService(); + Result result = service.Initialize(gameId, settings); + return ResultAnd.Create(result, service); + } + + /// Creates the temp data storage service. + public static ResultAnd CreateTempDataService( + long gameId, BuildSettings settings) + { + ITempDataService service = new EditorDataService(); + Result result = service.Initialize(gameId, settings); + return ResultAnd.Create(result, service); + } + } +} + +#endif // UNITY_EDITOR diff --git a/Platform/Editor/ModIO.Implementation.Platform/PlatformConfiguration_Editor.cs.meta b/Platform/Editor/ModIO.Implementation.Platform/PlatformConfiguration_Editor.cs.meta new file mode 100644 index 0000000..4d3047a --- /dev/null +++ b/Platform/Editor/ModIO.Implementation.Platform/PlatformConfiguration_Editor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4792de27d82dd814dbead682b2c3af4b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/SystemIO.meta b/Platform/SystemIO.meta new file mode 100644 index 0000000..0ef154d --- /dev/null +++ b/Platform/SystemIO.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a2b3ad7def74e14498f39fa27f468d3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/SystemIO/ModIO.Implementation.Platform.meta b/Platform/SystemIO/ModIO.Implementation.Platform.meta new file mode 100644 index 0000000..1161a43 --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 921ec4fcd978cd147b5cf1ffd884111d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/PlatformConfiguration_SystemIO.cs b/Platform/SystemIO/ModIO.Implementation.Platform/PlatformConfiguration_SystemIO.cs new file mode 100644 index 0000000..ff527d6 --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/PlatformConfiguration_SystemIO.cs @@ -0,0 +1,60 @@ +#if (UNITY_STANDALONE || UNITY_ANDROID || UNITY_IOS || UNITY_WSA) && !UNITY_EDITOR + +using System.Threading.Tasks; + +namespace ModIO.Implementation.Platform +{ + /// Interface for retrieving platform services. + internal static partial class PlatformConfiguration + { +#if UNITY_STANDALONE_WIN + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = "windows"; +#elif UNITY_WSA + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = "UWP"; +#elif UNITY_STANDALONE_OSX + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = "mac"; +#elif UNITY_STANDALONE_LINUX + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = "linux"; +#elif UNITY_ANDROID + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = "android"; +#elif UNITY_IOS + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = "ios"; +#endif + public const bool SynchronizedDataJobs = false; + + /// Creates the user data storage service. + public static ResultAnd CreateUserDataService( + string userProfileIdentifier, long gameId, BuildSettings settings) + { + IUserDataService service = new SystemIODataService(); + Result result = service.Initialize(userProfileIdentifier, gameId, settings); + return ResultAnd.Create(result, service); + } + + /// Creates the persistent data storage service. + public static ResultAnd CreatePersistentDataService( + long gameId, BuildSettings settings) + { + IPersistentDataService service = new SystemIODataService(); + Result result = service.Initialize(gameId, settings); + return ResultAnd.Create(result, service); + } + + /// Creates the temp data storage service. + public static ResultAnd CreateTempDataService( + long gameId, BuildSettings settings) + { + ITempDataService service = new SystemIODataService(); + Result result = service.Initialize(gameId, settings); + return ResultAnd.Create(result, service); + } + } +} + +#endif // UNITY_STANDALONE && !UNITY_EDITOR diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/PlatformConfiguration_SystemIO.cs.meta b/Platform/SystemIO/ModIO.Implementation.Platform/PlatformConfiguration_SystemIO.cs.meta new file mode 100644 index 0000000..09d0a52 --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/PlatformConfiguration_SystemIO.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f84a55a707a403c4686e5158e7a01bdb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Android.cs b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Android.cs new file mode 100644 index 0000000..a1619e0 --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Android.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +namespace ModIO.Implementation +{ + /// Windows extension to the SettingsAsset. + internal partial class SettingsAsset : ScriptableObject + { + /// Configuration for Android. + public BuildSettings androidConfiguration; + +#if UNITY_ANDROID && !UNITY_EDITOR + + /// Gets the configuration for Android. + public BuildSettings GetBuildSettings() + { + return this.androidConfiguration; + } + +#endif // UNITY_STANDALONE_WIN && !UNITY_EDITOR + } +} diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Android.cs.meta b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Android.cs.meta new file mode 100644 index 0000000..c90f1ee --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Android.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e027ce138ca5a054aa078d9eccbdfa53 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Standalone.cs b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Standalone.cs new file mode 100644 index 0000000..6c2af5b --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Standalone.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +namespace ModIO.Implementation +{ + /// standalone extension to the SettingsAsset. + internal partial class SettingsAsset : ScriptableObject + { + /// Configuration for Windows. + public BuildSettings standaloneConfiguration; + +#if (UNITY_STANDALONE || UNITY_WSA) && !UNITY_EDITOR + + /// Gets the configuration for standalone. + public BuildSettings GetBuildSettings() + { + return this.standaloneConfiguration; + } + +#endif // UNITY_STANDALONE && !UNITY_EDITOR + } +} diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Standalone.cs.meta b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Standalone.cs.meta new file mode 100644 index 0000000..49be983 --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_Standalone.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 12da22907d4670b499ab1a9e29276124 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_iOS.cs b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_iOS.cs new file mode 100644 index 0000000..0b268bd --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_iOS.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +namespace ModIO.Implementation +{ + /// iOS extension to the SettingsAsset. + internal partial class SettingsAsset : ScriptableObject + { + /// Configuration for iOS. + public BuildSettings iosConfiguration; + +#if UNITY_IOS && !UNITY_EDITOR + + /// Gets the configuration for iOS. + public BuildSettings GetBuildSettings() + { + return this.iosConfiguration; + } + +#endif // UNITY_STANDALONE_WIN && !UNITY_EDITOR + } +} diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_iOS.cs.meta b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_iOS.cs.meta new file mode 100644 index 0000000..313af23 --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/SettingsAsset_iOS.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 36426914fbd4cec429cfa340aafcb424 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/SystemIODataService.cs b/Platform/SystemIO/ModIO.Implementation.Platform/SystemIODataService.cs new file mode 100644 index 0000000..f1495e8 --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/SystemIODataService.cs @@ -0,0 +1,281 @@ +#if UNITY_STANDALONE || UNITY_ANDROID || UNITY_IOS || (MODIO_COMPILE_ALL && UNITY_EDITOR) || UNITY_WSA + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using UnityEngine; + +#pragma warning disable 1998 // These async functions don't use await! + +namespace ModIO.Implementation.Platform +{ + /// SystemIO implementation of the various data services. + internal class SystemIODataService : IUserDataService, IPersistentDataService, ITempDataService + { +#region Directories +#if UNITY_STANDALONE_WIN + + /// Root directory for persistent data. + public static readonly string PersistentDataRootDirectory = + Environment.GetEnvironmentVariable("public") + @"/mod.io"; + + /// Root directory for User Specific data. + public readonly static string UserRootDirectory = + Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"/mod.io"; + +#else + /// Root directory for persistent data. + public static readonly string PersistentDataRootDirectory = + $"{Application.persistentDataPath}/mod.io"; + + /// Root directory for User Specific data. + public readonly static string UserRootDirectory = + $"{Application.persistentDataPath}/UserData/mod.io"; +#endif + + /// Root directory for Temporary data. + public readonly static string TempRootDirectory = Application.temporaryCachePath; + + /// File path for the global settings file. + public static readonly string GlobalSettingsFilePath = + $"{UserRootDirectory}/globalsettings.json"; + +#endregion + +#region Data + /// Global Settings data structure. + [Serializable] + internal struct GlobalSettingsFile + { + public string RootLocalStoragePath; + } + + /// Root directory for the data service. + string rootDir; + + /// Root directory for the data service. + public string RootDirectory + { + get { + return rootDir; + } + } + +#endregion // Data + +#region Initialization + + /// Init as IUserDataService. + Result IUserDataService.Initialize(string userProfileIdentifier, + long gameId, BuildSettings settings) + { + // TODO(@jackson): Make valid userProfileIdentifier + + rootDir = $"{UserRootDirectory}/{gameId.ToString("00000")}/{userProfileIdentifier}"; + Result result = SystemIOWrapper.CreateDirectory(rootDir); + + if(result.Succeeded()) + { + Logger.Log(LogLevel.Verbose, + "Initialized SystemIODataService for User Data: " + rootDir); + } + else + { + Logger.Log(LogLevel.Error, "Failed to initialize SystemIODataService for User Data. " + + $"\n.rootDirectory={rootDir} " + + $"\n.result:[{result.code.ToString("00000")}]"); + + result = ResultBuilder.Create(ResultCode.Init_UserDataFailedToInitialize); + } + + return result; + } + + + /// Init as IPersistentDataService. + Result IPersistentDataService.Initialize(long gameId, + BuildSettings settings) + { + // Default root directory + rootDir = $"{PersistentDataRootDirectory}/{gameId.ToString()}"; + // If standalone PC look for a user override root directory +#if UNITY_STANDALONE || UNITY_WSA + string desiredRootDir = rootDir; + Result result; + + ResultAnd settingsRead = SystemIOWrapper.ReadFile(GlobalSettingsFilePath); + result = settingsRead.result; + + GlobalSettingsFile gsData; + + var userDataPath = UserData.instance?.rootLocalStoragePath; + if(!string.IsNullOrEmpty(userDataPath)) + { + Logger.Log( + LogLevel.Verbose, + "RootLocalStoragePath loaded from existing user.json" + + $"\ndirectory={userDataPath}"); + desiredRootDir = userDataPath; + } + else if(result.Succeeded() + && IOUtil.TryParseUTF8JSONData(settingsRead.value, out gsData, out result)) + { + Logger.Log( + LogLevel.Verbose, + "RootLocalStoragePath loaded from existing globalsettings.json" + + $"\ndirectory={gsData.RootLocalStoragePath}"); + desiredRootDir = $"{gsData.RootLocalStoragePath}/{gameId.ToString()}"; + } + else if(result.code == ResultCode.IO_FileDoesNotExist + || result.code == ResultCode.IO_DirectoryDoesNotExist) + { + gsData = new GlobalSettingsFile + { + RootLocalStoragePath = PersistentDataRootDirectory, + }; + + byte[] fileData = IOUtil.GenerateUTF8JSONData(gsData); + + // ignore the result + SystemIOWrapper.WriteFile(GlobalSettingsFilePath, fileData); + + Logger.Log(LogLevel.Verbose, + "RootLocalStoragePath written to new globalsettings.json"); + } + else // something else happened... + { + string message = + $"Unable to initialize the persistent data service. globalsettings.json could" + + $" not be parsed to load in the root data directory. FilePath: " + + $"{GlobalSettingsFilePath} - Result: [{result.code.ToString()}]"; + Logger.Log(LogLevel.Error, message); + + return result; + } + + rootDir = desiredRootDir; +#endif + + Logger.Log(LogLevel.Verbose, + "Initialized SystemIODataService for Persistent Data: " + rootDir); + + return ResultBuilder.Success; + } + + /// Init as ITempDataService. + Result ITempDataService.Initialize(long gameId, BuildSettings settings) + { + // TODO(@jackson): Test dir creation + rootDir = $@"{TempRootDirectory}/{gameId.ToString()}"; + + Logger.Log(LogLevel.Verbose, + "Initialized SystemIODataService for Temp Data: " + rootDir); + + return ResultBuilder.Success; + } + +#endregion // Initialization + +#region Operations + + /// Opens a file stream for reading. + public ModIOFileStream OpenReadStream(string filePath, out Result result) + { + return SystemIOWrapper.OpenReadStream(filePath, out result); + } + + /// Opens a file stream for writing. + public ModIOFileStream OpenWriteStream(string filePath, out Result result) + { + return SystemIOWrapper.OpenWriteStream(filePath, out result); + } + + /// Reads an entire file asynchronously. + public async Task> ReadFileAsync(string filePath) + { + return await SystemIOWrapper.ReadFileAsync(filePath); + } + + /// Reads an entire file asynchronously. + public ResultAnd ReadFile(string filePath) + { + return SystemIOWrapper.ReadFile(filePath); + } + + + /// Writes an entire file asynchronously. + public async Task WriteFileAsync(string filePath, byte[] data) + { + return await SystemIOWrapper.WriteFileAsync(filePath, data); + } + + /// Writes an entire file asynchronously. + public Result WriteFile(string filePath, byte[] data) + { + return SystemIOWrapper.WriteFile(filePath, data); + } + + /// Deletes a file + public Result DeleteFile(string filePath) + { + return SystemIOWrapper.DeleteFileGetResult(filePath); + } + + /// Deletes a directory and its contents recursively. + public Result DeleteDirectory(string directoryPath) + { + return SystemIOWrapper.DeleteDirectory(directoryPath); + } + + public Result MoveDirectory(string directoryPath, string newDirectoryPath) + { + return SystemIOWrapper.MoveDirectory(directoryPath, newDirectoryPath); + } + + public bool TryCreateParentDirectory(string path) + { + return SystemIOWrapper.TryCreateParentDirectory(path, out Result _); + } + + public async Task IsThereEnoughDiskSpaceFor(long bytes) + { + // Not implemented for this platform + return true; + } + +#endregion // Operations + +#region Utility + + /// Determines whether a file exists. + public bool FileExists(string filePath) + { + return SystemIOWrapper.FileExists(filePath, out Result r); + } + + /// Gets the size and hash of a file. + public ResultAnd<(long fileSize, string fileHash)> GetFileSizeAndHash( + string filePath) + { + return SystemIOWrapper.GetFileSizeAndHash(filePath); + } + + /// Determines whether a directory exists. + public bool DirectoryExists(string directoryPath) + { + return SystemIOWrapper.DirectoryExists(directoryPath); + } + + /// Lists all the files in the given directory recursively. + public ResultAnd> ListAllFiles(string directoryPath) + { + return SystemIOWrapper.ListAllFiles(directoryPath); + } + +#endregion // Utility + } +} + +#pragma warning restore 1998 // These async functions don't use await! + +#endif // UNITY_STANDALONE_WIN || (MODIO_COMPILE_ALL && UNITY_EDITOR) diff --git a/Platform/SystemIO/ModIO.Implementation.Platform/SystemIODataService.cs.meta b/Platform/SystemIO/ModIO.Implementation.Platform/SystemIODataService.cs.meta new file mode 100644 index 0000000..a6aa1f5 --- /dev/null +++ b/Platform/SystemIO/ModIO.Implementation.Platform/SystemIODataService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 989759afb9f7dbf4d8e1e1005aa50b36 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/README.md b/README.md new file mode 100644 index 0000000..50bf666 --- /dev/null +++ b/README.md @@ -0,0 +1,274 @@ +mod.io +# mod.io Unity Plugin v2023.5.12 +[![License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/modio/modio-unity/blob/master/LICENSE) +[![Discord](https://img.shields.io/discord/389039439487434752.svg?label=Discord&logo=discord&color=7289DA&labelColor=2C2F33)](https://discord.mod.io) +[![Master docs](https://img.shields.io/badge/docs-master-green.svg)](https://github.com/modio/modio-unity-v2/wiki) +[![Unity 3D](https://img.shields.io/badge/Unity-2019.4+-lightgrey.svg)](https://unity3d.com) + +Welcome to the mod.io Unity Engine plugin repository. It allows game developers to host and automatically install user-created mods in their games which use **Unity 2019.4** or newer. It provides a UI for mod discovery, installation and collection management, and a C# interface which connects to the [mod.io REST API](https://docs.mod.io). + +## Watch the video tutorial +mod.io + +## Platform Support + +|Platform | Support | +| ------------- | ------- | +|Windows | ✔ | +|Windows (GDK) | ✔ [Contact us](#game-studios-and-publishers) | +|Nintendo Switch| ✔ [Contact us](#game-studios-and-publishers) | +|XBox (GDK) | ✔ [Contact us](#game-studios-and-publishers) | +|PlayStation 4 | ✔ [Contact us](#game-studios-and-publishers) | +|PlayStation 5 | ✔ [Contact us](#game-studios-and-publishers) | +|Linux | ✔ | +|macOS | ✔ | + +### Git Repository or .unitypackage +You can import the plugin directly from the [Unity Asset Store](https://assetstore.unity.com/packages/tools/integration/mod-browser-manager-by-mod-io-138866), or by downloading the package directly from the [Releases page](https://github.com/modio/modio-unity/releases). If you have any previous versions of the plugin installed, it is highly recommended to delete them before importing a newer version. + +Alternatively, you can download an archive of the code using GitHub's download feature and place it in the Assets/Plugins directory within your Unity project. + +## Getting started + +1. Set up your [game profile on mod.io](https://mod.io/g/add) (or our [private test environment](https://test.mod.io/g/add)) to get your game ID and API key. +2. Add the plugin to your project using the installation instructions above. +3. Ensure you dont have any conflicting libraries by going to Assets/Plugins/mod.io/ThirdParty to remove any libraries you may already have in your project (such as JsonNet). +4. Restart unity to ensure it recognises the new assembly definitions. +5. Go to Tools > mod.io > Edit Settings to locate the config file. +6. Select the config file and use the inspector to assign your game ID and API key in server settings (Make sure to deselect the config file before using playmode in the editor. A known unity bug can cause the editor to crash in 2019-2021). +7. Setup complete! Join us [on Discord](https://discord.mod.io) if you have any questions or need help. + +## Setting up the Browser UI + +If you do not wish to create your own UI implementation you can use our default UI that comes built in to the plugin. Examples of how the UI looks are provided below. (If you dont wish to use the UI it is safe to delete the UI folder located at Assets/Plugins/mod.io/UI) + +1. Follow the steps above to setup the config. +2. Navigate to the ModIOBrowser prefab at Assets/Plugins/mod.io/UI/Examples and drag it into your scene. +3. Use the ModIOBrowser.Browser.OpenBrowser() method to open the browser in your scene. + `ModIOBrowser.Browser.OpenBrowser(null)` +4. The Browser UI is now setup! + +![Example mod browser](https://assetstorev1-prd-cdn.unity3d.com/package-screenshot/a7f9360d-4837-4d6e-b5cb-db5544a27b8c_orig.png) +![Example mod collection](https://assetstorev1-prd-cdn.unity3d.com/package-screenshot/b37c33d6-aaa1-49c5-a6fd-c4ae18627bd2_orig.png) + +## Authentication +In the current version of the plugin it is required that a user session is authenticated. Either via email or through another third party, such as Steam or Google. The process is fairly simply. Examples can be found below. + + +## Usage +below are a couple examples for some of the common usages of the plugin. Such as initialising, authenticating, enabling automatic downloads and installs, and getting a few mods from the mod.io server. + +All of the methods required to use the plugin can be found in ModIOUnity.cs. If you prefer using async methods over callbacks you can alternatively use ModIOUnityAsync.cs to use an async variation of the same methods. + +### Initialise the plugin +```c# +void Example() +{ + Result result ModIOUnity.InitializeForUser("ExampleUser"); + + if (result.Succeeded()) + { + Debug.Log("Initialised plugin"); + } + else + { + Debug.Log("Failed to initialise plugin"); + { +} +``` + +### Get the user's installed mods +```c# +void Example() +{ + UserInstalledMod[] mods = ModIOUnity.GetInstalledModsForUser(out Result result); + + foreach(UserInstalledMod mod in mods) + { + // This is the location of the installed mod + string directory = mod.directory; + } +} +``` + +### Enable automatic mod downloads and installs +```c# +void Example() +{ + Result result = ModIOUnity.EnableModManagement(ModManagementDelegate); + + if (result.Succeeded()) + { + Debug.Log("Enabled mod management"); + } + else + { + Debug.Log("Failed to enable mod management"); + { +} + +// The following method will get invoked whenever an event concerning mod management occurs +void ModManagementDelegate(ModManagementEventType eventType, ModId modId, Result result) +{ + Debug.Log("a mod management event of type " + eventType.ToString() + " has been invoked"); +} +``` + +### Authenticate a user +In the current version of the plugin it is required that a user session is authenticated in order to subscribe and download mods. You can accomplish this with an email address or through another third party service, such as Steam or Google. Below is an example of how to do this from an email address provided by the user. A security code will be sent to their email account and can be used to authenticate (The plugin will cache the session token to avoid having to re-authenticate every time they run the application). +```c# +async void RequestEmailCode() +{ + Result result = await ModIOUnityAsync.RequestAuthenticationEmail("johndoe@gmail.com"); + + if (result.Succeeded()) + { + Debug.Log("Succeeded to send security code"); + } + else + { + Debug.Log("Failed to send security code to that email address"); + } +} + +async void SubmitCode(string userSecurityCode) +{ + Result result = await ModIOUnityAsync.SubmitEmailSecurityCode(userSecurityCode); + + if (result.Succeeded()) + { + Debug.Log("You have successfully authenticated the user"); + } + else + { + Debug.Log("Failed to authenticate the user"); + } +} +``` + +### Get Mod profiles from the mod.io server +```c# +async void Example() +{ + // create a filter to retreive the first ten mods for your game + SearchFilter filter = new SearchFilter(); + filter.SetPageIndex(0); + filter.SetPageSize(10); + + ResultAnd response = await ModIOUnityAsync.GetMods(filter); + + if (response.result.Succeeded()) + { + Debug.Log("ModPage has " + response.value.modProfiles.Length + " mods"); + } + else + { + Debug.Log("failed to get mods"); + } +} +``` + +## Submitting mods +You can also submit mods directly from the plugin. Refer to the documentation for methods such as `ModIOUnity.CreateModProfile` and `ModIOUnity.UploadModfile`. + +Users can also submit mods directly from the mod.io website by going to your game profile page. Simply create an account and upload mods directly. + +### Adding a mod +Here we go through the mod addition flow. Generate Token, Create Mod Profile, and Upload Mod File +```c# +public async void CreateMod() +{ + //token used to create mod profile + var token = ModIOUnity.GenerateCreationToken(); + + //Mod profile specifics + ModProfileDetails modDetails = new ModProfileDetails + { + logo = GetTexture(),//the texture you will use for this mod's logo + summary = "A brief summary of the mod.", + name = "Mod Name" + }; + + //create the mod profile + var createResultAnd = await ModIOUnityAsync.CreateModProfile(token, modDetails); + if(!createResultAnd.result.Succeeded()) + return;//create mod unsuccessful + + //Points to a folder where all mod files are located (folder cannot be empty) + ModfileDetails modFile = new ModfileDetails + { + modId = createResultAnd.value, + directory = "files/mods/mod_123" + }; + + //upload the file to the mod profile + var result = await ModIOUnityAsync.UploadModfile(modFile); + if(result.Succeeded()) + { + //Upload file successful! + } +} +``` + +### Loading mods +Here is an example that grabs all mods installed for the current user, finds the png files in the mod's directory if they are tagged as a "Texture" and then loads them into a Texture2D asset. +```c# +public void LoadModExample() +{ + UserInstalledMod[] mods = ModIOUnity.GetInstalledModsForUser(out Result result); + if (result.Succeeded()) + { + foreach(var mod in mods) + { + //Tags are USER defined strings for a game and are setup in the web portal. + string textureTag = "Texture"; + + string directoryWithInstalledMod = mod.directory; + + //Optionally, you may want to use tags to help you determine the files to look for in an installed mod folder + if(!mod.modProfile.tags.Contains(textureTag)) + { + //Get all files in a directory + string[] filePaths = System.IO.Directory.GetFiles(directoryWithInstalledMod); + foreach(var path in filePaths) + { + //Find .png files so that we can convert them into textures + if(path.EndsWith(".png")) + { + Texture2D tex = new Texture2D(1024, 1024); + + //Load a texture from directory + tex.LoadImage(File.ReadAllBytes(path)); + + //Now you can replace the current texture in your game with the new one + } + } + } + } + } +} +``` + +## Dependencies +The [mod.io](https://mod.io) Unity Plugin requires the functionality of two other open-source Unity plugins to run. These are included as libraries in the UnityPackage in the `Assets/Plugins/mod.io/ThirdParty` directory: +* Json.Net for improved Json serialization. ([GitHub Repo](https://github.com/SaladLab/Json.Net.Unity3D) || [Unity Asset Store Page](https://assetstore.unity.com/packages/tools/input-management/json-net-for-unity-11347)) +* SharpZipLib to zip and unzip transmitted files. ([GitHub Repo](https://github.com/icsharpcode/SharpZipLib)) + +## Benefits +mod.io offers the same core functionality as Steamworks Workshop (1 click mod installs in-game), plus mod hosting, moderation and all of the critical pieces needed. Where we differ is our approach to modding and the flexibility a REST API offers. For example: + +* We make mods cross platform accessible. That means users can upload a mod on PC and someone else can play it on the Xbox, for example. +* Our API is not dependent on a client, platform or SDK, allowing you to run mod.io in many places such as your homepage and launchers. +* Designing a good mod browsing UI is hard, our plugin ships with a UI built in to save you a lot of effort and help your mods stand out. +* We don’t apply rules globally, so if you want to enable patronage, sales or other experimental features, reach out to discuss. +* Our platform is built by the super experienced ModDB.com team and is continually improving for your benefit. +* Your community can consume the mod.io API to build modding fan sites or discord bots if they want. + +## Game studios and Publishers +If you need assistance with 1st party approvals, or require a private, white-label UGC solution. [Contact us](mailto:developers@mod.io) to discuss. + +## Contributions Welcome +Our Unity plugin is public and open source. Game developers are welcome to utilize it directly, to add support for mods in their games, or fork it for their games customized use. Want to make changes to our plugin? Submit a pull request with your recommended changes to be reviewed. + +## Other Repositories +Our aim with [mod.io](https://mod.io), is to provide an [open modding API](https://docs.mod.io). You are welcome to [view, fork and contribute to our other codebases](https://github.com/modio) in use. diff --git a/README.md.meta b/README.md.meta new file mode 100644 index 0000000..844bc4a --- /dev/null +++ b/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0b5b24cf5cec44c1284d31353ef6b7e2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime.meta b/Runtime.meta new file mode 100644 index 0000000..5ced4b9 --- /dev/null +++ b/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0d5e8eb8e5519ac4bb74722fc5054c52 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Classes.meta b/Runtime/Classes.meta new file mode 100644 index 0000000..74c9aba --- /dev/null +++ b/Runtime/Classes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: efd179a07ccf747858b8042222d749ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Classes/CreationToken.cs b/Runtime/Classes/CreationToken.cs new file mode 100644 index 0000000..77f4941 --- /dev/null +++ b/Runtime/Classes/CreationToken.cs @@ -0,0 +1,15 @@ + +namespace ModIO +{ + /// + /// This is used with creating new mod profiles. Using a token ensures you dont + /// create duplicate profiles. + /// + /// + /// + /// + public class CreationToken + { + string creationTokenFileHash; + } +} diff --git a/Runtime/Classes/CreationToken.cs.meta b/Runtime/Classes/CreationToken.cs.meta new file mode 100644 index 0000000..44e6969 --- /dev/null +++ b/Runtime/Classes/CreationToken.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ba4e3b57fd304c248b64f98fb80c28b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Classes/ModIoWebRequest.cs b/Runtime/Classes/ModIoWebRequest.cs new file mode 100644 index 0000000..44ef3b0 --- /dev/null +++ b/Runtime/Classes/ModIoWebRequest.cs @@ -0,0 +1,20 @@ +using UnityEngine.Networking; + +namespace ModIO +{ + class ModIoWebRequest : IModIoWebRequest + { + public UnityWebRequest unityWebRequest; + public ModIoWebRequest(UnityWebRequest unityWebRequest) + { + this.unityWebRequest = unityWebRequest; + } + + public bool isDone => unityWebRequest.isDone; + public ulong downloadedBytes => unityWebRequest.downloadedBytes; + public float downloadProgress => unityWebRequest.downloadProgress; + public float uploadProgress => unityWebRequest.uploadProgress; + public ulong uploadedBytes => unityWebRequest.uploadedBytes; + public string GetResponseHeader(string name) => unityWebRequest.GetResponseHeader(name); + } +} diff --git a/Runtime/Classes/ModIoWebRequest.cs.meta b/Runtime/Classes/ModIoWebRequest.cs.meta new file mode 100644 index 0000000..b50ba52 --- /dev/null +++ b/Runtime/Classes/ModIoWebRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3e0465a29c7b4a44da022839bfd2eebd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Classes/ModProfileDetails.cs b/Runtime/Classes/ModProfileDetails.cs new file mode 100644 index 0000000..abdcdcb --- /dev/null +++ b/Runtime/Classes/ModProfileDetails.cs @@ -0,0 +1,117 @@ +using JetBrains.Annotations; +using UnityEngine; + +namespace ModIO +{ + /// + /// Use this class to fill out the details of a Mod Profile that you'd like to create or edit. + /// If you're submitting this via CreateModProfile you must assign values to logo, name and + /// summary, otherwise the submission will be rejected (All fields except modId are optional if + /// submitting this via EditModProfile) + /// + /// + /// + public class ModProfileDetails + { + /// + /// Make sure to set this field when submitting a request to Edit a Mod Profile + /// + [CanBeNull] + public ModId? modId; + + /// + /// Whether this mod will appear as public or hidden. + /// + [CanBeNull] + public bool? visible; + + /// + /// Image file which will represent your mods logo. Must be gif, jpg or png format and + /// cannot exceed 8MB in filesize. Dimensions must be at least 512x288 and we recommend + /// you supply a high resolution image with a 16 / 9 ratio. mod.io will use this image to + /// make three thumbnails for the dimensions 320x180, 640x360 and 1280x720 + /// + [CanBeNull] + public Texture2D logo; + + /// + /// Image files that will be included in the mod profile details. + /// + [CanBeNull] + public Texture2D[] images; + + /// + /// Name of your mod + /// + [CanBeNull] + public string name; + + /// + /// Path for the mod on mod.io. For example: https://gamename.mod.io/mod-name-id-here. + /// If no name_id is specified the will be used. For example: 'Stellaris + /// Shader Mod' will become 'stellaris-shader-mod'. Cannot exceed 80 characters + /// + [CanBeNull] + public string name_id; + + /// + /// Summary for your mod, giving a brief overview of what it's about. + /// Cannot exceed 250 characters. + /// + /// This field must be assigned when submitting a new Mod Profile + [CanBeNull] + public string summary; + + /// + /// Detailed description for your mod, which can include details such as 'About', 'Features', + /// 'Install Instructions', 'FAQ', etc. HTML supported and encouraged + /// + [CanBeNull] + public string description; + + /// + /// Official homepage for your mod. Must be a valid URL + /// + [CanBeNull] + public string homepage_url; + + /// + /// This will create a cap on the number of subscribers for this mod. Set to 0 to allow + /// for infinite subscribers. + /// + [CanBeNull] + public int? maxSubscribers; + + /// + /// This is a Bitwise enum so you can assign multiple values + /// + /// + [CanBeNull] + public ContentWarnings? contentWarning; + + /// + /// Your own custom metadata that can be uploaded with the mod profile. (This is for the + /// entire mod profile, a unique metadata field can be assigned to each modfile as well) + /// + /// + /// the metadata has a maximum size of 50,000 characters. + [CanBeNull] + public string metadata; + + /// + /// The tags this mod profile has. Only tags that are supported by the parent game can be + /// applied. (Invalid tags will be ignored) + /// + [CanBeNull] + public string[] tags; + + /// + /// Select which interactions players can have with your mod. + /// 0 = None + /// 1 = Ability to comment (default) + /// ? = Add the options you want together, to enable multiple options + /// + [CanBeNull] + public CommunityOptions? communityOptions = CommunityOptions.AllowCommenting; + } +} diff --git a/Runtime/Classes/ModProfileDetails.cs.meta b/Runtime/Classes/ModProfileDetails.cs.meta new file mode 100644 index 0000000..c8d9bf0 --- /dev/null +++ b/Runtime/Classes/ModProfileDetails.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 53c35a7e14679461da7ae7ae3d48de5b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Classes/ModfileDetails.cs b/Runtime/Classes/ModfileDetails.cs new file mode 100644 index 0000000..f17970c --- /dev/null +++ b/Runtime/Classes/ModfileDetails.cs @@ -0,0 +1,33 @@ +namespace ModIO +{ + public class ModfileDetails + { + /// + /// ModId of the mod that you wish to upload the modfile to. (Must be assigned) + /// + public ModId? modId; + + /// + /// The directory containing all of the files that makeup the mod. The directory and all of + /// its contents will be compressed and uploaded when submitted via + /// ModIOUnity.UploadModfile. + /// + public string directory; + + /// + /// the changelog for this file version of the mod. + /// + public string changelog; + + /// + /// The version number of this modfile as a string (eg 0.2.11) + /// + public string version; + + /// + /// Your own custom metadata that can be uploaded with the modfile. + /// + /// the metadata has a maximum size of 50,000 characters. + public string metadata; + } +} diff --git a/Runtime/Classes/ModfileDetails.cs.meta b/Runtime/Classes/ModfileDetails.cs.meta new file mode 100644 index 0000000..2a70245 --- /dev/null +++ b/Runtime/Classes/ModfileDetails.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 659f194b2859e4b1b9b872e38b814e9e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Classes/ProgressHandle.cs b/Runtime/Classes/ProgressHandle.cs new file mode 100644 index 0000000..021ed1a --- /dev/null +++ b/Runtime/Classes/ProgressHandle.cs @@ -0,0 +1,51 @@ + +namespace ModIO +{ + + /// + /// A ProgressHandle can only be used to monitor the progress of an operation and cannot be + /// used to cancel or suspend ongoing operations. + /// The OperationType enum field specifies what type of operation this handle is for. + /// The Progress field can be used to get the percentage (0.0 - 1.0) of the progress. + /// The Completed and Failed fields can be used to determine if the operation is complete and + /// whether or not it failed. + /// + public partial class ProgressHandle + { + /// + /// The ModId of the mod that this operation pertains to. + /// + public ModId modId { get; internal set; } + + /// + /// The type of operation being performed, eg. Download, Upload, Install + /// + public ModManagementOperationType OperationType { get; internal set; } + + /// + /// The progress of the operation being performed, float range from 0.0f - 1.0f + /// + + public float Progress { get; internal set; } + + /// + /// The average number of bytes being processed per second by the operation + /// (Updated every 10 milliseconds) + /// + /// Only applicable to Download and Upload operations + public long BytesPerSecond { get; internal set; } + + /// + /// Is set to True when the operation has finished + /// + /// If an operation fails then Completed will still be True, therefore it is + /// recommended to check Failed as well + public bool Completed { get; internal set; } + + /// + /// Is set to True if the operation encounters an error or is cancelled before completion + /// + public bool Failed { get; internal set; } + + } +} diff --git a/Runtime/Classes/ProgressHandle.cs.meta b/Runtime/Classes/ProgressHandle.cs.meta new file mode 100644 index 0000000..55f69c4 --- /dev/null +++ b/Runtime/Classes/ProgressHandle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 512b5411823246a459649aa471d181ec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Classes/Report.cs b/Runtime/Classes/Report.cs new file mode 100644 index 0000000..6eab083 --- /dev/null +++ b/Runtime/Classes/Report.cs @@ -0,0 +1,50 @@ +using JetBrains.Annotations; +using ModIO.Implementation; + +namespace ModIO +{ + /// + /// Used in conjunction with ModIOUnity.Report() to send a report to the mod.io server for a + /// specific mod. + /// + public class Report + { + /// + /// convenience constructor for making a report. All of the parameters are mandatory to make + /// a successful report. + /// + /// the id of the mod being reported + /// the type of report + /// explanation of the issue being reported + /// user reporting the issue + /// user email address + public Report(ModId modId, ReportType type, [NotNull] string summary, [NotNull] string user, + [NotNull] string contactEmail) + { + id = modId; + this.type = type; + resourceType = ReportResourceType.Mods; + this.summary = summary; + this.user = user; + this.contactEmail = contactEmail; + } + + public long? id; + public string summary; + public ReportType? type; + public ReportResourceType? resourceType; + public string user; + public string contactEmail; + + public bool CanSend() + { + if(id == null || summary == null || type == null || resourceType == null || user == null + || contactEmail == null) + { + return false; + } + + return true; + } + } +} diff --git a/Runtime/Classes/Report.cs.meta b/Runtime/Classes/Report.cs.meta new file mode 100644 index 0000000..f27e00a --- /dev/null +++ b/Runtime/Classes/Report.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f379df30a2d4340e78cb8215278c8087 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Classes/ResultAnd.cs b/Runtime/Classes/ResultAnd.cs new file mode 100644 index 0000000..40f544f --- /dev/null +++ b/Runtime/Classes/ResultAnd.cs @@ -0,0 +1,9 @@ +namespace ModIO +{ + /// Convenience wrapper for essentially a Tuple. + public class ResultAnd + { + public Result result; + public T value; + } +} diff --git a/Runtime/Classes/ResultAnd.cs.meta b/Runtime/Classes/ResultAnd.cs.meta new file mode 100644 index 0000000..114cd63 --- /dev/null +++ b/Runtime/Classes/ResultAnd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c8a4d8a00c7a04448fb3f4535d15fcb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Classes/SearchFilter.cs b/Runtime/Classes/SearchFilter.cs new file mode 100644 index 0000000..054841a --- /dev/null +++ b/Runtime/Classes/SearchFilter.cs @@ -0,0 +1,142 @@ +using System.Collections.Generic; +using ModIO.Implementation; + +namespace ModIO +{ + /// + /// Used to build a filter that is sent with requests for retrieving mods. + /// + /// + /// + public class SearchFilter + { + bool hasPageIndexBeenSet = false; + bool hasPageSizeBeenSet = false; + +#region Endpoint Parameters + // These are for internal use. Do not use + internal string sortFieldName = string.Empty; + internal bool isSortAscending = true; + internal SortModsBy sortBy = SortModsBy.DateSubmitted; + internal int pageIndex; + internal int pageSize; + internal List searchPhrases = new List(); + internal List tags = new List(); + internal List users = new List(); +#endregion + /// + /// Adds a phrase into the filter to be used when filtering mods in a request. + /// + /// the string to be added to the filter + public void AddSearchPhrase(string phrase) + { + searchPhrases.Add(phrase); + } + + /// + /// Adds a tag to be used in filtering mods for a request. + /// + /// the tag to be added to the filter + /// + /// + public void AddTag(string tag) + { + tags.Add(tag); + } + + /// + /// Determines what category mods should be sorted and returned by. eg if the category + /// SortModsBy.Downloads was used, then the results would be returned by the number of + /// downloads. Depending on the Ascending or Descending setting, it will start or end with + /// mods that have the highest or lowest number of downloads. + /// + /// the category to sort the request + /// + public void SortBy(SortModsBy category) + { + sortBy = category; + } + + /// + /// Determines the order of the results being returned. eg should results be filtered from + /// highest to lowest, or lowest to highest. + /// + /// + public void SetToAscending(bool isAscending) + { + isSortAscending = isAscending; + } + + /// + /// Sets the zero based index of the page. eg if there are 1,000 results based on the filter + /// settings provided, and the page size is 100. Setting this to 1 will return the mods from + /// 100-200. Whereas setting this to 0 will return the first 100 results. + /// + /// + /// + public void SetPageIndex(int pageIndex) + { + this.pageIndex = pageIndex; + hasPageIndexBeenSet = true; + } + + /// + /// Sets the maximum page size of the request. eg if there are 50 results and the index is + /// set to 0. If the page size is set to 10 you will receive the first 10 results. If the + /// page size is set to 100 you will only receive the total 50 results, because there are + /// no more to be got. + /// + /// + /// + public void SetPageSize(int pageSize) + { + this.pageSize = pageSize; + hasPageSizeBeenSet = true; + } + + /// + /// Adds a specific user to the filter, so that mods that were not created by the user + /// (or other users added to the filter) will not be returned. + /// + /// Id of the user to add + /// + public void AddUser(long userId) + { + users.Add(userId); + } + + /// + /// You can use this method to check if a search filter is setup correctly before using it + /// in a GetMods request. + /// + /// + /// true if the filter is valid + /// + /// + public bool IsSearchFilterValid(out Result result) + { + bool paginationSet = hasPageIndexBeenSet && hasPageSizeBeenSet; + + // TODO Check for illegal characters in search phrase? + + // TODO Check if tags are correct? Or will they just get ignored? + // ^ Perhaps log a warning if non-fatal + + if(!paginationSet) + { + result = ResultBuilder.Create(ResultCode.InvalidParameter_PaginationParams); + Logger.Log( + LogLevel.Error, + "The pagination parameters haven't been set for this filter. Make sure to " + + "use SetPageIndex(int) and SetPageSize(int) before using a filter."); + } + else + { + result = ResultBuilder.Success; + return true; + } + + return false; + } + } +} diff --git a/Runtime/Classes/SearchFilter.cs.meta b/Runtime/Classes/SearchFilter.cs.meta new file mode 100644 index 0000000..532c67e --- /dev/null +++ b/Runtime/Classes/SearchFilter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f2021348b1f04f4ab94d910875a2ca3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Delegates.meta b/Runtime/Delegates.meta new file mode 100644 index 0000000..e89557e --- /dev/null +++ b/Runtime/Delegates.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5bd9f3586ab7e48e38cff5ce28fa3f83 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Delegates/LogMessageDelegate.cs b/Runtime/Delegates/LogMessageDelegate.cs new file mode 100644 index 0000000..36d17e4 --- /dev/null +++ b/Runtime/Delegates/LogMessageDelegate.cs @@ -0,0 +1,6 @@ +namespace ModIO +{ + /// Logging delegate that can be assigned via + /// ModIOUnity.SetLogMessageDelegate. + public delegate void LogMessageDelegate(LogLevel logLevel, string logMessage); +} diff --git a/Runtime/Delegates/LogMessageDelegate.cs.meta b/Runtime/Delegates/LogMessageDelegate.cs.meta new file mode 100644 index 0000000..aff44ab --- /dev/null +++ b/Runtime/Delegates/LogMessageDelegate.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9a08eef9005834be2b700500d86ce153 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Delegates/ModManagementEventDelegate.cs b/Runtime/Delegates/ModManagementEventDelegate.cs new file mode 100644 index 0000000..60d5c7d --- /dev/null +++ b/Runtime/Delegates/ModManagementEventDelegate.cs @@ -0,0 +1,8 @@ +namespace ModIO +{ + /// + /// A delegate that gets invoked each time a new ModManagement event happens (download, install, + /// subscribe, etc) + /// + public delegate void ModManagementEventDelegate(ModManagementEventType eventType, ModId modId, Result eventResult); +} diff --git a/Runtime/Delegates/ModManagementEventDelegate.cs.meta b/Runtime/Delegates/ModManagementEventDelegate.cs.meta new file mode 100644 index 0000000..ed4ec91 --- /dev/null +++ b/Runtime/Delegates/ModManagementEventDelegate.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0eaf0c980d8d34cd391be6f8e9a24a9c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums.meta b/Runtime/Enums.meta new file mode 100644 index 0000000..473b715 --- /dev/null +++ b/Runtime/Enums.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce205fed6c9721c46b37813456e2d136 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/AuthenticationServiceProvider.cs b/Runtime/Enums/AuthenticationServiceProvider.cs new file mode 100644 index 0000000..c0ffc84 --- /dev/null +++ b/Runtime/Enums/AuthenticationServiceProvider.cs @@ -0,0 +1,101 @@ +namespace ModIO +{ + public enum AuthenticationServiceProvider + { + Steam, + Epic, + GOG, + Itchio, + Oculus, + Xbox, + Switch, + Discord, + Google, + PlayStation + } + + public static class AuthenticationServiceProviderExtensions + { + public static string GetProviderName(this AuthenticationServiceProvider provider) + { + string providerName = ""; + + switch(provider) + { + case AuthenticationServiceProvider.Steam: + providerName = "steamauth"; + break; + case AuthenticationServiceProvider.Epic: + providerName = "epicgamesauth"; + break; + case AuthenticationServiceProvider.GOG: + providerName = "galaxyauth"; + break; + case AuthenticationServiceProvider.Itchio: + providerName = "itchioauth"; + break; + case AuthenticationServiceProvider.Oculus: + providerName = "oculusauth"; + break; + case AuthenticationServiceProvider.Xbox: + providerName = "xboxauth"; + break; + case AuthenticationServiceProvider.Switch: + providerName = "switchauth"; + break; + case AuthenticationServiceProvider.Discord: + providerName = "discordauth"; + break; + case AuthenticationServiceProvider.Google: + providerName = "googleauth"; + break; + case AuthenticationServiceProvider.PlayStation: + providerName = "psnauth"; + break; + } + + return providerName; + } + + public static string GetTokenFieldName(this AuthenticationServiceProvider provider) + { + string tokenFieldName = ""; + + switch(provider) + { + case AuthenticationServiceProvider.Steam: + tokenFieldName = "appdata"; + break; + case AuthenticationServiceProvider.Epic: + tokenFieldName = "access_token"; + break; + case AuthenticationServiceProvider.GOG: + tokenFieldName = "appdata"; + break; + case AuthenticationServiceProvider.Itchio: + tokenFieldName = "itchio_token"; + break; + case AuthenticationServiceProvider.Oculus: + tokenFieldName = "access_token"; + break; + case AuthenticationServiceProvider.Xbox: + tokenFieldName = "xbox_token"; + break; + case AuthenticationServiceProvider.Switch: + tokenFieldName = "id_token"; + break; + case AuthenticationServiceProvider.Discord: + tokenFieldName = "discord_token"; + break; + case AuthenticationServiceProvider.Google: + tokenFieldName = "id_token"; + break; + case AuthenticationServiceProvider.PlayStation: + tokenFieldName = "auth_code"; + break; + } + + return tokenFieldName; + } + } +} diff --git a/Runtime/Enums/AuthenticationServiceProvider.cs.meta b/Runtime/Enums/AuthenticationServiceProvider.cs.meta new file mode 100644 index 0000000..0410273 --- /dev/null +++ b/Runtime/Enums/AuthenticationServiceProvider.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2cd07bd55f7414834861cc53e6ff71e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/AvatarSize.cs b/Runtime/Enums/AvatarSize.cs new file mode 100644 index 0000000..6aaa5ed --- /dev/null +++ b/Runtime/Enums/AvatarSize.cs @@ -0,0 +1,9 @@ +namespace ModIO +{ + public enum AvatarSize + { + Original, + Thumbnail_50x50, + Thumbnail_100x100, + } +} diff --git a/Runtime/Enums/AvatarSize.cs.meta b/Runtime/Enums/AvatarSize.cs.meta new file mode 100644 index 0000000..40720f0 --- /dev/null +++ b/Runtime/Enums/AvatarSize.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2d07e6567b7f23245b120b2fc24b4318 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/CommunityOptions.cs b/Runtime/Enums/CommunityOptions.cs new file mode 100644 index 0000000..8ac3ac9 --- /dev/null +++ b/Runtime/Enums/CommunityOptions.cs @@ -0,0 +1,9 @@ +namespace ModIO +{ + [System.Flags] + public enum CommunityOptions + { + None = 0x00, + AllowCommenting = 0x01, + } +} diff --git a/Runtime/Enums/CommunityOptions.cs.meta b/Runtime/Enums/CommunityOptions.cs.meta new file mode 100644 index 0000000..86d5551 --- /dev/null +++ b/Runtime/Enums/CommunityOptions.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 31af2c9ee133484da3727f896cd63462 +timeCreated: 1668471780 \ No newline at end of file diff --git a/Runtime/Enums/ContentWarnings.cs b/Runtime/Enums/ContentWarnings.cs new file mode 100644 index 0000000..6e4e38b --- /dev/null +++ b/Runtime/Enums/ContentWarnings.cs @@ -0,0 +1,13 @@ + +namespace ModIO +{ + [System.Flags] + public enum ContentWarnings + { + None = 0x00, + Alcohol = 0x01, + Drugs = 0x02, + Violence = 0x04, + Explicit = 0x08, + } +} diff --git a/Runtime/Enums/ContentWarnings.cs.meta b/Runtime/Enums/ContentWarnings.cs.meta new file mode 100644 index 0000000..f7e244d --- /dev/null +++ b/Runtime/Enums/ContentWarnings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: abab4b6d23d354a7f8fbb406bc55d6a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/LogLevel.cs b/Runtime/Enums/LogLevel.cs new file mode 100644 index 0000000..f3a11b8 --- /dev/null +++ b/Runtime/Enums/LogLevel.cs @@ -0,0 +1,15 @@ +namespace ModIO +{ + /// + /// The logging level of the plugin. Used in BuildSettings to determine which log messages to + /// ignore or display. + /// + public enum LogLevel + { + None = -1, + Error = 0, + Warning = 1, + Message = 2, + Verbose = 3, + } +} diff --git a/Runtime/Enums/LogLevel.cs.meta b/Runtime/Enums/LogLevel.cs.meta new file mode 100644 index 0000000..e94c42e --- /dev/null +++ b/Runtime/Enums/LogLevel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 35ddf0b45c9d94a4487c0dc108dea7ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/ModManagementEventType.cs b/Runtime/Enums/ModManagementEventType.cs new file mode 100644 index 0000000..0520b39 --- /dev/null +++ b/Runtime/Enums/ModManagementEventType.cs @@ -0,0 +1,19 @@ + +namespace ModIO +{ + public enum ModManagementEventType + { + InstallStarted, + Installed, + InstallFailed, + DownloadStarted, + Downloaded, + DownloadFailed, + UninstallStarted, + Uninstalled, + UninstallFailed, + UpdateStarted, + Updated, + UpdateFailed + } +} diff --git a/Runtime/Enums/ModManagementEventType.cs.meta b/Runtime/Enums/ModManagementEventType.cs.meta new file mode 100644 index 0000000..1485c5b --- /dev/null +++ b/Runtime/Enums/ModManagementEventType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2a6c786ff040140a989bdeb8b976e8ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/ModManagementOperationType.cs b/Runtime/Enums/ModManagementOperationType.cs new file mode 100644 index 0000000..776faeb --- /dev/null +++ b/Runtime/Enums/ModManagementOperationType.cs @@ -0,0 +1,14 @@ + +namespace ModIO +{ + public enum ModManagementOperationType + { + None_AlreadyInstalled, + None_ErrorOcurred, + Install, + Download, + Uninstall, + Update, + Upload + } +} diff --git a/Runtime/Enums/ModManagementOperationType.cs.meta b/Runtime/Enums/ModManagementOperationType.cs.meta new file mode 100644 index 0000000..ddf70f7 --- /dev/null +++ b/Runtime/Enums/ModManagementOperationType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 288caa29cdab64ff69896aa044b04c59 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/ModRating.cs b/Runtime/Enums/ModRating.cs new file mode 100644 index 0000000..9ddbdc5 --- /dev/null +++ b/Runtime/Enums/ModRating.cs @@ -0,0 +1,9 @@ +namespace ModIO +{ + public enum ModRating + { + Positive = 1, + Negative = -1, + None = 0 + } +} diff --git a/Runtime/Enums/ModRating.cs.meta b/Runtime/Enums/ModRating.cs.meta new file mode 100644 index 0000000..e32474a --- /dev/null +++ b/Runtime/Enums/ModRating.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 84e1db4e2e527cc4db6298f2232ca956 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/ModStatus.cs b/Runtime/Enums/ModStatus.cs new file mode 100644 index 0000000..192ac4b --- /dev/null +++ b/Runtime/Enums/ModStatus.cs @@ -0,0 +1,9 @@ +namespace ModIO +{ + public enum ModStatus + { + Accepted = 0, + NotAccepted = 1, + Deleted = 3 + } +} diff --git a/Runtime/Enums/ModStatus.cs.meta b/Runtime/Enums/ModStatus.cs.meta new file mode 100644 index 0000000..16351fe --- /dev/null +++ b/Runtime/Enums/ModStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 87c74fd6b4a57a24fbd720d5aff0da61 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/OculusDevice.cs b/Runtime/Enums/OculusDevice.cs new file mode 100644 index 0000000..60d5e0a --- /dev/null +++ b/Runtime/Enums/OculusDevice.cs @@ -0,0 +1,8 @@ +namespace ModIO +{ + public enum OculusDevice + { + Rift, + Quest + } +} diff --git a/Runtime/Enums/OculusDevice.cs.meta b/Runtime/Enums/OculusDevice.cs.meta new file mode 100644 index 0000000..aba4ad5 --- /dev/null +++ b/Runtime/Enums/OculusDevice.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 00f6c1dae2b144195a5bcf94483589a4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/PlayStationEnvironment.cs b/Runtime/Enums/PlayStationEnvironment.cs new file mode 100644 index 0000000..048ccab --- /dev/null +++ b/Runtime/Enums/PlayStationEnvironment.cs @@ -0,0 +1,9 @@ +namespace ModIO +{ + public enum PlayStationEnvironment + { + spint = 1, + prodqa = 8, + np = 256 + } +} diff --git a/Runtime/Enums/PlayStationEnvironment.cs.meta b/Runtime/Enums/PlayStationEnvironment.cs.meta new file mode 100644 index 0000000..ae533e1 --- /dev/null +++ b/Runtime/Enums/PlayStationEnvironment.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 197a1d776cdcef94f9741d91f4134e5e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/ReportType.cs b/Runtime/Enums/ReportType.cs new file mode 100644 index 0000000..4eb466f --- /dev/null +++ b/Runtime/Enums/ReportType.cs @@ -0,0 +1,14 @@ +namespace ModIO +{ + public enum ReportType + { + Generic = 0, + DMCA = 1, + NotWorking = 2, + RudeContent = 3, + IllegalContent = 4, + StolenContent = 5, + FalseInformation = 6, + Other = 7 + } +} diff --git a/Runtime/Enums/ReportType.cs.meta b/Runtime/Enums/ReportType.cs.meta new file mode 100644 index 0000000..80f8281 --- /dev/null +++ b/Runtime/Enums/ReportType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f00cf6f82d024bba91af8b5d19a4bdd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/SortModsBy.cs b/Runtime/Enums/SortModsBy.cs new file mode 100644 index 0000000..37a1ad6 --- /dev/null +++ b/Runtime/Enums/SortModsBy.cs @@ -0,0 +1,20 @@ + +namespace ModIO +{ + /// + /// Category to be used in the SearchFilter for determining how mods should be filtered in a + /// request. + /// + /// + /// + /// + public enum SortModsBy + { + Name, + Rating, + Popular, + Downloads, + Subscribers, + DateSubmitted + } +} diff --git a/Runtime/Enums/SortModsBy.cs.meta b/Runtime/Enums/SortModsBy.cs.meta new file mode 100644 index 0000000..9e132f0 --- /dev/null +++ b/Runtime/Enums/SortModsBy.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b18c7bbaf9d2743499999f8f8015f731 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/SubscribedModStatus.cs b/Runtime/Enums/SubscribedModStatus.cs new file mode 100644 index 0000000..dcf51d7 --- /dev/null +++ b/Runtime/Enums/SubscribedModStatus.cs @@ -0,0 +1,22 @@ +namespace ModIO +{ + /// + /// The current state of a subscribed mod. Useful for checking whether or not a mod has been + /// installed yet or if there was a problem trying to download/install it. + /// + /// + public enum SubscribedModStatus + { + Installed, + WaitingToDownload, + WaitingToInstall, + WaitingToUpdate, + WaitingToUninstall, + Downloading, + Installing, + Uninstalling, + Updating, + ProblemOccurred, + None, + } +} diff --git a/Runtime/Enums/SubscribedModStatus.cs.meta b/Runtime/Enums/SubscribedModStatus.cs.meta new file mode 100644 index 0000000..fec653e --- /dev/null +++ b/Runtime/Enums/SubscribedModStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 474df4ea9da59d54e93b507e0aac35d7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Enums/UserPortal.cs b/Runtime/Enums/UserPortal.cs new file mode 100644 index 0000000..ae2392a --- /dev/null +++ b/Runtime/Enums/UserPortal.cs @@ -0,0 +1,23 @@ +namespace ModIO +{ + /// + /// Values representing the valid User Portals that mod.io works with. + /// Used when setting up BuildSettings. + /// + /// + public enum UserPortal + { + None = 0, + Apple, + Discord, + EpicGamesStore, + GOG, + Google, + itchio, + Nintendo, + Oculus, + PlayStationNetwork, + Steam, + XboxLive, + } +} diff --git a/Runtime/Enums/UserPortal.cs.meta b/Runtime/Enums/UserPortal.cs.meta new file mode 100644 index 0000000..af5bc5e --- /dev/null +++ b/Runtime/Enums/UserPortal.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 35b10b3b5873411429ace1e0e40fb85a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Interfaces.meta b/Runtime/Interfaces.meta new file mode 100644 index 0000000..3d99dc9 --- /dev/null +++ b/Runtime/Interfaces.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cfe070a7791e6be42bb4030ffcec1335 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Interfaces/IModIoWebRequest.cs b/Runtime/Interfaces/IModIoWebRequest.cs new file mode 100644 index 0000000..6eda457 --- /dev/null +++ b/Runtime/Interfaces/IModIoWebRequest.cs @@ -0,0 +1,12 @@ +namespace ModIO +{ + public interface IModIoWebRequest + { + bool isDone { get; } + ulong downloadedBytes { get; } + ulong uploadedBytes { get; } + float downloadProgress { get; } + float uploadProgress { get; } + string GetResponseHeader(string name); + } +} diff --git a/Runtime/Interfaces/IModIoWebRequest.cs.meta b/Runtime/Interfaces/IModIoWebRequest.cs.meta new file mode 100644 index 0000000..2fd39fa --- /dev/null +++ b/Runtime/Interfaces/IModIoWebRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 03ccd149c8359f94d91fd5e865459fc6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation.meta b/Runtime/ModIO.Implementation.meta new file mode 100644 index 0000000..df8a8ab --- /dev/null +++ b/Runtime/ModIO.Implementation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 650d80a33c143424585dd35ea5aa335f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes.meta b/Runtime/ModIO.Implementation/Classes.meta new file mode 100644 index 0000000..2347f63 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0ce8789101e6d34984cae94b93116ab +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/CompressOperationBase.cs b/Runtime/ModIO.Implementation/Classes/CompressOperationBase.cs new file mode 100644 index 0000000..4537713 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/CompressOperationBase.cs @@ -0,0 +1,85 @@ +using System; +using System.IO; +using System.Threading.Tasks; +using ICSharpCode.SharpZipLib.Zip; +using JetBrains.Annotations; +using UnityEngine; + +namespace ModIO.Implementation +{ + abstract internal class CompressOperationBase : IModIOZipOperation + { + private const bool sizeLimitReached = false; + protected bool cancel; + + protected ProgressHandle progressHandle; + protected Task> _operation; + + protected CompressOperationBase(ProgressHandle progressHandle) + { + this.progressHandle = progressHandle; + } + + public Task GetOperation() => _operation; + + public virtual void Cancel() { } + + public void Dispose() + { + _operation?.Dispose(); + } + + public virtual Task> Compress() + { + throw new NotImplementedException(); + } + + protected async Task CompressStream(string entryName, Stream fileStream, ZipOutputStream zipStream) + { + ZipEntry newEntry = new ZipEntry(entryName); + + zipStream.PutNextEntry(newEntry); + + long max = fileStream.Length; + byte[] data = new byte[4096]; + if (fileStream.CanSeek) + { + fileStream.Seek(0, SeekOrigin.Begin); + } + while(fileStream.Position < fileStream.Length) + { + // TODO @Jackson ensure ReadAsync and WriteAsync are + // implemented on all filestream wrappers + int size = await fileStream.ReadAsync(data, 0, data.Length); + if(size > 0) + { + await zipStream.WriteAsync(data, 0, size); + if(progressHandle != null) + { + // This is only the progress for the current entry + progressHandle.Progress = zipStream.Position / (float)max; + } + } + else + { + break; + } + } + + zipStream.CloseEntry(); + } + + + protected ResultAnd Abort(ResultAnd resultAnd, [CanBeNull] string details) + { + Logger.Log(LogLevel.Verbose, + $"FAILED COMPRESSION [{resultAnd.result.code}] {details}"); + + resultAnd.result = sizeLimitReached + ? ResultBuilder.Create(ResultCode.IO_FileSizeTooLarge) + : ResultBuilder.Create(ResultCode.Internal_OperationCancelled); + + return resultAnd; + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/CompressOperationBase.cs.meta b/Runtime/ModIO.Implementation/Classes/CompressOperationBase.cs.meta new file mode 100644 index 0000000..f35d10d --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/CompressOperationBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09a785b229520ab4aa9003a0e53cb18c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/CompressOperationDirectory.cs b/Runtime/ModIO.Implementation/Classes/CompressOperationDirectory.cs new file mode 100644 index 0000000..1f68f71 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/CompressOperationDirectory.cs @@ -0,0 +1,93 @@ +using System.IO; +using System.Threading.Tasks; +using ICSharpCode.SharpZipLib.Zip; +using JetBrains.Annotations; + +namespace ModIO.Implementation +{ + + + /// + /// Acts as a wrapper to handle a zip extraction operation. Can be cached for cancelling, + /// pausing, etc + /// + + internal class CompressOperationDirectory : CompressOperationBase + { + //theres a card to fix this + + private string directory; + + public CompressOperationDirectory(string directory, [CanBeNull] ProgressHandle progressHandle = null) + : base(progressHandle) + { + this.directory = directory; + } + + + public override async Task> Compress() + { + Logger.Log(LogLevel.Verbose, $"COMPRESS STARTED [{directory}]"); + + ResultAnd resultAnd = new ResultAnd(); + resultAnd.value = new MemoryStream(); + + using(ZipOutputStream zipStream = new ZipOutputStream(resultAnd.value)) + { + zipStream.SetLevel(3); + int folderOffset = directory.Length + (directory.EndsWith("\\") ? 0 : 1); + + //loop this across the directory, and set up the filestream etc + var directories = DataStorage.IterateFilesInDirectory(directory); + + foreach(var dir in directories) + { + if(dir.result.Succeeded() && !cancel && !ModIOUnityImplementation.shuttingDown) + { + using(dir.value) + { + string entryName = GetEntryName(folderOffset, dir); + await CompressStream(entryName, dir.value, zipStream); + } + } + else + { + Logger.Log(LogLevel.Error, + cancel ? "Cancelled compress operation" + : $"Failed to compress files at directory: " + + $"{directory}\nResult[{dir.result.code}])"); + + return Abort(resultAnd, directory); + } + } + + if(cancel || ModIOUnityImplementation.shuttingDown) + { + return Abort(resultAnd, directory); + } + + resultAnd.result = ResultBuilder.Success; + zipStream.IsStreamOwner = false; + } + + Logger.Log(LogLevel.Verbose, $"COMPRESSED [{resultAnd.result.code}] {directory}"); + resultAnd.result = ResultBuilder.Success; + + return resultAnd; + } + + + private static string GetEntryName(int folderOffset, ResultAnd dir) + { + // Make the name in zip based on the folder + // eg, + // Library/Application + // Support/DefaultCompany/Shooter/mods/BobsMod/items/entryName + + // should become: + + // BobsMod/items/entryName + return dir.value.FilePath.Substring(folderOffset); + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/CompressOperationDirectory.cs.meta b/Runtime/ModIO.Implementation/Classes/CompressOperationDirectory.cs.meta new file mode 100644 index 0000000..a81abbd --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/CompressOperationDirectory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4d6d9039cdac742d98e183a069ac0b31 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/CompressOperationMultiple.cs b/Runtime/ModIO.Implementation/Classes/CompressOperationMultiple.cs new file mode 100644 index 0000000..6a05ed1 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/CompressOperationMultiple.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using ICSharpCode.SharpZipLib.Zip; +using JetBrains.Annotations; +using UnityEngine; + +namespace ModIO.Implementation +{ + internal class CompressOperationMultiple : CompressOperationBase + { + public IEnumerable data; + + public CompressOperationMultiple(IEnumerable compressed, [CanBeNull] ProgressHandle progressHandle) + : base(progressHandle) + { + this.data = compressed; + } + + public override void Cancel() + { + cancel = true; + } + + public override async Task> Compress() + { + ResultAnd resultAnd = new ResultAnd(); + resultAnd.value = new MemoryStream(); + + int count = 0; + + using(ZipOutputStream zipStream = new ZipOutputStream(resultAnd.value)) + { + zipStream.SetLevel(3); + + foreach(var bytes in data) + { + string entryName = $"image_{count}.png"; + count++; + + using(MemoryStream memoryStream = new MemoryStream()) + { + memoryStream.Write(bytes, 0, bytes.Length); + await CompressStream(entryName, memoryStream, zipStream); + } + + if(cancel || ModIOUnityImplementation.shuttingDown) + { + return Abort(resultAnd, $"Aborting while zipping images."); + } + } + + zipStream.IsStreamOwner = false; + } + + resultAnd.result = ResultBuilder.Success; + return resultAnd; + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/CompressOperationMultiple.cs.meta b/Runtime/ModIO.Implementation/Classes/CompressOperationMultiple.cs.meta new file mode 100644 index 0000000..5232026 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/CompressOperationMultiple.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b1e93d666bc700e42892ec2cee5c295f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ExtractOperation.cs b/Runtime/ModIO.Implementation/Classes/ExtractOperation.cs new file mode 100644 index 0000000..745822d --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ExtractOperation.cs @@ -0,0 +1,190 @@ +using System; +using System.IO; +using System.Threading.Tasks; +using ICSharpCode.SharpZipLib.Zip; +using JetBrains.Annotations; + +namespace ModIO.Implementation +{ + /// + /// Acts as a wrapper to handle a zip extraction operation. Can be cached for cancelling, + /// pausing, etc + /// + internal class ExtractOperation : IModIOZipOperation + { + public bool cancel; + public long modId; + public long fileId; + public ProgressHandle progressHandle; + + Task IModIOZipOperation.GetOperation() => null; + + public ExtractOperation(long modId, long fileId, + [CanBeNull] ProgressHandle progressHandle = null) + { + this.modId = modId; + this.fileId = fileId; + this.progressHandle = progressHandle; + } + + public async Task Extract() + { + return await DataStorage.taskRunner.AddTask(TaskPriority.HIGH, 1, + async () => await ExtractAll(), true); + } + + // ---------[ Interface ]--------- + /// Extracts the contents of an archive. + async Task ExtractAll() + { + Logger.Log(LogLevel.Verbose, $"EXTRACTING [{modId}_{fileId}]"); + + Result result = ResultBuilder.Unknown; + + using(Stream fileStream = DataStorage.OpenArchiveReadStream(modId, fileId, out result)) + { + if(result.Succeeded()) + { + long max = fileStream.Length; + + try + { + using(ZipInputStream stream = new ZipInputStream(fileStream)) + { + stream.IsStreamOwner = false; + + ZipEntry entry; + while((entry = stream.GetNextEntry()) != null) + { + if(!string.IsNullOrEmpty(entry.Name)) + { + // TODO @Steve even if we create this directory we get an IO + // error because of a lack of permission to access the directory? + // But regardless we should be cleaning out files like this. Do we + // have a list of things we can auto ignore/clean? + if(entry.Name.Contains("__MACOSX")) + { + continue; + } + if(entry.IsDirectory) + { + continue; + } + using(Stream streamWriter = + DataStorage.OpenArchiveEntryOutputStream(entry.Name, + out result)) + { + if(result.Succeeded()) + { + int size; + byte[] data = new byte[1048760]; // 1 MiB buffer size + while(true) + { + // Hard and fast cleanup if the operation is cancelled + if(cancel || ModIOUnityImplementation.shuttingDown) + { + // See end of method + cancel = true; + break; + } + + // These don't need to be async as it's already running + // on another thread (consider testing this on larger + // mods, eg 5 GiB size mods) + + size = await stream.ReadAsync(data, 0, data.Length); + if(size > 0) + { + await streamWriter.WriteAsync(data, 0, size); + if(progressHandle != null) + { + // This is only the progress for the current + // entry + progressHandle.Progress = + stream.Position / (float)max; + } + } + else + { + break; + } + } + } + else + { + cancel = true; + break; + } + } + } + } + } + } + catch(Exception e) + { + Logger.Log(LogLevel.Error, + $"Unhandled exception extracting file. MODFILE [{modId}_{fileId}. Exception: {e.Message}"); + cancel = true; + } + } + } + + //-----------------------------------------------------------------------------------// + // MOVE FINISHED EXTRACTION + //-----------------------------------------------------------------------------------// + try + { + result = DataStorage.MakeInstallationFromExtractionDirectory(modId, fileId); + if(!result.Succeeded()) + { + cancel = true; + } + } + catch(Exception e) + { + Logger.Log(LogLevel.Error, + $"Unhandled exception extracting file. MODFILE [{modId}_{fileId}. Exception: {e.Message}"); + cancel = true; + } + + if(cancel) + { + return CancelAndCleanup(result); + } + + // End + Logger.Log(LogLevel.Verbose, + $"EXTRACTED RESULT [{result.code}] MODFILE [{modId}_{fileId}]"); + return result; + } + + Result CancelAndCleanup(Result result) + { + Logger.Log(LogLevel.Verbose, + $"FAILED EXTRACTION [{result.code}] MODFILE [{modId}_{fileId}]"); + + // Delete any files we may have already extracted + DataStorage.TryDeleteInstalledMod(modId, fileId, out result); + + if(result.code == ResultCode.Unknown || result.code == ResultCode.Success) + { + // If result wasn't assigned, we have been cancelled + result = ResultBuilder.Create(ResultCode.Internal_OperationCancelled); + } + + return result; + } + + // Implemented from IModIOZipOperation interface + void IModIOZipOperation.Cancel() + { + cancel = true; + } + + public void Dispose() + { + + } + + } +} \ No newline at end of file diff --git a/Runtime/ModIO.Implementation/Classes/ExtractOperation.cs.meta b/Runtime/ModIO.Implementation/Classes/ExtractOperation.cs.meta new file mode 100644 index 0000000..6a618d3 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ExtractOperation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f7ed602dfda174df384727668ab5b817 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/FileStreamXXX.cs b/Runtime/ModIO.Implementation/Classes/FileStreamXXX.cs new file mode 100644 index 0000000..465bbff --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/FileStreamXXX.cs @@ -0,0 +1,774 @@ +// TODO(@jackson): Remove +/* +using System; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +using ModIO.Implementation.Platform; + +namespace ModIO.Implementation +{ + /// + /// Implementation of a file stream that throws no exceptions and works cross-platform. + /// + /// + /// From: https://docs.microsoft.com/en-us/dotnet/api/system.io.stream?view=net-5.0 + /// -- Notes to Implementers -- + /// When you implement a derived class of Stream, you must provide implementations for the + /// Read(Byte[], Int32, Int32) and Write(Byte[], Int32, Int32) methods. The asynchronous methods + /// ReadAsync(Byte[], Int32, Int32), WriteAsync(Byte[], Int32, Int32), and CopyToAsync(Stream) + /// use the synchronous methods Read(Byte[], Int32, Int32) and Write(Byte[], Int32, Int32) in + /// their implementations. Therefore, your implementations of Read(Byte[], Int32, Int32) and + /// Write(Byte[], Int32, Int32) will work correctly with the asynchronous methods. The default + /// implementations of ReadByte() and WriteByte(Byte) create a new single-element byte array, + /// and then call your implementations of Read(Byte[], Int32, Int32) and Write(Byte[], Int32, + /// Int32). When you derive from Stream, we recommend that you override these methods to access + /// your internal buffer, if you have one, for substantially better performance. You must also + /// provide implementations of CanRead, CanSeek, CanWrite, Flush(), Length, Position, + /// Seek(Int64, SeekOrigin), and SetLength(Int64). + /// + /// Do not override the Close() method, instead, put all the Stream cleanup logic in the + /// Dispose(Boolean) method. For more information, see Implementing a Dispose Method. + /// + internal class FileStreamXXX : System.IO.Stream + { + /// Data service used to access the file. + IDataService dataService = null; + + /// File path of the file being accessed. + string filePath = null; + + /// The result of the last operation attempted on the FileStream. + Result result = ResultBuilder.Success; + + /// Is the throwing of exceptions permitted? + bool areExceptionsEnabled = true; + +#region Properties + + /// A value indicating whether the current stream supports reading. + public override bool CanRead => throw new NotImplementedException(); + + /// A value indicating whether the current stream supports seeking. + public override bool CanSeek => throw new NotImplementedException(); + + /// A value that determines whether the current stream can time out. + /// + /// The CanTimeout property always returns false. Some stream implementations require + /// different behavior, such as NetworkStream, which times out if network connectivity is + /// interrupted or lost. If you are implementing a stream that must be able to time out, + /// this property should be overridden to return true. + /// + public override bool CanTimeout => base.CanTimeout; + + /// A value indicating whether the current stream supports writing. + public override bool CanWrite => throw new NotImplementedException(); + + /// The length in bytes of the stream. + public override long Length => throw new NotImplementedException(); + + /// Gets or sets the position within the current stream. + /// + /// The stream must support seeking to get or set the position. Use the CanSeek property to + /// determine whether the stream supports seeking. + /// + /// Seeking to any location beyond the length of the stream is supported. + /// + /// The Position property does not keep track of the number of bytes from the stream that + /// have been consumed, skipped, or both. + /// + public override long Position + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + /// + /// Gets or sets a value, in milliseconds, that determines how long the stream will attempt + /// to read before timing out. + /// + /// + /// The ReadTimeout property should be overridden to provide the appropriate behavior for + /// the stream. If the stream does not support timing out, this property should raise an + /// InvalidOperationException. + /// + public override int ReadTimeout + { + get => base.ReadTimeout; + set => base.ReadTimeout = value; + } + + /// + /// Gets or sets a value, in milliseconds, that determines how long the stream will attempt + /// to write before timing out. + /// + /// + /// The WriteTimeout property should be overridden to provide the appropriate behavior for + /// the stream. If the stream does not support timing out, this property should raise an + /// InvalidOperationException. + /// + public override int WriteTimeout + { + get => base.WriteTimeout; + set => base.WriteTimeout = value; + } + +#endregion // Properties + +#region Initialization + + /// + /// Initializes the FileStream with the given file path using the given service. + /// + public FileStreamXXX(IDataService dataService, string filePath, bool enableExceptions) + { + this.dataService = dataService; + this.filePath = filePath; + this.areExceptionsEnabled = enableExceptions; + } + +#endregion // Initialization + +#region mod.io Functionality + + /// Gets the result of the last operation attempted on the FileStream. + public Result GetLastResult() + { + return this.result; + } + +#endregion // mod.io Functionality + +#region System.IO.Stream Interface + + /// + /// Closes the current stream and releases any resources (such as sockets and file handles) + /// associated with the current stream. Instead of calling this method, ensure that the + /// stream is properly disposed. + /// + public override void Close() + { + /// In derived classes, do not override the Close() method, instead, put all of the + /// Stream cleanup logic in the Dispose(Boolean) method. For more information, see + /// Implementing a Dispose Method. + + base.Close(); + } + + /// + /// Asynchronously reads the bytes from the current stream and writes them to another + /// stream. + /// + /// Stream - The stream to which the contents of the current stream will be copied. + /// Int32 - The size, in bytes, of the buffer. This value must be greater than zero. The default size is 81920. + /// CancellationToken - The token to monitor for cancellation requests. The default value is None. + /// Task - A task that represents the asynchronous copy operation. + /// + /// The CopyToAsync method enables you to perform resource-intensive I/O operations without + /// blocking the main thread. This performance consideration is particularly important in a + /// Windows 8.x Store app or desktop app where a time-consuming stream operation can block + /// the UI thread and make your app appear as if it is not working. The async methods are + /// used in conjunction with the async and await keywords in Visual Basic and C#. + /// + /// If the operation is canceled before it completes, the returned task contains the + /// Canceled value for the Status property. + /// + /// Copying begins at the current position in the current stream. + /// + /// For an example of copying between two streams, see the CopyToAsync(Stream) overload. + /// + public override Task CopyToAsync(Stream destination, int bufferSize, + CancellationToken cancellationToken) + { + // Exceptions + // ArgumentNullException + // destination is null. + // ArgumentOutOfRangeException + // buffersize is negative or zero. + // ObjectDisposedException + // Either the current stream or the destination stream is disposed. + // NotSupportedException + // The current stream does not support reading, or the destination stream does not + // support writing. + + return base.CopyToAsync(destination, bufferSize, cancellationToken); + } + + /// + /// When overridden in a derived class, clears all buffers for this stream and causes any + /// buffered data to be written to the underlying device. + /// + /// + /// Override Flush on streams that implement a buffer. Use this method to move any + /// information from an underlying buffer to its destination, clear the buffer, or both. + /// Depending upon the state of the object, you might have to modify the current position + /// within the stream (for example, if the underlying stream supports seeking). For + /// additional information see CanSeek. + /// + /// In a class derived from Stream that doesn't support writing, Flush is typically + /// implemented as an empty method to ensure full compatibility with other Stream types + /// since it's valid to flush a read-only stream. + /// + /// When using the StreamWriter or BinaryWriter class, do not flush the base Stream object. + /// Instead, use the class's Flush or Close method, which makes sure that the data is + /// flushed to the underlying stream first and then written to the file. + /// + public override void Flush() + { + // Exceptions + // IOException + // An I/O error occurs. + + throw new NotImplementedException(); + } + + /// + /// Asynchronously clears all buffers for this stream and causes any buffered data to be + /// written to the underlying device. + /// + /// CancellationToken - The token to monitor for cancellation requests. The default value is None. + /// Task - A task that represents the asynchronous flush operation. + /// + /// If the operation is canceled before it completes, the returned task contains the + /// Canceled value for the Status property. + /// + /// If a derived class, such as DeflateStream or GZipStream, does not flush the buffer in + /// its implementation of the Flush method, the FlushAsync method will not flush the buffer. + /// + public override Task FlushAsync(CancellationToken cancellationToken) + { + // Exceptions + // ObjectDisposedException + // The stream has been disposed. + return base.FlushAsync(cancellationToken); + } + + + public override object InitializeLifetimeService() + { + return base.InitializeLifetimeService(); + } + + /// + /// When overridden in a derived class, reads a sequence of bytes from the current stream + /// and advances the position within the stream by the number of bytes read. + /// + /// + /// Byte[] - An array of bytes. When this method returns, the buffer contains the specified + /// byte array with the values between offset and (offset + count - 1) replaced by the bytes + /// read from the current source. + /// + /// Int32 - The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + /// Int32 - The maximum number of bytes to be read from the current stream. + /// + /// Int32 - The total number of bytes read into the buffer. This can be less than the number + /// of bytes requested if that many bytes are not currently available, or zero (0) if the + /// end of the stream has been reached. + /// + /// + /// Use the CanRead property to determine whether the current instance supports reading. Use + /// the ReadAsync method to read asynchronously from the current stream. + /// + /// Implementations of this method read a maximum of count bytes from the current stream and + /// store them in buffer beginning at offset. The current position within the stream is + /// advanced by the number of bytes read; however, if an exception occurs, the current + /// position within the stream remains unchanged. Implementations return the number of bytes + /// read. The implementation will block until at least one byte of data can be read, in the + /// event that no data is available. Read returns 0 only when there is no more data in the + /// stream and no more is expected (such as a closed socket or end of file). An + /// implementation is free to return fewer bytes than requested even if the end of the + /// stream has not been reached. + /// + /// Use BinaryReader for reading primitive data types. + /// + public override int Read(byte[] buffer, int offset, int count) + { + // Exceptions + // ArgumentException + // The sum of offset and count is larger than the buffer length. + // ArgumentNullException + // buffer is null. + // ArgumentOutOfRangeException + // offset or count is negative. + // IOException + // An I/O error occurs. + // NotSupportedException + // The stream does not support reading. + // ObjectDisposedException + // Methods were called after the stream was closed. + + throw new NotImplementedException(); + } + + /// + /// Asynchronously reads a sequence of bytes from the current stream and advances the + /// position within the stream by the number of bytes read. + /// + /// Byte[] - The buffer to write the data into. + /// Int32 - The byte offset in buffer at which to begin writing data from the stream. + /// Int32 - The maximum number of bytes to read. + /// CancellationToken - The token to monitor for cancellation requests. The default value is None. + /// + /// Task - A task that represents the asynchronous read operation. The value of the + /// TResult parameter contains the total number of bytes read into the buffer. The result + /// value can be less than the number of bytes requested if the number of bytes currently + /// available is less than the requested number, or it can be 0 (zero) if the end of the + /// stream has been reached. + /// + /// + /// The ReadAsync method enables you to perform resource-intensive I/O operations without + /// blocking the main thread. This performance consideration is particularly important in a + /// Windows 8.x Store app or desktop app where a time-consuming stream operation can block + /// the UI thread and make your app appear as if it is not working. The async methods are + /// used in conjunction with the async and await keywords in Visual Basic and C#. + /// + /// Use the CanRead property to determine whether the current instance supports reading. + /// + /// If the operation is canceled before it completes, the returned task contains the + /// Canceled value for the Status property. + /// + /// For an example, see the ReadAsync(Byte[], Int32, Int32) overload. + /// + public override Task ReadAsync(byte[] buffer, int offset, int count, + CancellationToken cancellationToken) + { + // Exceptions + // ArgumentNullException + // buffer is null. + // ArgumentOutOfRangeException + // offset or count is negative. + // ArgumentException + // The sum of offset and count is larger than the buffer length. + // NotSupportedException + // The stream does not support reading. + // ObjectDisposedException + // The stream has been disposed. + // InvalidOperationException + // The stream is currently in use by a previous read operation. + + return base.ReadAsync(buffer, offset, count, cancellationToken); + } + + /// + /// Reads a byte from the stream and advances the position within the stream by one byte, or + /// returns -1 if at the end of the stream. + /// + /// Int32 - The unsigned byte cast to an Int32, or -1 if at the end of the stream. + /// + /// Use the CanRead property to determine whether the current instance supports reading. + /// + /// Attempts to manipulate the stream after the stream has been closed could throw an + /// ObjectDisposedException. + /// + /// - Notes to Inheritors - + /// The default implementation on Stream creates a new single-byte array and then calls + /// Read(Byte[], Int32, Int32). While this is formally correct, it is inefficient. Any + /// stream with an internal buffer should override this method and provide a much more + /// efficient version that reads the buffer directly, avoiding the extra array allocation on + /// every call. + /// + public override int ReadByte() + { + // Exceptions + // NotSupportedException + // The stream does not support reading. + // ObjectDisposedException + // Methods were called after the stream was closed. + + return base.ReadByte(); + } + + /// When overridden in a derived class, sets the position within the current + /// stream. + /// Int64 - A byte offset relative to the origin parameter. + /// SeekOrigin - A value of type SeekOrigin indicating the reference point used to obtain the new position. + /// Int64 - The new position within the current stream. + /// + /// Use the CanSeek property to determine whether the current instance supports seeking. + /// + /// If offset is negative, the new position is required to precede the position specified by + /// origin by the number of bytes specified by offset. If offset is zero (0), the new + /// position is required to be the position specified by origin. If offset is positive, the + /// new position is required to follow the position specified by origin by the number of + /// bytes specified by offset. + /// + /// Classes derived from Stream that support seeking must override this method to provide + /// the functionality described above. + /// + /// Seeking to any location beyond the length of the stream is supported. + /// + public override long Seek(long offset, SeekOrigin origin) + { + // Exceptions + // IOException + // An I/O error occurs. + // NotSupportedException + // The stream does not support seeking, such as if the stream is constructed from a + // pipe or console output. + // ObjectDisposedException + // Methods were called after the stream was closed. + + throw new NotImplementedException(); + } + + /// When overridden in a derived class, sets the length of the current + /// stream. + /// Int64 - The desired length of the current stream in bytes. + /// + /// If the specified value is less than the current length of the stream, the stream is + /// truncated. If the specified value is larger than the current length of the stream, the + /// stream is expanded. If the stream is expanded, the contents of the stream between the + /// old and the new length are not defined. + /// + /// A stream must support both writing and seeking for SetLength to work. + /// + /// Use the CanWrite property to determine whether the current instance supports writing, + /// and the CanSeek property to determine whether seeking is supported. + /// + public override void SetLength(long value) + { + // Exceptions + // IOException + // An I/O error occurs. + // NotSupportedException + // The stream does not support both writing and seeking, such as if the stream is + // constructed from a pipe or console output. + // ObjectDisposedException + // Methods were called after the stream was closed. + + throw new NotImplementedException(); + } + + /// + /// When overridden in a derived class, writes a sequence of bytes to the current stream and + /// advances the current position within this stream by the number of bytes written. + /// + /// Byte[]- An array of bytes. This method copies count bytes from buffer to the current stream. + /// Int32- The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + /// Int32- The number of bytes to be written to the current stream. + /// + /// Use the CanWrite property to determine whether the current instance supports writing. + /// Use the WriteAsync method to write asynchronously to the current stream. + /// + /// If the write operation is successful, the position within the stream advances by the + /// number of bytes written. If an exception occurs, the position within the stream remains + /// unchanged. + /// + public override void Write(byte[] buffer, int offset, int count) + { + // Exceptions + // ArgumentException + // The sum of offset and count is greater than the buffer length. + // ArgumentNullException + // buffer is null. + // ArgumentOutOfRangeException + // offset or count is negative. + // IOException + // An I/O error occurred, such as the specified file cannot be found. + // NotSupportedException + // The stream does not support writing. + // ObjectDisposedException + // Write(Byte[], Int32, Int32) was called after the stream was closed. + + throw new NotImplementedException(); + } + + /// + /// Asynchronously writes a sequence of bytes to the current stream, advances the current + /// position within this stream by the number of bytes written, and monitors cancellation + /// requests. + /// + /// Byte[] - The buffer to write data from. + /// Int32 - The zero-based byte offset in buffer from which to begin copying bytes to the stream. + /// Int32 - The maximum number of bytes to write. + /// CancellationToken - The token to monitor for cancellation requests. The default value is None. + /// Task - A task that represents the asynchronous write operation. + /// + /// The WriteAsync method enables you to perform resource-intensive I/O operations without + /// blocking the main thread. This performance consideration is particularly important in a + /// Windows 8.x Store app or desktop app where a time-consuming stream operation can block + /// the UI thread and make your app appear as if it is not working. The async methods are + /// used in conjunction with the async and await keywords in Visual Basic and C#. + /// + /// Use the CanWrite property to determine whether the current instance supports writing. + /// + /// If the operation is canceled before it completes, the returned task contains the + /// Canceled value for the Status property. + /// + /// For an example, see the WriteAsync(Byte[], Int32, Int32) overload. + /// + public override Task WriteAsync(byte[] buffer, int offset, int count, + CancellationToken cancellationToken) + { + // Exceptions + // ArgumentNullException + // buffer is null. + // ArgumentOutOfRangeException + // offset or count is negative. + // ArgumentException + // The sum of offset and count is larger than the buffer length. + // NotSupportedException + // The stream does not support writing. + // ObjectDisposedException + // The stream has been disposed. + // InvalidOperationException + // The stream is currently in use by a previous write operation. + + return base.WriteAsync(buffer, offset, count, cancellationToken); + } + + /// + /// Writes a byte to the current position in the stream and advances the position within the + /// stream by one byte. + /// + /// Byte - The byte to write to the stream. + /// + /// Use the CanWrite property to determine whether the current instance supports writing. + /// + /// - Notes to Inheritors - + /// The default implementation on Stream creates a new single-byte array and then calls + /// Write(Byte[], Int32, Int32). While this is formally correct, it is inefficient. Any + /// stream with an internal buffer should override this method and provide a much more + /// efficient version that writes to the buffer directly, avoiding the extra array + /// allocation on every call. + /// + public override void WriteByte(byte value) + { + // Exceptions + // IOException + // An I/O error occurs. + // NotSupportedException + // The stream does not support writing, or the stream is already closed. + // ObjectDisposedException + // Methods were called after the stream was closed. + + base.WriteByte(value); + } + + /// + /// Releases the unmanaged resources used by the Stream and optionally releases the managed + /// resources. + /// + /// + /// Boolean - true to release both managed and unmanaged resources; false to release only + /// unmanaged resources. + /// + /// + /// You should release all resources by specifying true for disposing. When disposing is + /// true, the stream can also ensure data is flushed to the underlying buffer, and access + /// other finalizable objects. This may not be possible when called from a finalizer due a + /// lack of ordering among finalizers. + /// + /// If your stream is using an operating system handle to communicate with its source, + /// consider using a subclass of SafeHandle for this purpose. + /// + /// This method is called by the public Dispose method and the Finalize method. Dispose + /// invokes the protected Dispose method with the disposing parameter set to true. Finalize + /// invokes Dispose with disposing set to false. + /// + /// - Notes to Inheritors - + /// + /// In derived classes, do not override the Close() method, instead, put all of the Stream + /// cleanup logic in the Dispose(Boolean) method. + /// + /// Dispose() can be called multiple times by other objects. When overriding + /// Dispose(Boolean), be careful not to reference objects that have been previously disposed + /// of in an earlier call to Dispose(). For more information about how to implement + /// Dispose(Boolean), see Implementing a Dispose Method. + /// + /// For more information about Dispose() and Finalize(), see Cleaning Up Unmanaged + /// Resources. + /// + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + } + + +#endregion // System.IO.Stream Interface + +#region Object Interface + + public override bool Equals(object obj) + { + return base.Equals(obj); + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + + public override string ToString() + { + return base.ToString(); + } + +#endregion // Object Interface + +#region Obsolete + + /// Begins an asynchronous read operation. + /// Byte[] - The buffer to read the data into. + /// Int32 - The byte offset in buffer at which to begin writing data read from the stream. + /// Int32 - The maximum number of bytes to read. + /// AsyncCallback - An optional asynchronous callback, to be called when the read is complete. + /// Object - A user-provided object that distinguishes this particular asynchronous read request from other requests. + /// IAsyncResult - An IAsyncResult that represents the asynchronous read, which could still be pending. + [Obsolete("Use ReadAsync instead.")] + public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, + AsyncCallback callback, object state) + { + /// In the .NET Framework 4 and earlier versions, you have to use methods such as + /// BeginRead and EndRead to implement asynchronous I/O operations. These methods are + /// still available in the .NET Framework 4.5 to support legacy code; however, the new + /// async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you + /// implement asynchronous I/O operations more easily. + /// + /// The default implementation of BeginRead on a stream calls the Read method + /// synchronously, which means that Read might block on some streams. However, instances + /// of classes such as FileStream and NetworkStream fully support asynchronous + /// operations if the instances have been opened asynchronously. Therefore, calls to + /// BeginRead will not block on those streams. You can override BeginRead (by using + /// async delegates, for example) to provide asynchronous behavior. + /// + /// Pass the IAsyncResult return value to the EndRead method of the stream to determine + /// how many bytes were read and to release operating system resources used for reading. + /// EndRead must be called once for every call to BeginRead. You can do this either by + /// using the same code that called BeginRead or in a callback passed to BeginRead. + /// + /// The current position in the stream is updated when the asynchronous read or write is + /// issued, not when the I/O operation completes. + /// + /// Multiple simultaneous asynchronous requests render the request completion order + /// uncertain. + /// + /// Use the CanRead property to determine whether the current instance supports reading. + /// + /// If a stream is closed or you pass an invalid argument, exceptions are thrown + /// immediately from BeginRead. Errors that occur during an asynchronous read request, + /// such as a disk failure during the I/O request, occur on the thread pool thread and + /// throw exceptions when calling EndRead. + +#if MODIO_COMPLILE_ALL && UNITY_EDITOR + throw new System.NotImplementedException("This should never be called."); +#endif + + return base.BeginRead(buffer, offset, count, callback, state); + } + + /// Begins an asynchronous write operation. + /// Byte[] - The buffer to write data from. + /// Int32 - The byte offset in buffer from which to begin writing. + /// Int32 - The maximum number of bytes to write. + /// AsyncCallback - An optional asynchronous callback, to be called when the write is complete. + /// Object - A user-provided object that distinguishes this particular asynchronous write request from other requests. + /// IAsyncResult - An IAsyncResult that represents the asynchronous write, which could still be pending. + [Obsolete("Use WriteAsync instead.")] + public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, + AsyncCallback callback, object state) + { + /// In the .NET Framework 4 and earlier versions, you have to use methods such as + /// BeginWrite and EndWrite to implement asynchronous I/O operations. These methods are + /// still available in the .NET Framework 4.5 to support legacy code; however, the new + /// async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you + /// implement asynchronous I/O operations more easily. + /// + /// The default implementation of BeginWrite on a stream calls the Write method + /// synchronously, which means that Write might block on some streams. However, + /// instances of classes such as FileStream and NetworkStream fully support asynchronous + /// operations if the instances have been opened asynchronously. Therefore, calls to + /// BeginWrite will not block on those streams. You can override BeginWrite (by using + /// async delegates, for example) to provide asynchronous behavior. + /// + /// Pass the IAsyncResult returned by the current method to EndWrite to ensure that the + /// write completes and frees resources appropriately. EndWrite must be called once for + /// every call to BeginWrite. You can do this either by using the same code that called + /// BeginWrite or in a callback passed to BeginWrite. If an error occurs during an + /// asynchronous write, an exception will not be thrown until EndWrite is called with + /// the IAsyncResult returned by this method. + /// + /// If a stream is writable, writing at the end of the stream expands the stream. + /// + /// The current position in the stream is updated when you issue the asynchronous read + /// or write, not when the I/O operation completes. Multiple simultaneous asynchronous + /// requests render the request completion order uncertain. + /// + /// Use the CanWrite property to determine whether the current instance supports + /// writing. + /// + /// If a stream is closed or you pass an invalid argument, exceptions are thrown + /// immediately from BeginWrite. Errors that occur during an asynchronous write request, + /// such as a disk failure during the I/O request, occur on the thread pool thread and + /// throw exceptions when calling EndWrite. + +#if MODIO_COMPLILE_ALL && UNITY_EDITOR + throw new System.NotImplementedException("This should never be called."); +#endif + + return base.BeginWrite(buffer, offset, count, callback, state); + } + + /// Waits for the pending asynchronous read to complete. + /// IAsyncResult - The reference to the pending asynchronous request to finish. + /// Int32 - The number of bytes read from the stream, between zero (0) and the + /// number of bytes you requested. Streams return zero (0) only at the end of the stream, + /// otherwise, they should block until at least one byte is available. + public override int EndRead(IAsyncResult asyncResult) + { + /// In the .NET Framework 4 and earlier versions, you have to use methods such as + /// BeginRead and EndRead to implement asynchronous I/O operations. These methods are + /// still available in the .NET Framework 4.5 to support legacy code; however, the new + /// async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you + /// implement asynchronous I/O operations more easily. + /// + /// Call EndRead to determine how many bytes were read from the stream. + /// + /// EndRead can be called once on every IAsyncResult from BeginRead. + /// + /// This method blocks until the I/O operation has completed. + +#if MODIO_COMPLILE_ALL && UNITY_EDITOR + throw new System.NotImplementedException("This should never be called."); +#endif + + return base.EndRead(asyncResult); + } + + /// Ends an asynchronous write operation. + /// IAsyncResult - A reference to the outstanding asynchronous I/O request. + public override void EndWrite(IAsyncResult asyncResult) + { + /// In the .NET Framework 4 and earlier versions, you have to use methods such as + /// BeginWrite and EndWrite to implement asynchronous I/O operations. These methods are + /// still available in the .NET Framework 4.5 to support legacy code; however, the new + /// async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you + /// implement asynchronous I/O operations more easily. + /// + /// EndWrite must be called exactly once on every IAsyncResult from BeginWrite. + /// + /// This method blocks until the I/O operation has completed. Errors that occur during + /// an asynchronous write request, such as a disk failure during the I/O request, occur + /// on the thread pool thread and become visible upon a call to EndWrite. Exceptions + /// thrown by the thread pool thread will not be visible when calling EndWrite. + +#if MODIO_COMPLILE_ALL && UNITY_EDITOR + throw new System.NotImplementedException("This should never be called."); +#endif + + base.EndWrite(asyncResult); + } + + /// Allocates a WaitHandle object. + [System.Obsolete( + "CreateWaitHandle will be removed eventually. Please use \"new +ManualResetEvent(false)\" instead.")] protected override WaitHandle CreateWaitHandle() + { + return base.CreateWaitHandle(); + } + +#endregion // Obsolete + } +} +*/ diff --git a/Runtime/ModIO.Implementation/Classes/FileStreamXXX.cs.meta b/Runtime/ModIO.Implementation/Classes/FileStreamXXX.cs.meta new file mode 100644 index 0000000..f871781 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/FileStreamXXX.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2b060dcd87b1f654c91aa8d0daecfc85 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/LogToPC.cs b/Runtime/ModIO.Implementation/Classes/LogToPC.cs new file mode 100644 index 0000000..b197e5a --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/LogToPC.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using ModIO.Util; +using UnityEngine; + +namespace ModIO.Implementation +{ + + internal class LogToPC + { + private class LogMessage + { + public LogLevel level; + public string message; + } + + public const string SessionIdentifier = "Session_Log_"; + public const string fileEnding = ".txt"; + public const string dateTimeFormat = "yyyy'-'MM'-'dd'T'HH'-'mm'-'ss"; + + private const int MaxLogs = 100; + + private string filenameHandle; + private List messageCache = new List(); + + public bool halt = false; + + public LogToPC() => MonoDispatcher.Instance.Run(() => Setup(DateTime.Now)); + public LogToPC(DateTime time) => MonoDispatcher.Instance.Run(() => Setup(time)); + + private void Setup(DateTime date) + { + string folderPath = GetFolderPath(); + AttemptCreateDirectory(folderPath); + + IEnumerable oldLogs = GetOldLogs(MaxLogs, Directory.GetFiles(folderPath)); + ClearFiles(oldLogs); + + filenameHandle = ConstructFilePath(folderPath, date); + + //we add this, but we don't write it until we actually have to, to avoid unnecessary log files + messageCache.Add(new LogMessage() + { + level = LogLevel.Message, + message = $"\n\n\n------ New Log for [{DateTime.Now.ToString(dateTimeFormat)}] ------\n\n" + }); + } + + public static IEnumerable GetOldLogs(int maxLogs, params string[] files) + { + return files.Where(x => x.StartsWith(SessionIdentifier) && x.EndsWith(fileEnding)) + .OrderByDescending(x => x) + .ToList() + .Skip(maxLogs); + } + + private static void ClearFiles(IEnumerable files) + { + if(files == null || files.Count() == 0) + { + return; + } + + foreach(string item in files) + { + try + { + File.Delete(item); + } + catch(Exception) { } //if this can't happen it's because someone might be reading the log, + //or in some other way holding its io ref - this is acceptable + //log file would just be cleared out later + } + } + + public static string ConstructFilePath(string folderPath, DateTime time) + => folderPath + @"/" + $"{SessionIdentifier}{time.ToString(dateTimeFormat)}{fileEnding}"; + + private static void AttemptCreateDirectory(string path) + => Directory.CreateDirectory(path); + + public static string GetFolderPath() + => Application.persistentDataPath + @"/ModIoLogs"; + + private void WriteMessagesToLog() + { + try + { + using(StreamWriter w = File.AppendText(filenameHandle)) + { + int index = 0; + + while(index < messageCache.Count) + { + if(halt) + return; + + string log = $"{messageCache[index].level} - {DateTime.Now.ToString("HH:mm:ss")}: {messageCache[index].message}"; + w.WriteLine(log); + index++; + } + + messageCache.Clear(); + } + } + catch(Exception ex) + { + Debug.LogError("Unable to write message: " + ex); + } + } + + + public void Log(LogLevel level, string logMessage) + { + if(halt) + return; + + if(logMessage == null || logMessage == string.Empty) + return; + + messageCache.Add(new LogMessage() { level = level, message = logMessage }); + MonoDispatcher.Instance.Run(WriteMessagesToLog); + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/LogToPC.cs.meta b/Runtime/ModIO.Implementation/Classes/LogToPC.cs.meta new file mode 100644 index 0000000..5484ec7 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/LogToPC.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 85645c9924756414bad51121208743b6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/Logger.cs b/Runtime/ModIO.Implementation/Classes/Logger.cs new file mode 100644 index 0000000..2a4aa3a --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/Logger.cs @@ -0,0 +1,96 @@ +using System; +using UnityEngine; + +namespace ModIO.Implementation +{ + + /// + /// This class is responsible for outputting all of the logs that pertain to the ModIO Plugin + /// + internal static class Logger + { + internal const string ModioLogPrefix = "[mod.io]"; + + static LogMessageDelegate LogDelegate = UnityLogDelegate; + + private static LogToPC _logToPC; + internal static LogToPC LogToPC + { + get + { + return _logToPC = _logToPC ?? new LogToPC(); + } + } + + internal static void SetLoggingDelegate(LogMessageDelegate loggingDelegate) + { + LogDelegate = loggingDelegate ?? UnityLogDelegate; + } + + internal static void ResetLoggingDelegate() + { + LogDelegate = UnityLogDelegate; + } + + internal static void UnityLogDelegate(LogLevel logLevel, string logMessage) + { + // check the log level + if(IsThisLogAboveMaxLogLevelSetting(logLevel)) + { + return; + } + + switch(logLevel) + { + case LogLevel.Error: + Debug.LogWarning(logMessage); + break; + case LogLevel.Warning: + Debug.LogWarning(logMessage); + break; + case LogLevel.Message: + Debug.Log(logMessage); + break; + case LogLevel.Verbose: + Debug.Log(logMessage); + break; + } + } + + static bool IsThisLogAboveMaxLogLevelSetting(LogLevel level) + { + if (Settings.build != null) + { + return (int)level > (int)Settings.build.logLevel; + } + + return true; + } + + internal static void Log(LogLevel logLevel, string logMessage, bool attemptLogToPc = true) + { + logMessage = $"{ModioLogPrefix} {logMessage}"; + LogDelegate?.Invoke(logLevel, logMessage); + +#if UNITY_STANDALONE || UNITY_EDITOR + if(attemptLogToPc) + { + try + { + LogToPC.Log(logLevel, logMessage); + } + catch(Exception ex) + { + Log(LogLevel.Error, "Error trying to write a message to pc " + + "log. Halting log to pc functionality for this " + + $"session. Exception: {ex}.", false); + LogDelegate?.Invoke(logLevel, "Error trying to write a " + + "message to pc log. Halting log to pc" + + " functionality for this session. " + + $"Exception: {ex}."); + } + } +#endif + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/Logger.cs.meta b/Runtime/ModIO.Implementation/Classes/Logger.cs.meta new file mode 100644 index 0000000..1f298ba --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/Logger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9778034db7abc4bcfb2464ed47d3e3db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ModCollectionEntry.cs b/Runtime/ModIO.Implementation/Classes/ModCollectionEntry.cs new file mode 100644 index 0000000..82dd1e8 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModCollectionEntry.cs @@ -0,0 +1,13 @@ + +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation +{ + [System.Serializable] + internal class ModCollectionEntry + { + public ModfileObject currentModfile; + public ModObject modObject; + public bool uninstallIfNotSubscribedToCurrentSession; + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ModCollectionEntry.cs.meta b/Runtime/ModIO.Implementation/Classes/ModCollectionEntry.cs.meta new file mode 100644 index 0000000..f45542f --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModCollectionEntry.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a585aaeae23944d5db14866576c99f28 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ModCollectionManager.cs b/Runtime/ModIO.Implementation/Classes/ModCollectionManager.cs new file mode 100644 index 0000000..4152772 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModCollectionManager.cs @@ -0,0 +1,954 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using ModIO.Implementation.API; +using ModIO.Implementation.API.Objects; +using ModIO.Implementation.API.Requests; +using GetUserEvents = ModIO.Implementation.API.Requests.GetUserEvents; + +namespace ModIO.Implementation +{ + /// + /// This class holds and manages all of the data relating to modObject collections inside of the + /// ModCollectionRegistry class (ModCollectionManager.Registry). It also holds the subscriptions + /// for each user that has been initialized. You can use GetSubscribedModsForUser(out Result) to + /// get all of the subscribed mods for the current user. + /// + internal static class ModCollectionManager + { + public static ModCollectionRegistry Registry; + +#region Syncing User Fields + static bool hasSyncedBefore; + static long lastUserEventId; + static long lastModEventId; +#endregion // Syncing User Fields + + public static async Task LoadRegistryAsync() + { + // Reset syncing in case of re-init + hasSyncedBefore = false; + + ResultAnd response = await DataStorage.LoadSystemRegistryAsync(); + + if(response.result.Succeeded()) + { + Registry = response.value ?? new ModCollectionRegistry(); + } + else + { + // Log error, failed to load registry + Logger.Log(LogLevel.Error, $"Failed to load Registry [{response.result.code}] - Creating a new one"); + Registry = new ModCollectionRegistry(); + + return response.result; + } + + return ResultBuilder.Success; + } + + public static Result LoadRegistry() + { + // Reset syncing in case of re-init + hasSyncedBefore = false; + + ResultAnd response = DataStorage.LoadSystemRegistry(); + + if(response.result.Succeeded()) + { + Registry = response.value ?? new ModCollectionRegistry(); + } + else + { + // Log error, failed to load registry + Logger.Log(LogLevel.Error, $"Failed to load Registry [{response.result.code}] - Creating a new one"); + Registry = new ModCollectionRegistry(); + + return response.result; + } + + return ResultBuilder.Success; + } + + public static async void SaveRegistry() + { + // Early out + if(!IsRegistryLoaded()) + { + Logger.Log(LogLevel.Error, + "ModCollectionManager was unable to save the Registry to disk because" + + " the registry hasn't been loaded yet"); + return; + } + + Result result = await DataStorage.SaveSystemRegistry(Registry); + + if(!result.Succeeded()) + { + Logger.Log(LogLevel.Error, + "ModCollectionManager was unable to save the Registry to disk" + + " because DataStorage.SaveSystemRegistry failed"); + } + } + + public static void ClearRegistry() + { + lastUserEventId = 0; + lastModEventId = 0; + hasSyncedBefore = false; + Registry?.mods?.Clear(); + Registry?.existingUsers?.Clear(); + Registry = null; + } + + public static void ClearUserData() + { + // Early out + if(!IsRegistryLoaded() || !DoesUserExist()) + { + return; + } + + Registry.existingUsers.Remove(UserData.instance.userObject.id); + + SaveRegistry(); + } + + public static void AddUserToRegistry(UserObject user) + { + // Early out + if(!IsRegistryLoaded()) + { + return; + } + + UserModCollectionData newUser = new UserModCollectionData(); + newUser.userId = user.id; + + if(!Registry.existingUsers.ContainsKey(user.id)) + { + Registry.existingUsers.Add(user.id, newUser); + } + + SaveRegistry(); + } + + /// + /// Does a fetch for the user's subscriptions and syncs them with the registry. + /// Also checks for updates for modfiles. + /// + /// the modObject.io username of the user to sync + /// true if the sync was successful + public static async Task FetchUpdates() + { + // REVIEW @Jackson We should have a sweeping check of the installed directory to find + // any installed mods that we may not know about in case of UserData being deleted/lost. + // I've made a partial solution that checks if we have the most recent modfile of a + // subscribed mod installed, but if a mod is outdated we will get artefacts. + + // Early out - make sure if user != null that we have a valid + if(!IsRegistryLoaded()) + { + return ResultBuilder.Create(ResultCode.Internal_RegistryNotInitialized); + } + + //----[ Setup return ]---- + Result result = ResultBuilder.Success; + + //--------------------------------------------------------------------------------// + // GET USER PROFILE DATA // + //--------------------------------------------------------------------------------// + //Leaving this in until the new API has finished implementation + //string url = GetAuthenticatedUser.URL(); + //ResultAnd response = + // await RESTAPI.Request(url, GetAuthenticatedUser.Template); + + var profileResponse = await WebRequestManager.Request(API.Requests.GetAuthenticatedUser.Request()); + if(profileResponse.result.Succeeded()) + { + UserData.instance.SetUserObject(profileResponse.value); + } + else + { + return profileResponse.result; + } + + // get the username we have in the registry + long user = GetUserKey(); + + //--------------------------------------------------------------------------------// + // GET GAME TAGS // + //--------------------------------------------------------------------------------// + //Leaving this in until the new API has finished implementation + // Get URL for tags request + //url = GetGameTags.URL(); + //// Wait for unsub request + //ResultAnd> resultAnd = + // await RESTAPI.Request>(url, + // GetGameTags.Template); + + var gameTagsResponse = await WebRequestManager.Request + (API.Requests.GetGameTags.Request()); + + // If failed, cancel the entire update operation + if(gameTagsResponse.result.Succeeded()) + { + await DataStorage.SaveGameTags(gameTagsResponse.value.data); + } + else + { + return gameTagsResponse.result; + } + + //--------------------------------------------------------------------------------// + // SEND QUEUED UNSUBSCRIBES FROM BEING OFFLINE // + //--------------------------------------------------------------------------------// + foreach(ModId modId in Registry.existingUsers[user].unsubscribeQueue) + { + //Leaving this in until the new API has finished implementation + //// Get URL for unsub request + //url = UnsubscribeFromMod.URL(modId); + //// Wait for unsub request + //result = await RESTAPI.Request(url, UnsubscribeFromMod.Template); + + var unsubResponse = await WebRequestManager.Request(API.Requests.UnsubscribeFromMod.Request(modId)); + + // If failed, cancel the entire update operation + if(!unsubResponse.Succeeded()) + { + return result; + } + } + + //--------------------------------------------------------------------------------// + // UPDATE CURRENT USER RATINGS // + //--------------------------------------------------------------------------------// + + //Leaving this in until the new API has finished implementation + //url = GetCurrentUserRatings.Url(); + //// Wait for request + //ResultAnd ratingsResultAnd = + // await RESTAPI.Request(url, GetCurrentUserRatings.Template); + + string url = GetCurrentUserRatings.Request().Url; + ResultAnd ratingsResponse = await TryRequestAllResults(url, GetCurrentUserRatings.Request); + + var ratings = ResponseTranslator.ConvertModRatingsObjectToRatings(ratingsResponse.value); + + // If failed, cancel the entire update operation + if(ratingsResponse.result.Succeeded()) + { + ResponseCache.ReplaceCurrentUserRatings(ratings); + } + else + { + // TODO dont cancel the entire function if we fail here + return ratingsResponse.result; + } + + //--------------------------------------------------------------------------------// + // UPDATE MOD SUBSCRIPTIONS // + //--------------------------------------------------------------------------------// + result = !hasSyncedBefore ? await RunFirstSyncForTheSession(user) + : await RunRepeatedSyncForTheSession(user); + + + // Mark as true to change behaviour when re-checking (resets after new Init) + hasSyncedBefore = true; + + ModManagement.WakeUp(); + Logger.Log(LogLevel.Message, + $"Finished syncing user[{user}:{UserData.instance.userObject.id}]"); + return result; + } + + /// + /// Goes through API requests that should only be run the first time we sync a session + /// for an authenticated user. + /// + /// username of the user + /// The Result of all the operations (returns at the first non-success result) + static async Task RunFirstSyncForTheSession(long user) + { + Result result = ResultBuilder.Success; + + //--------------------------------------------------------------------------------// + // GET SUBSCRIBED MODS // + //--------------------------------------------------------------------------------// + //Leaving this in until the new API has finished implementation + //string url = GetUserSubscriptions.URL(); + //ResultAnd subscribedResultAnd = + // await RESTAPI.TryRequestAllResults(url, GetUserSubscriptions.Template); + + var subscribedResponse = await WebRequestManager.Request + (API.Requests.GetUserSubscriptions.Request()); + + if(subscribedResponse.result.Succeeded()) + { + // clear user's subscribed mods + Registry.existingUsers[user].subscribedMods.Clear(); + + foreach(ModObject mod in subscribedResponse.value.data) + { + Registry.existingUsers[user].subscribedMods.Add(new ModId(mod.id)); + + UpdateModCollectionEntryFromModObject(mod); + } + } + else + { + return subscribedResponse.result; + } + + //--------------------------------------------------------------------------------// + // GET LAST USER EVENT // + //--------------------------------------------------------------------------------// + //Leaving this in until the new API has finished implementation + //url = GetUserEvents.URL() + FilterUtil.LastEntryPagination(); + //// Wait for request + //ResultAnd userEventResultAnd = + // await RESTAPI.Request(url, GetUserEvents.Template); + + ResultAnd userEventResponse = await WebRequestManager.Request + (API.Requests.GetUserEvents.Request()); + + if(userEventResponse.result.Succeeded()) + { + // If exists + if(userEventResponse.value.data?.Length > 0) + { + // Cache event ID + lastUserEventId = userEventResponse.value.data[0].id; + } + } + else + { + return userEventResponse.result; + } + + //--------------------------------------------------------------------------------// + // GET LAST MOD EVENT // + //--------------------------------------------------------------------------------// + //Leaving this in until the new API has finished implementation + //url = GetModEvents.URL() + FilterUtil.LastEntryPagination(); + //// Wait for request + //ResultAnd modEventResultAnd = + // await RESTAPI.Request(url, GetModEvents.Template); + + var modEventConfig = API.Requests.GetModEvents.Request(FilterUtil.LastEntryPagination()); + var modEventResponse = await WebRequestManager.Request + (modEventConfig); + + if(modEventResponse.result.Succeeded()) + { + // If exists + if(modEventResponse.value.data?.Length > 0) + { + // Cache event ID + lastModEventId = modEventResponse.value.data[0].id; + } + } + else + { + return modEventResponse.result; + } + + return result; + } + + /// + /// Goes through API requests that should be run after the first time a session has been + /// synced for an authenticated user. + /// + /// username of the user + /// The Result of all the operations (returns at the first non-success result) + static async Task RunRepeatedSyncForTheSession(long user) + { + Result result = ResultBuilder.Success; + + //--------------------------------------------------------------------------------// + // GET LATEST USER EVENTS // + //--------------------------------------------------------------------------------// + //Leaving this in until the new API has finished implementation + // get user events + // Make sure it's ascending so we're iterating over a newer event each time + //string url = GetUserEvents.URL(); + //url += $"&{Filtering.Ascending}id&id{Filtering.Min}{lastUserEventId}" + // + "&event_type-in=USER_SUBSCRIBE,USER_UNSUBSCRIBE"; + //ResultAnd userResultAnd = + // await RESTAPI.TryRequestAllResults(url, GetUserEvents.Template); + + var config = API.Requests.GetUserEvents.Request( + $"&{Filtering.Ascending}id&id{Filtering.Min}{lastUserEventId}" + + "&event_type-in=USER_SUBSCRIBE,USER_UNSUBSCRIBE"); + + ResultAnd userEventResponse = await WebRequestManager.Request(config); + + // TODO(@Steve): Consider replacing TryRequestAll with something like this: + // ResultAnd resultPage = await RESTAPI.Request(url, + // GetModEvents.Template); + // if(resultPage.totalResults > resultPage.limit) + // { + // // forget this, FetchAllUserSubscriptions and rebase the last event id + // } + + if(userEventResponse.result.Succeeded()) + { + var userEventData = userEventResponse.value.data; + + // Cache the highest value we have + lastUserEventId = userEventData?.Length > 0 + ? userEventData[userEventData.Length - 1].id + : lastUserEventId; + + if(userEventData != null) + { + foreach(UserEventObject userEvent in userEventData) + { + if(userEvent.event_type == "USER_SUBSCRIBE") + { + AddModToUserSubscriptions(new ModId(userEvent.mod_id)); + } + else if(userEvent.event_type == "USER_UNSUBSCRIBE") + { + RemoveModFromUserSubscriptions(new ModId(userEvent.mod_id), false); + } + } + } + } + else + { + return userEventResponse.result; + } + + //--------------------------------------------------------------------------------// + // GET LATEST MOD EVENTS // + //--------------------------------------------------------------------------------// + //Leaving this in until the new API has finished implementation + // get modObject events + //url = GetModEvents.URL(); + //url += $"&{Filtering.Ascending}id&id{Filtering.Min}{lastModEventId}" + // + "&subscribed=true&event_type-in=MODFILE_CHANGED,MOD_EDITED"; + //// create a placeholder pool for mods we will need in a GetMods request + //ResultAnd modEventResultAnd = + // await RESTAPI.TryRequestAllResults(url, GetModEvents.Template); + + var modEventConfig = API.Requests.GetModEvents.Request( + $"&{Filtering.Ascending}id&id{Filtering.Min}{lastModEventId}" + + "&subscribed=true&event_type-in=MODFILE_CHANGED,MOD_EDITED"); + + var modEventResult = await WebRequestManager.Request(modEventConfig); + + // TODO(@Steve): Consider replacing TryRequestAll with something like this: + // ResultAnd resultPage = await RESTAPI.Request(url, + // GetModEvents.Template); if(resultPage.totalResults > resultPage.limit) + // { + // // forget this, FetchAllUserSubscriptions and rebase the last event id + // } + + if(modEventResult.result.Succeeded()) + { + var modsToGet = new List(); + + // Cache the highest value we have + lastModEventId = + modEventResult.value?.data.Length > 0 + ? modEventResult.value.data[modEventResult.value.data.Length - 1].id + : lastModEventId; + if(modEventResult.value != null) + { + foreach(ModEventObject modEvent in modEventResult.value.data) + { + if(modEvent.event_type == "MODFILE_CHANGED" + || modEvent.event_type == "MOD_EDITED") + { + modsToGet.Add(modEvent.mod_id); + } + } + } + + //--------------------------------------------------------------------------------// + // GET MODS // + //--------------------------------------------------------------------------------// + if(modsToGet.Count > 0) + { + var modIdsInFilter = string.Empty; + foreach(long id in modsToGet) { modIdsInFilter += $"&id={id}"; } + + // TODO make sure our url isn't too long + string url = GetMods.UnpaginatedURL() + modIdsInFilter; + + //Leaving this in until the new webrequest manager is complete + //This shouldn't be inside the rest api? + var modsPaginationResult = await TryRequestAllResults(url, ()=> API.Requests.GetMods.RequestUnpaginated()); + + if(modsPaginationResult.result.Succeeded()) + { + foreach(ModObject mod in modsPaginationResult.value) + { + UpdateModCollectionEntryFromModObject(mod); + } + } + else + { + return modsPaginationResult.result; + } + } + } + else + { + return modEventResult.result; + } + + return result; + } + + /// + /// Does a recursive set of requests until all possible results are retrieved. Hard capped + /// at 10 requests (1,000 results). + /// + /// The endpoint with relevant filters (But do not include pagination) + /// The template of the request + /// The data type of the page response schema (Make sure this is the + /// correct API Object for the response schema relating to the endpoint being + /// used) + /// ResultAnd has the result of the entire operation and an array of all the + /// retrieved results + /// Note this only works for GET requests + // TODO(@Steve): Add request limit + // TODO(@Steve): Implement partial result? + public static async Task> TryRequestAllResults( + string url, Func webrequestFactory) + { + const int maxNumberOfRequestsMade = 10; + const int pageSize = 100; + + var response = new ResultAnd(); + var collatedData = new List(); + var numberOfRequestsMade = 0; + + long total = 0; + + do + { + var offset = pageSize * numberOfRequestsMade; + + //fetch, modify and run request + var request = webrequestFactory(); + request.Url = $"{url}&{Filtering.Limit}{pageSize}&{Filtering.Offset}{offset}"; + var requestResult = await WebRequestManager.Request>(request); + response.result = requestResult.result; + + if(!requestResult.result.Succeeded()) + break; + + //set response + total = requestResult.result.Succeeded() ? requestResult.value.result_total : 0; + collatedData.AddRange(requestResult.value.data); + + //abort if our offset has reached more than the total + if(pageSize * (numberOfRequestsMade + 1) >= total) + break; + + // check if we've reached max responses (10 pages or 1,000 results) + numberOfRequestsMade++; + if(numberOfRequestsMade >= maxNumberOfRequestsMade) + { + Logger.Log(LogLevel.Warning, + "Recursive Paging method (TryRequestAllResults) has reached it's cap of 1,000 results. " + + "Ending now to avoid rate limiting."); + break; + } + } + while(true); + + response.value = collatedData.ToArray(); + + return response; + } + + public static void AddModCollectionEntry(ModId modId) + { + // Check an entry exists for this modObject, if not create one + if(!Registry.mods.ContainsKey(modId)) + { + ModCollectionEntry newEntry = new ModCollectionEntry(); + newEntry.modObject.id = modId; + Registry.mods.Add(modId, newEntry); + } + } + + public static void UpdateModCollectionEntry(ModId modId, ModObject modObject) + { + AddModCollectionEntry(modId); + + Registry.mods[modId].modObject = modObject; + + // Check this in case of UserData being deleted + if(DataStorage.TryGetInstallationDirectory(modId, modObject.modfile.id, + out string notbeingusedhere)) + { + Registry.mods[modId].currentModfile = modObject.modfile; + } + + SaveRegistry(); + } + + public static void AddModToUserSubscriptions(ModId modId, + bool saveRegistry = true) + { + + long user = GetUserKey(); + + // Early out + if(!IsRegistryLoaded() || !DoesUserExist(user)) + { + return; + } + + user = GetUserKey(); + + if(!Registry.existingUsers[user].subscribedMods.Contains(modId)) + { + Registry.existingUsers[user].subscribedMods.Add(modId); + } + + // Check an entry exists for this modObject, if not create one + AddModCollectionEntry(modId); + + if(saveRegistry) + { + SaveRegistry(); + } + } + + public static void RemoveModFromUserSubscriptions(ModId modId, bool offline, + bool saveRegistry = true) + { + long user = GetUserKey(); + + // Early out + if(!IsRegistryLoaded() || !DoesUserExist(user)) + { + Logger.Log(LogLevel.Warning, "registry not loaded"); + return; + } + + user = GetUserKey(); + + // Remove modId from user collection data + if(Registry.existingUsers[user].subscribedMods.Contains(modId)) + { + Registry.existingUsers[user].subscribedMods.Remove(modId); + + // Add unsubscribe to queue if offline + if(offline) + { + if(!Registry.existingUsers[user].unsubscribeQueue.Contains(modId)) + { + Registry.existingUsers[user].unsubscribeQueue.Add(modId); + } + } + } + + if(saveRegistry) + { + SaveRegistry(); + } + } + + public static void UpdateModCollectionEntryFromModObject(ModObject modObject, + bool saveRegistry = true) + { + ModId modId = (ModId)modObject.id; + + // Add ModCollection entry if none exists + if(!Registry.mods.ContainsKey(modId)) + { + Registry.mods.Add(modId, new ModCollectionEntry()); + } + + // Update ModCollection + Registry.mods[modId].modObject = modObject; + + // Check this in case of UserData being deleted + if(DataStorage.TryGetInstallationDirectory(modId, modObject.modfile.id, + out string notbeingusedhere)) + { + Registry.mods[modId].currentModfile = modObject.modfile; + } + + if(saveRegistry) + { + SaveRegistry(); + } + } + + public static bool EnableModForCurrentUser(ModId modId) + { + // early out + if(!IsRegistryLoaded()) + { + Logger.Log(LogLevel.Error, "Cannot enable mod for user. No registry has been loaded."); + return false; + } + + long currentUser = GetUserKey(); + + if (Registry.existingUsers[currentUser].disabledMods.Contains(modId)) + { + Registry.existingUsers[currentUser].disabledMods.Remove(modId); + } + + Logger.Log(LogLevel.Verbose, $"Enabled Mod {((long)modId).ToString()}"); + return true; + } + + public static bool DisableModForCurrentUser(ModId modId) + { + // early out + if(!IsRegistryLoaded()) + { + Logger.Log(LogLevel.Error, "Cannot enable mod for user. No registry has been loaded."); + return false; + } + + long currentUser = GetUserKey(); + + if (!Registry.existingUsers[currentUser].disabledMods.Contains(modId)) + { + Registry.existingUsers[currentUser].disabledMods.Add(modId); + } + + Logger.Log(LogLevel.Verbose, $"Disabled Mod {((long)modId).ToString()}"); + return true; + } + + /// + /// Gets all mods that are installed regardless of whether or not the user is subscribed to + /// them or not + /// + /// + public static InstalledMod[] GetInstalledMods(out Result result, bool excludeSubscribedModsForCurrentUser) + { + // early out + if(!IsRegistryLoaded()) + { + result = ResultBuilder.Create(ResultCode.Internal_RegistryNotInitialized); + return null; + } + + List mods = new List(); + + long currentUser = GetUserKey(); + + using(var enumerator = Registry.mods.GetEnumerator()) + { + while(enumerator.MoveNext()) + { + // Check if we are excluding the current authenticated user subscriptions or not + // If the current user is not authenticated we will obtain all installed mods + if(Registry.existingUsers.ContainsKey(currentUser)) // this checks if we're authenticated + { + if(excludeSubscribedModsForCurrentUser + && Registry.existingUsers[currentUser].subscribedMods.Contains(enumerator.Current.Key)) + { + // dont include subscribed mods for the current user + continue; + } + if (!excludeSubscribedModsForCurrentUser + && !Registry.existingUsers[currentUser].subscribedMods.Contains(enumerator.Current.Key)) + { + // dont include non-subscribed mods for the current user + continue; + } + } + + // check if current modfile is correct + if(DataStorage.TryGetInstallationDirectory( + enumerator.Current.Key.id, enumerator.Current.Value.currentModfile.id, + out string directory)) + { + InstalledMod mod = ConvertModCollectionEntryToInstalledMod(enumerator.Current.Value, directory); + mod.enabled = Registry.existingUsers.ContainsKey(currentUser) + && !Registry.existingUsers[currentUser].disabledMods.Contains(mod.modProfile.id); + mods.Add(mod); + } + } + } + + result = ResultBuilder.Success; + return mods.ToArray(); + } + + /// + /// Gets all of the ModCollectionEntry mods that a user has subscribed to. + /// If "string user" is null it will default to the current initialized user. + /// + /// Will fail if the registry hasn't been initialized or the user doesn't exist + /// the user to check for in the registry (if null will use current user) + /// an array of the user's subscribed mods + public static SubscribedMod[] GetSubscribedModsForUser(out Result result) + { + long user = GetUserKey(); + + // Early out + if(!IsRegistryLoaded() || !DoesUserExist()) + { + result = ResultBuilder.Create(ResultCode.Internal_RegistryNotInitialized); + return null; + } + + user = GetUserKey(); + + List mods = new List(); + + // Use an enumerator because it's more performant + using(var enumerator = Registry.existingUsers[user].subscribedMods.GetEnumerator()) + { + while(enumerator.MoveNext()) + { + if(Registry.mods.TryGetValue(enumerator.Current, out ModCollectionEntry entry)) + { + mods.Add(entry); + } + } + } + + // Convert ModCollections into user friendly SubscribedMods + List subscribedMods = new List(); + + foreach(ModCollectionEntry entry in mods) + { + SubscribedMod mod = ConvertModCollectionEntryToSubscribedMod(entry); + mod.enabled = !Registry.existingUsers[user].disabledMods.Contains(mod.modProfile.id); + subscribedMods.Add(mod); + } + + result = ResultBuilder.Success; + return subscribedMods.ToArray(); + } + + public static SubscribedMod ConvertModCollectionEntryToSubscribedMod( + ModCollectionEntry entry) + { + SubscribedMod mod = new SubscribedMod(); + + // generate ModProfile from ModObject + mod.modProfile = ResponseTranslator.ConvertModObjectToModProfile(entry.modObject); + + // set the status for this subscribed mod + mod.status = ModManagement.GetModCollectionEntrysSubscribedModStatus(entry); + + // assign directory field + DataStorage.TryGetInstallationDirectory(entry.modObject.id, entry.modObject.modfile.id, + out mod.directory); + + return mod; + } + + public static InstalledMod ConvertModCollectionEntryToInstalledMod(ModCollectionEntry entry, + string directory) + { + InstalledMod mod = new InstalledMod(); + mod.modProfile = ResponseTranslator.ConvertModObjectToModProfile(entry.modObject); + mod.updatePending = entry.currentModfile.id != entry.modObject.modfile.id; + mod.directory = directory; + mod.subscribedUsers = new List(); + mod.metadata = entry.modObject.modfile.metadata_blob; + mod.version = entry.currentModfile.version; + mod.changeLog = entry.currentModfile.changelog; + mod.dateAdded = ResponseTranslator.GetUTCDateTime(entry.currentModfile.date_added); + + foreach(long user in Registry.existingUsers.Keys) + { + if(Registry.existingUsers[user].subscribedMods.Contains((ModId)entry.modObject.id)) + { + mod.subscribedUsers.Add(user); + } + } + + return mod; + } + + public static Result MarkModForUninstallIfNotSubscribedToCurrentSession(ModId modId) + { + // Early out + if(!IsRegistryLoaded()) + { + return ResultBuilder.Create(ResultCode.Internal_RegistryNotInitialized); + } + + if(Registry.mods.TryGetValue(modId, out ModCollectionEntry mod)) + { + mod.uninstallIfNotSubscribedToCurrentSession = true; + return ResultBuilder.Success; + } + else + { + return ResultBuilder.Create(ResultCode.Unknown); + } + } + +#region public Checks &Utility + static bool IsRegistryLoaded() + { + // Early out + if(Registry == null) + { + Logger.Log(LogLevel.Error, "The Registry hasn't been loaded yet. Make" + + " sure you initialize the plugin before using this" + + " method;"); + return false; + } + + return true; + } + + /// + /// Checks if the current user exists in the directory. + /// + /// if null, will use the current user + /// true if the user exists + public static bool DoesUserExist(long user = 0) + { + if(user == 0) + { + if(UserData.instance?.userObject == null) + { + Logger.Log(LogLevel.Error, "The current user data is null or hasn't been" + + " authenticated properly"); + return false; + } + + user = UserData.instance.userObject.id; + + if(user == 0) + { + Logger.Log(LogLevel.Error, "The current user has not been authenticated " + + "properly (The UserObject id is not set)."); + return false; + } + } + + if(!Registry.existingUsers.ContainsKey(user)) + { + Logger.Log(LogLevel.Error, + $"The User does not exist in the current loaded Registry [{user}]."); + return false; + } + + return true; + } + + /// + /// Make sure to check DoesUserExist(user) before using this + /// + /// the user id of the current known UserObject we have stored (0 if none) + public static long GetUserKey() + { + return UserData.instance == null ? 0 : UserData.instance.userObject.id; + } +#endregion // public Checks & Utility + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ModCollectionManager.cs.meta b/Runtime/ModIO.Implementation/Classes/ModCollectionManager.cs.meta new file mode 100644 index 0000000..bc1176b --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModCollectionManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b9eb21cc524ac4c9da5737b08cc764ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ModCollectionRegistry.cs b/Runtime/ModIO.Implementation/Classes/ModCollectionRegistry.cs new file mode 100644 index 0000000..def7ce5 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModCollectionRegistry.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace ModIO.Implementation +{ + /// + /// The serializable format for handling the system registry for all mod collections + /// + [System.Serializable] + internal class ModCollectionRegistry + { + public Dictionary existingUsers = + new Dictionary(); + + public Dictionary mods = + new Dictionary(); + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ModCollectionRegistry.cs.meta b/Runtime/ModIO.Implementation/Classes/ModCollectionRegistry.cs.meta new file mode 100644 index 0000000..0d7e7bf --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModCollectionRegistry.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 54085f9fca35a4daabffe26a1cc69c80 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ModIOUnityImplementation.cs b/Runtime/ModIO.Implementation/Classes/ModIOUnityImplementation.cs new file mode 100644 index 0000000..082df5c --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModIOUnityImplementation.cs @@ -0,0 +1,2318 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net.Mail; +using System.Threading.Tasks; +using JetBrains.Annotations; +using ModIO.Implementation.API; +using ModIO.Implementation.API.Objects; +using ModIO.Implementation.Platform; +using UnityEngine; +using System.Linq; +using ModIO.Implementation.API.Requests; +using UnityEngine.Profiling; + +namespace ModIO.Implementation +{ + + /// + /// The actual implementation for methods called from the ModIOUnity interface + /// + internal static class ModIOUnityImplementation + { + // REVIEW @Jackson Not sure if this should go into mod management or just here. It doesnt + // really belong anywhere in particular. + /// + /// A cached reference to the current upload operation handle. + /// + static ProgressHandle currentUploadHandle; + + /// + /// Everytime an implemented method with a callback is used it creates a + /// TaskCompletionSource and adds it to this hashset. Shutdown will make sure to wait for + /// all of these callbacks to return before invoking the final shutdown callback. + /// + static Dictionary, Task> openCallbacks_dictionary = + new Dictionary, Task>(); + + static Dictionary>> onGoingImageDownloads = new Dictionary>>(); + /// + /// cached Task of the shutdown operation so we dont run several shutdowns simultaneously + /// + static Task shutdownOperation; + + internal static OpenCallbacks openCallbacks = new OpenCallbacks(); + +#region Synchronous Requirement Checks - to detect early outs and failures + + /// Has the plugin been initialized. + internal static bool isInitialized; + + /// + /// Flagged to true if the plugin is being shutdown + /// + public static bool shuttingDown; + + //Whether we auto initialize after the first call to the plugin + static bool autoInitializePlugin = false; + + //has the autoInitializePlugin been set using SettingsAsset + static bool autoInitializePluginSet = false; + + public static bool AutoInitializePlugin + { + get + { + if(!autoInitializePluginSet) + { + var result = SettingsAsset.TryLoad(out autoInitializePlugin); + if(!result.Succeeded()) + Logger.Log(LogLevel.Error, result.message); + autoInitializePluginSet = true; + } + + return autoInitializePlugin; + } + //Ignore the value in config + set + { + autoInitializePluginSet = true; + autoInitializePlugin = value; + } + } + + /// Has the plugin been initialized. + public static bool IsInitialized(out Result result) + { + if(isInitialized) + { + result = ResultBuilder.Success; + return true; + } + + if(AutoInitializePlugin) + { + Debug.Log("Auto initialized"); + result = InitializeForUser("Default"); + if(result.Succeeded()) + { + result = ResultBuilder.Success; + return true; + } + } + + result = ResultBuilder.Create(ResultCode.Init_NotYetInitialized); + Logger.Log( + LogLevel.Error, + "You attempted to use a method but the plugin hasn't been initialized yet." + + " Be sure to use ModIOUnity.InitializeForUser to initialize the plugin " + + "before attempting this method again (Or ModIOUnityAsync.InitializeForUser)."); + return false; + } + + /// Checks the state of the credentials used to authenticate. + public static bool IsAuthenticatedSessionValid(out Result result) + { + // Check if we have an Auth token saved to the current UserData + if(UserData.instance == null || string.IsNullOrEmpty(UserData.instance.oAuthToken)) + { + Logger.Log( + LogLevel.Verbose, + "The current session is not authenticated."); + result = ResultBuilder.Create(ResultCode.User_NotAuthenticated); + return false; + } + + // Check if a previous WebRequest was rejected due to an old token + if(UserData.instance.oAuthTokenWasRejected) + { + Logger.Log( + LogLevel.Warning, + "The auth token was rejected. This could be because it's old and may" + + " need to be re-authenticated."); + result = ResultBuilder.Create(ResultCode.User_InvalidToken); + return false; + } + + // No problems found, so therefore, it's probably still a valid session + result = ResultBuilder.Success; + return true; + } + + /// + /// This will check if a string has the correct layout for an email address. This doesn't + /// check for a valid mailing server. + /// + /// string to check as a valid email + /// Result of the check + /// True if the string has a valid email address format + public static bool IsValidEmail(string emailaddress, out Result result) + { + // MailAddress.TryCreate(emailaddress, out email); // <-- can't use this until .NET 6.0 + // Until .NET 6.0 we have to use a try-catch + try + { + // Use System.Net.Mail.MailAddress' constructor to validate the email address string + MailAddress email = new MailAddress(emailaddress); + } + catch + { + result = ResultBuilder.Create(ResultCode.User_InvalidEmailAddress); + Logger.Log( + LogLevel.Error, + "The Email Address provided was not recognised by .NET as a valid Email Address."); + return false; + } + + result = ResultBuilder.Success; + return true; + } + + static bool IsSearchFilterValid(SearchFilter filter, out Result result) + { + if(filter == null) + { + Logger.Log(LogLevel.Error, + "The SearchFilter parameter cannot be null. Be sure to assign a " + + "valid SearchFilter object before using GetMods method."); + result = ResultBuilder.Create(ResultCode.InvalidParameter_CantBeNull); + return false; + } + return filter.IsSearchFilterValid(out result); + } + + public static bool IsRateLimited(out Result result) + { + throw new NotImplementedException(); + } + + public static bool AreSettingsValid(out Result result) + { + throw new NotImplementedException(); + } + +#endregion // Synchronous Requirement Checks - to detect early outs and failures + +#region Initialization and Maintenance + + /// Assigns the logging delegate the plugin uses to output log messages. + public static void SetLoggingDelegate(LogMessageDelegate loggingDelegate) + { + Logger.SetLoggingDelegate(loggingDelegate); + } + + /// Initializes the Plugin for the given settings. Loads the + /// state of mods installed on the system as well as the set of mods the + /// specified user has installed on this device. + public static Result InitializeForUser(string userProfileIdentifier, + ServerSettings serverSettings, + BuildSettings buildSettings) + { + TaskCompletionSource callbackConfirmation = new TaskCompletionSource(); + openCallbacks_dictionary.Add(callbackConfirmation, null); + + // clean user profile identifier in case of filename usage + userProfileIdentifier = IOUtil.CleanFileNameForInvalidCharacters(userProfileIdentifier); + + Settings.server = serverSettings; + Settings.build = buildSettings; + + // - load data services - + // NOTE(@jackson): + // The order of the data module loading is important on standalone platforms. + // The UserDataService must be loaded before the PersistentDataService to ensure we + // load a potential persistent directory override stored in the user's json file. A + // directory override will be loaded in to the BuildSettings.extData field. + + // TODO(@jackson): Handle errors + var createUds = PlatformConfiguration.CreateUserDataService(userProfileIdentifier, + serverSettings.gameId, buildSettings); + + DataStorage.user = createUds.value; + + // - load user data - user.json needs to be loaded before persistant data service + var result = DataStorage.LoadUserData(); + + ResultAnd createPds = PlatformConfiguration.CreatePersistentDataService(serverSettings.gameId, + buildSettings); + + DataStorage.persistent = createPds.value; + + ResultAnd createTds = PlatformConfiguration.CreateTempDataService(serverSettings.gameId, + buildSettings); + + DataStorage.temp = createTds.value; + + if(result.code == ResultCode.IO_FileDoesNotExist + || result.code == ResultCode.IO_DirectoryDoesNotExist) + { + UserData.instance = new UserData(); + result = DataStorage.SaveUserData(); + } + + // TODO We need to have one line that invokes + + if(!result.Succeeded()) + { + // TODO(@jackson): Prepare for public + callbackConfirmation.SetResult(true); + openCallbacks_dictionary.Remove(callbackConfirmation); + return result; + } + + Logger.Log(LogLevel.Verbose, "Loading Registry"); + // - load registry - + result = ModCollectionManager.LoadRegistry(); + + Logger.Log(LogLevel.Verbose, "Finished Loading Registry"); + openCallbacks_dictionary[callbackConfirmation] = null; + + // Set response cache size limit + ResponseCache.maxCacheSize = buildSettings.requestCacheLimitKB * 1024; + + // If we fail to load the registry we simply create a new one. It may be corrupted + // if(!result.Succeeded()) + // { + // callbackConfirmation.SetResult(true); + // openCallbacks.Remove(callbackConfirmation); + // return result; + // } + + // - finalize - + isInitialized = true; + + result = ResultBuilder.Success; + callbackConfirmation.SetResult(true); + openCallbacks_dictionary.Remove(callbackConfirmation); + + Logger.Log(LogLevel.Message, $"Initialized User[{userProfileIdentifier}]"); + + return result; + } + + /// Initializes the Plugin for the given settings. Loads the + /// state of mods installed on the system as well as the set of mods the + /// specified user has installed on this device. + public static Result InitializeForUser(string userProfileIdentifier) + { + TaskCompletionSource callbackConfirmation = new TaskCompletionSource(); + openCallbacks_dictionary.Add(callbackConfirmation, null); + + ServerSettings serverSettings; + BuildSettings buildSettings; + + Result result = SettingsAsset.TryLoad(out serverSettings, out buildSettings); + + if(result.Succeeded()) + { + result = InitializeForUser(userProfileIdentifier, serverSettings, buildSettings); + } + + callbackConfirmation.SetResult(true); + openCallbacks_dictionary.Remove(callbackConfirmation); + return result; + } + + /// + /// Cancels any running public operations, frees plugin resources, and invokes + /// any pending callbacks with a cancelled result code. + /// + public static async Task Shutdown(Action shutdownComplete) + { + if(!IsInitialized(out Result _)) + { + Logger.Log(LogLevel.Verbose, "ALREADY SHUTDOWN"); + return; + } + + // This first block ensures we dont have conflicting shutdown operations + // being called at the same time. + if(shuttingDown && shutdownOperation != null) + { + Logger.Log(LogLevel.Verbose, "WAITING FOR SHUTDOWN "); + await shutdownOperation; + } + else + { + Logger.Log(LogLevel.Verbose, "SHUTTING DOWN"); + + try + { + shuttingDown = true; + + // This passthrough ensures we can properly check for ongoing shutdown + // operations (see the above block) + shutdownOperation = ShutdownTask(); + + await shutdownOperation; + + await openCallbacks.ShutDown(); + + shutdownOperation = null; + + shuttingDown = false; + } + catch(Exception e) + { + shuttingDown = false; + Logger.Log(LogLevel.Error, $"Exception caught when shutting down plugin: {e.Message} - inner={e.InnerException?.Message} - stacktrace: {e.StackTrace}"); + } + + + Logger.Log(LogLevel.Verbose, "FINISHED SHUTDOWN"); + } + + shutdownComplete?.Invoke(); + } + + /// + /// This method contains all of the actions that need to be taken in order to properly + /// shutdown the plugin and free up all resources. + /// + static async Task ShutdownTask() + { + await WebRequestManager.Shutdown(); + await ModManagement.ShutdownOperations(); + + isInitialized = false; + UserData.instance = null; + // Settings.server = default; + // Settings.build = default; + ResponseCache.ClearCache(); + ModCollectionManager.ClearRegistry(); + + // get new instance of dictionary so it's thread safe + Dictionary, Task> tasks = + new Dictionary, Task>(openCallbacks_dictionary); + + // iterate over the tasks and await for non faulted callbacks to finish + using(var enumerator = tasks.GetEnumerator()) + { + while(enumerator.MoveNext()) + { + if(enumerator.Current.Value != null && enumerator.Current.Value.IsFaulted) + { + Logger.Log(LogLevel.Error, + "An Unhandled Exception was thrown in" + + " an awaited task. The corresponding callback" + + " will never be invoked."); + if(openCallbacks_dictionary.ContainsKey(enumerator.Current.Key)) + { + openCallbacks_dictionary.Remove(enumerator.Current.Key); + } + } + else + { + await enumerator.Current.Key.Task; + } + } + } + Logger.Log(LogLevel.Verbose, "Shutdown main handlers"); + } + + #endregion // Initialization and Maintenance + + #region Authentication + + public static async Task IsAuthenticated() + { + var callbackConfirmation = openCallbacks.New(); + Result result = ResultBuilder.Unknown; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + var config = API.Requests.GetAuthenticatedUser.Request(); + var task = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + result = task.result; + + if(result.Succeeded()) + { + result = task.result; + UserData.instance.SetUserObject(task.value); + } + } + + openCallbacks.Complete(callbackConfirmation); + return result; + } + + public static async void IsAuthenticated(Action callback) + { + if(callback == null) + { + Logger.Log(LogLevel.Warning, "No callback was given to the IsAuthenticated method. " + + "This method has been cancelled."); + return; + } + + Result result = await IsAuthenticated(); + callback?.Invoke(result); + } + + public static async Task RequestEmailAuthToken(string emailaddress) + { + var callbackConfirmation = openCallbacks.New(); + + if(IsInitialized(out var result) && IsValidEmail(emailaddress, out result)) + { + var config = API.Requests.AuthenticateViaEmail.Request(emailaddress); + result = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + } + + openCallbacks.Complete(callbackConfirmation); + + return result; + } + + + public static async void RequestEmailAuthToken(string emailaddress, Action callback) + { + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the RequestEmailAuthToken method. It is " + + "possible that this operation will not resolve successfully and should be " + + "checked with a proper callback."); + } + + var result = await RequestEmailAuthToken(emailaddress); + callback?.Invoke(result); + } + + public static async Task SubmitEmailSecurityCode(string securityCode) + { + TaskCompletionSource callbackConfirmation = new TaskCompletionSource(); + openCallbacks_dictionary.Add(callbackConfirmation, null); + + //------------------------------[ Setup callback param ]------------------------------- + Result result = ResultBuilder.Unknown; + //------------------------------------------------------------------------------------- + if(string.IsNullOrWhiteSpace(securityCode)) + { + Logger.Log( + LogLevel.Warning, + "The security code provided is null. Be sure to use the 5 digit code" + + " sent to the specified email address when using RequestEmailAuthToken()"); + ResultBuilder.Create(ResultCode.InvalidParameter_CantBeNull); + } + else if(IsInitialized(out result)) + { + // Synchronous checks SUCCEEDED + WebRequestConfig config = API.Requests.AuthenticateUser.InternalRequest(securityCode); + + Task> task = WebRequestManager.Request(config); + + // We always cache the task while awaiting so we can check IsFaulted externally + openCallbacks_dictionary[callbackConfirmation] = task; + ResultAnd response = await task; + openCallbacks_dictionary[callbackConfirmation] = null; + + result = response.result; + + if(result.Succeeded()) + { + // Server request SUCCEEDED + + // Assign deserialized response as the token + + // Set User Access Token + UserData.instance.SetOAuthToken(response.value); + + // Get and cache the current user + // (using empty delegate instead of null callback to avoid log and early-out) + // TODO @Steve Need to discuss + // I never want to use these methods publicly, only ever calling them through + // front-end ModIOUnity class. I have some thoughts on this (See trello card) + // We could create another impl. class that just does direct 1:1 (more or less) + // API calls and in this impl class we simply implement and use the results to + // handle the logs and responses we'd want to give the front end user (also + // helps to keep track fo what WE are calling and what the user might be + // calling, the following line of code is a perfect example of how we'd expect + // slightly different behaviour) + await GetCurrentUser(delegate { }); + + // continue to invoke at the end of this method + } + } + + //callback?.Invoke(result); + callbackConfirmation.SetResult(true); + openCallbacks_dictionary.Remove(callbackConfirmation); + + return result; + } + + public static async void SubmitEmailSecurityCode(string securityCode, + Action callback) + { + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the RequestEmailAuthToken method. It is " + + "possible that this operation will not resolve successfully and should be " + + "checked with a proper callback."); + } + + Result result = await SubmitEmailSecurityCode(securityCode); + callback?.Invoke(result); + } + + public static async Task> GetTermsOfUse() + { + var callbackConfirmation = openCallbacks.New(); + + var config = API.Requests.GetTerms.Request(); + TermsOfUse termsOfUse = default(TermsOfUse); + + if(IsInitialized(out var result) && !ResponseCache.GetTermsFromCache(config.Url, out termsOfUse)) + { + //hmm okay + //lets call it without the open callbacks? + var task = WebRequestManager.Request(config); + var response = await openCallbacks.Run(callbackConfirmation, task); + result = response.result; + + if(result.Succeeded()) + { + termsOfUse = ResponseTranslator.ConvertTermsObjectToTermsOfUse(response.value); + + // Add terms to cache + ResponseCache.AddTermsToCache(config.Url, termsOfUse); + } + } + + openCallbacks.Complete(callbackConfirmation); + + return ResultAnd.Create(result, termsOfUse); + } + + public static async void GetTermsOfUse(Action> callback) + { + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the GetTermsOfUse method, any response " + + "returned from the server wont be used. This operation has been cancelled."); + return; + } + + ResultAnd resultAndTermsOfUse = await GetTermsOfUse(); + callback?.Invoke(resultAndTermsOfUse); + } + + public static async Task AuthenticateUser( + string data, AuthenticationServiceProvider serviceProvider, + [CanBeNull] string emailAddress, [CanBeNull] TermsHash? hash, [CanBeNull] string nonce, + [CanBeNull] OculusDevice? device, [CanBeNull] string userId, PlayStationEnvironment environment) + { + TaskCompletionSource callbackConfirmation = new TaskCompletionSource(); + openCallbacks_dictionary.Add(callbackConfirmation, null); + + //------------------------------[ Setup callback param ]------------------------------- + Result result; + //------------------------------------------------------------------------------------- + + if(IsInitialized(out result) + && (emailAddress == null || IsValidEmail(emailAddress, out result))) + { + // Synchronous checks SUCCEEDED + + WebRequestConfig config = API.Requests.AuthenticateUser.ExternalRequest( + serviceProvider, data, hash, emailAddress,nonce, device, userId, environment); + + Task> task = WebRequestManager.Request(config); + + // We always cache the task while awaiting so we can check IsFaulted externally + openCallbacks_dictionary[callbackConfirmation] = task; + ResultAnd response = await task; + openCallbacks_dictionary[callbackConfirmation] = null; + + result = response.result; + + if(result.Succeeded()) + { + // Server request SUCCEEDED + + // Set User Access Token + UserData.instance.SetOAuthToken(response.value); + + // TODO @Steve (see other example, same situation in email auth) + await GetCurrentUser(delegate { }); + } + } + + callbackConfirmation.SetResult(true); + openCallbacks_dictionary.Remove(callbackConfirmation); + + return result; + } + + public static async void AuthenticateUser( + string data, AuthenticationServiceProvider serviceProvider, + [CanBeNull] string emailAddress, [CanBeNull] TermsHash? hash, [CanBeNull] string nonce, + [CanBeNull] OculusDevice? device, [CanBeNull] string userId, + PlayStationEnvironment environment, Action callback) + { + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the AuthenticateUser method. It is " + + "possible that this operation will not resolve successfully and should be " + + "checked with a proper callback."); + } + + Result result = await AuthenticateUser(data, serviceProvider, emailAddress, hash, nonce, device, userId, environment); + callback?.Invoke(result); + } + + + #endregion // Authentication + + #region Mod Browsing + + public static async Task> GetGameTags() + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + TagCategory[] tags = new TagCategory[0]; + + if(IsInitialized(out result) && !ResponseCache.GetTagsFromCache(out tags)) + { + var config = API.Requests.GetGameTags.Request(); + + var task = await openCallbacks.Run(callbackConfirmation, + WebRequestManager.Request(config)); + + result = task.result; + if(result.Succeeded()) + { + tags = ResponseTranslator.ConvertGameTagOptionsObjectToTagCategories(task.value.data); + ResponseCache.AddTagsToCache(tags); + } + } + + openCallbacks.Complete(callbackConfirmation); + + return ResultAnd.Create(result, tags); + } + + public static async void GetGameTags(Action> callback) + { + // Early out + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the GetGameTags method, any response " + + "returned from the server wont be used. This operation has been cancelled."); + return; + } + ResultAnd result = await GetGameTags(); + callback?.Invoke(result); + } + + public static async Task> GetMods(SearchFilter filter) + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + ModPage page = new ModPage(); + + string unpaginatedURL = API.Requests.GetMods.UnpaginatedURL(); + var offset = filter.pageIndex * filter.pageSize; + + if(IsInitialized(out result) && IsSearchFilterValid(filter, out result) + && !ResponseCache.GetModsFromCache(unpaginatedURL, offset, filter.pageSize, out page)) + { + var config = API.Requests.GetMods.RequestPaginated(filter); + + var task = await openCallbacks.Run(callbackConfirmation, + WebRequestManager.Request(config)); //doesnt outright match with v2 but class is same shape + + result = task.result; + + if(result.Succeeded()) + { + page = ResponseTranslator.ConvertResponseSchemaToModPage(task.value, filter); + + // Add this response into the cache + ResponseCache.AddModsToCache(unpaginatedURL, offset, page); + + // Return the exact number of mods that were requested (not more) + if(page.modProfiles.Length > filter.pageSize) + { + Array.Copy(page.modProfiles, page.modProfiles, filter.pageSize); + } + } + } + + openCallbacks.Complete(callbackConfirmation); + + return ResultAnd.Create(result, page); + } + + public static async void GetMods(SearchFilter filter, Action> callback) + { + // Early out + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the GetMods method, any response " + + "returned from the server wont be used. This operation has been cancelled."); + return; + } + ResultAnd result = await GetMods(filter); + callback?.Invoke(result); + } + + public static async Task> GetMod(long id) + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + ModProfile profile = default; + + if(IsInitialized(out result) && !ResponseCache.GetModFromCache((ModId)id, out profile)) + { + var config = API.Requests.GetMod.Request((ModId)id); + var task = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + + result = task.result; + + if(result.Succeeded()) + { + profile = ResponseTranslator.ConvertModObjectToModProfile(task.value); + ResponseCache.AddModToCache(profile); + } + } + + openCallbacks.Complete(callbackConfirmation); + return ResultAnd.Create(result, profile); + } + + public static async Task GetMod(long id, Action> callback) + { + // Early out + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the GetMod method, any response " + + "returned from the server wont be used. This operation has been cancelled."); + return; + } + ResultAnd result = await GetMod(id); + callback?.Invoke(result); + } + + public static async Task> GetModDependencies(ModId modId) + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + ModDependencies[] modDependencies = default; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result) + && !ResponseCache.GetModDependenciesCache(modId, out modDependencies)) + { + var config = API.Requests.GetModDependencies.Request(modId); + var task = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + + result = task.result; + + if(result.Succeeded()) + { + modDependencies = ResponseTranslator.ConvertModDependenciesObjectToModDependencies(task.value.data); + ResponseCache.AddModDependenciesToCache(modId, modDependencies); + } + } + + openCallbacks.Complete(callbackConfirmation); + return ResultAnd.Create(result, modDependencies); + } + + public static async void GetModDependencies(ModId modId, Action> callback) + { + // Check for callback + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the GetModDependencies method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + var result = await GetModDependencies(modId); + callback?.Invoke(result); + } + + public static async Task> GetCurrentUserRatings() + { + var callbackConfirmation = openCallbacks.New(); + + Result result = default; + Rating[] ratings = default; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result) + && !ResponseCache.GetCurrentUserRatingsCache(out ratings)) + { + var config = API.Requests.GetCurrentUserRatings.Request(); + var task = ModCollectionManager.TryRequestAllResults(config.Url, API.Requests.GetCurrentUserRatings.Request); + var response = await openCallbacks.Run(callbackConfirmation, task); + + result = response.result; + + if(result.Succeeded()) + { + ratings = ResponseTranslator.ConvertModRatingsObjectToRatings(response.value); + + ResponseCache.ReplaceCurrentUserRatings(ratings); + } + } + + // FINAL SUCCESS / FAILURE depending on callback params set previously + openCallbacks.Complete(callbackConfirmation); + return ResultAnd.Create(result, ratings); + } + + public static async void GetCurrentUserRatings(Action> callback) + { + // Check for callback + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the GetCurrentUserRatings method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + var result = await GetCurrentUserRatings(); + callback?.Invoke(result); + } + + public static async Task> GetCurrentUserRatingFor(ModId modId) + { + var callbackConfirmation = openCallbacks.New(); + + //------------------------------[ Setup callback params ]------------------------------ + Result result = ResultBuilder.Unknown; + ModRating rating = default; + //------------------------------------------------------------------------------------- + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + // If the ratings haven't been cached this session, we can do so here + if(!ResponseCache.HaveRatingsBeenCachedThisSession()) + { + // If there is no rating, make sure we've cached the ratings + Task> task = GetCurrentUserRatings(); + ResultAnd response = await openCallbacks.Run(callbackConfirmation, task); + + if(!response.result.Succeeded()) + { + result = response.result; + goto End; + } + } + + // Try to get a single rating from the cache + if(ResponseCache.GetCurrentUserRatingFromCache(modId, out rating)) + { + result = ResultBuilder.Success; + } + } + + End: + + // FINAL SUCCESS / FAILURE depending on callback params set previously + callbackConfirmation.SetResult(true); + openCallbacks.Remove(callbackConfirmation); + + return ResultAnd.Create(result, rating); + } + + public static async void GetCurrentUserRatingFor(ModId modId, Action> callback) + { + // Check for callback + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the GetCurrentUserRatingFor method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + var result = await GetCurrentUserRatingFor(modId); + callback?.Invoke(result); + } +#endregion // Mod Browsing + +#region Mod Management + + public static Result EnableModManagement( + [CanBeNull] ModManagementEventDelegate modManagementEventDelegate) + { + if(IsInitialized(out Result result) && IsAuthenticatedSessionValid(out result)) + { + ModManagement.modManagementEventDelegate = modManagementEventDelegate; + ModManagement.EnableModManagement(); + } + + return result; + } +#pragma warning disable 4014 + public static Result DisableModManagement() + { + if(IsInitialized(out Result result) && IsAuthenticatedSessionValid(out result)) + { + ModManagement.DisableModManagement(); + + ModManagement.ShutdownOperations(); + } + + return result; + } +#pragma warning restore 4014 + + public static async Task FetchUpdates() + { + var callbackConfirmation = openCallbacks.New(); + + if(IsInitialized(out Result result) && IsAuthenticatedSessionValid(out result)) + { + result = await openCallbacks.Run(callbackConfirmation, ModCollectionManager.FetchUpdates()); + + if(result.Succeeded()) + { + ModManagement.WakeUp(); + } + } + + openCallbacks.Complete(callbackConfirmation); + return result; + } + + public static async Task FetchUpdates(Action callback) + { + if(callback == null) + { + Logger.Log(LogLevel.Warning, + "No callback was given for the FetchUpdates" + + " method. This is not recommended because you will " + + "not know if the fetch was successful."); + } + + Result result = await FetchUpdates(); + callback?.Invoke(result); + } + + // This is technically redundant (See how it's implemented), consider removing. + public static bool IsModManagementBusy() + { + return ModManagement.GetCurrentOperationProgress() != null; + } + + public static Result ForceUninstallMod(ModId modId) + { + if(IsInitialized(out Result result) && IsAuthenticatedSessionValid(out result)) + { + result = + ModCollectionManager.MarkModForUninstallIfNotSubscribedToCurrentSession(modId); + ModManagement.WakeUp(); + } + + return result; + } + + public static ProgressHandle GetCurrentModManagementOperation() + { + return ModManagement.GetCurrentOperationProgress(); + } + + public static bool EnableMod(ModId modId) + { + if(!IsInitialized(out Result _)) + { + return false; + } + + return ModCollectionManager.EnableModForCurrentUser(modId); + } + + public static bool DisableMod(ModId modId) + { + if(!IsInitialized(out Result _)) + { + return false; + } + + return ModCollectionManager.DisableModForCurrentUser(modId); + } +#endregion // Mod Management + +#region User Management + + public static async Task AddModRating(ModId modId, ModRating modRating) + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + + var config = API.Requests.AddModRating.Request(modId, modRating); + var response = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + + result = response.result; + + var rating = new Rating + { + dateAdded = DateTime.Now, + rating = modRating, + modId = modId + }; + ResponseCache.AddCurrentUserRating(modId, rating); + + if(result.code_api == ResultCode.RESTAPI_ModRatingAlreadyExists + || result.code_api == ResultCode.RESTAPI_ModRatingNotFound) + { + // SUCCEEDED + result = ResultBuilder.Success; + } + } + + openCallbacks.Complete(callbackConfirmation); + return result; + } + + + public static async void AddModRating(ModId modId, ModRating rating, + Action callback) + { + // Callback warning + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the AddModRating method. It is " + + "possible that this operation will not resolve successfully and should be " + + "checked with a proper callback."); + } + + Result result = await AddModRating(modId, rating); + callback?.Invoke(result); + } + + public static async Task> GetCurrentUser() + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + UserProfile userProfile = default; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result) + && !ResponseCache.GetUserProfileFromCache(out userProfile)) + { + var config = API.Requests.GetAuthenticatedUser.Request(); + var task = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + + result = task.result; + + if(result.Succeeded()) + { + UserData.instance.SetUserObject(task.value); + userProfile = ResponseTranslator.ConvertUserObjectToUserProfile(task.value); + + // Add UserProfile to cache (lasts for the whole session) + ResponseCache.AddUserToCache(userProfile); + } + } + + callbackConfirmation.SetResult(true); + openCallbacks_dictionary.Remove(callbackConfirmation); + + return ResultAnd.Create(result, userProfile); + } + + public static async Task GetCurrentUser(Action> callback) + { + // Early out + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the GetCurrentUser method, any response " + + "returned from the server wont be used. This operation has been cancelled."); + return; + } + + var result = await GetCurrentUser(); + callback(result); + } + + public static async Task UnsubscribeFrom(ModId modId) + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + var config = API.Requests.UnsubscribeFromMod.Request(modId); + var task = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + + result = task.result; + var success = result.Succeeded() + || result.code_api == ResultCode.RESTAPI_ModSubscriptionNotFound; + + if(success) + { + result = ResultBuilder.Success; + ModCollectionManager.RemoveModFromUserSubscriptions(modId, false); + + if(ShouldAbortDueToDownloading(modId)) + { + ModManagement.AbortCurrentDownloadJob(); + } + else if(ShouldAbortDueToInstalling(modId)) + { + ModManagement.AbortCurrentInstallJob(); + } + ModManagement.WakeUp(); + } + + ModCollectionManager.RemoveModFromUserSubscriptions(modId, success); + } + + openCallbacks.Complete(callbackConfirmation); + return result; + } + + static bool ShouldAbortDueToDownloading(ModId modId) + { + return ModManagement.currentJob != null + && ModManagement.currentJob.mod.modObject.id == modId + && ModManagement.currentJob.type == ModManagementOperationType.Download; + } + + static bool ShouldAbortDueToInstalling(ModId modId) + { + return ModManagement.currentJob != null + && ModManagement.currentJob.mod.modObject.id == modId + && ModManagement.currentJob.type == ModManagementOperationType.Install + && ModManagement.currentJob.zipOperation != null; + } + + public static async void UnsubscribeFrom(ModId modId, Action callback) + { + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the UnsubscribeFrom method. It is " + + "possible that this operation will not resolve successfully and should be " + + "checked with a proper callback."); + } + + Result result = await UnsubscribeFrom(modId); + callback?.Invoke(result); + } + + public static async Task SubscribeTo(ModId modId) + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + var config = API.Requests.SubscribeToMod.Request(modId); + var taskResult = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + + result = taskResult.result; + + if(result.Succeeded()) + { + ModCollectionManager.UpdateModCollectionEntry(modId, taskResult.value); + ModCollectionManager.AddModToUserSubscriptions(modId); + ModManagement.WakeUp(); + } + else if(result.code_api == ResultCode.RESTAPI_ModSubscriptionAlreadyExists) + { + // Hack implementation: + // If sub exists, then we don't receive the Mod Object + // So, our sub request did nothing. + // If the we attempt to fetch the Mod Object, and it fails, + // treat the subscribe attempt as a failure. + + ModCollectionManager.AddModToUserSubscriptions(modId); + + var getModConfig = API.Requests.GetMod.Request(modId); + var getModConfigResult = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(getModConfig)); + + if(getModConfigResult.result.Succeeded()) + { + ModCollectionManager.UpdateModCollectionEntry(modId, getModConfigResult.value); + ModManagement.WakeUp(); + } + + result = getModConfigResult.result; + } + } + + openCallbacks.Complete(callbackConfirmation); + + return result; + } + + public static async void SubscribeTo(ModId modId, Action callback) + { + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the SubscribeTo method. It is " + + "possible that this operation will not resolve successfully and should be " + + "checked with a proper callback."); + } + + Result result = await SubscribeTo(modId); + callback?.Invoke(result); + } + + + //Should this be exposed in ModIOUnity/ModIOUnityAsync? + public static async Task> GetUserSubscriptions(SearchFilter filter) + { + var callbackConfirmation = openCallbacks.New(); + Result result; + ModPage page = new ModPage(); + + if(IsInitialized(out result) && IsSearchFilterValid(filter, out result) + && IsAuthenticatedSessionValid(out result)) + { + var config = API.Requests.GetUserSubscriptions.Request(filter); + var task = await openCallbacks.Run(callbackConfirmation, + WebRequestManager.Request(config)); + + result = task.result; + + if(result.Succeeded()) + { + page = ResponseTranslator.ConvertResponseSchemaToModPage(task.value, filter); + } + } + + openCallbacks.Complete(callbackConfirmation); + return ResultAnd.Create(result, page); + } + + public static SubscribedMod[] GetSubscribedMods(out Result result) + { + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + SubscribedMod[] mods = ModCollectionManager.GetSubscribedModsForUser(out result); + return mods; + } + + return null; + } + + public static InstalledMod[] GetInstalledMods(out Result result) + { + if(IsInitialized(out result)/* && AreCredentialsValid(false, out result)*/) + { + InstalledMod[] mods = ModCollectionManager.GetInstalledMods(out result, true); + return mods; + } + + return null; + } + + public static UserInstalledMod[] GetInstalledModsForUser(out Result result, bool includeDisabledMods) + { + //Filter for user + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + var mods = ModCollectionManager.GetInstalledMods(out result, false); + return FilterInstalledModsIntoUserInstalledMods(UserData.instance.userObject.id, includeDisabledMods, mods); + } + + return null; + } + + internal static UserInstalledMod[] FilterInstalledModsIntoUserInstalledMods(long userId, bool includeDisabledMods, params InstalledMod[] mods) + => mods.Select(x => x.AsInstalledModsUser(userId)) + .Where(x => !x.Equals(default(UserInstalledMod))) + .Where(x => x.enabled || includeDisabledMods) + .ToArray(); + + public static Result RemoveUserData() + { + // We do not need to await this MM shutdown, it can happen silently +#pragma warning disable + ModManagement.ShutdownOperations(); +#pragma warning restore + + DisableModManagement(); + + // remove the user from mod collection registry of subscribed mods + ModCollectionManager.ClearUserData(); + + // remove the user's auth token and credentials, clear the session + UserData.instance?.ClearUser(); + + // clear the UserProfile from the cache as it is no longer valid + ResponseCache.ClearUserFromCache(); + + bool userExists = ModCollectionManager.DoesUserExist(); + + Result result = userExists + ? ResultBuilder.Create(ResultCode.User_NotRemoved) + : ResultBuilder.Success; + + return result; + } + + public static async void MuteUser(long userId, Action callback) + { + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the MuteUser method. It is " + + "possible that this operation will not resolve successfully and should be " + + "checked with a proper callback."); + } + + Result result = await MuteUser(userId); + callback?.Invoke(result); + } + + public static async void UnmuteUser(long userId, Action callback) + { + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the UnmuteUser method. It is " + + "possible that this operation will not resolve successfully and should be " + + "checked with a proper callback."); + } + + Result result = await UnmuteUser(userId); + callback?.Invoke(result); + } + + public static async Task MuteUser(long userId) + { + var callbackConfirmation = openCallbacks.New(); + Result result; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + var config = API.Requests.UserMute.Request(userId); + var task = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + result = task; + } + + openCallbacks.Complete(callbackConfirmation); + return result; + } + + public static async Task UnmuteUser(long userId) + { + var callbackConfirmation = openCallbacks.New(); + Result result; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + var config = API.Requests.UserUnmute.Request(userId); + var task = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + result = task; + } + + openCallbacks.Complete(callbackConfirmation); + return result; + } + +#endregion // User Management + +#region Mod Media + public static async Task> DownloadTexture(DownloadReference downloadReference) + { + //------------------------------[ Setup callback params ]------------------------------ + Result result; + Texture2D texture = null; + //------------------------------------------------------------------------------------- + + ResultAnd resultAnd = await GetImage(downloadReference); + result = resultAnd.result; + + if(result.Succeeded()) + { + IOUtil.TryParseImageData(resultAnd.value, out texture, out result); + } + + return ResultAnd.Create(result, texture); + } + + /// + /// This will first check if we are already attempting to download the same image with a + /// different web request. Instead of competing for a file stream it will simply wait for + /// the result of the other duplicate request (if any) + /// + public static async Task> GetImage(DownloadReference downloadReference) + { + if (!downloadReference.IsValid()) + { + Logger.Log( + LogLevel.Warning, + "The DownloadReference provided for the DownloadImage method was not" + + " valid. Consider using the DownloadReference.IsValid() method to check if the" + + "DownloadReference has an existing URL before using this method."); + return ResultAnd.Create(ResultCode.InvalidParameter_DownloadReferenceIsntValid, null); + } + if(onGoingImageDownloads.ContainsKey(downloadReference.url)) + { + Logger.Log(LogLevel.Verbose, $"The image ({downloadReference.filename}) " + + $"is already being download. Waiting for duplicate request's result."); + return await onGoingImageDownloads[downloadReference.url]; + } + + var task = DownloadImage(downloadReference); + onGoingImageDownloads.Add(downloadReference.url, task); + var result = await task; + onGoingImageDownloads.Remove(downloadReference.url); + return result; + } + + static async Task> DownloadImage(DownloadReference downloadReference) + { + TaskCompletionSource callbackConfirmation = new TaskCompletionSource(); + openCallbacks_dictionary.Add(callbackConfirmation, null); + + //------------------------------[ Setup callback params ]------------------------------ + Result result; + byte[] image = null; + //------------------------------------------------------------------------------------- + + if(IsInitialized(out result)) + { + // Check cache asynchronously for texture in temp folder + Task> cacheTask = + ResponseCache.GetImageFromCache(downloadReference); + + openCallbacks_dictionary[callbackConfirmation] = cacheTask; + ResultAnd cacheResponse = await cacheTask; + openCallbacks_dictionary[callbackConfirmation] = null; + result = cacheResponse.result; + + if(result.Succeeded()) + { + // CACHE SUCCEEDED + result = cacheResponse.result; + image = cacheResponse.value; + } + else + { + // GET FILE STREAM TO DOWNLOAD THE IMAGE FILE TO + // This stream is a direct write to the file location we will cache the + // image to so we dont need to add the image to cache once we're done so to speak + ResultAnd openWriteStream = DataStorage.GetImageFileWriteStream(downloadReference.url); + result = openWriteStream.result; + + if(result.Succeeded()) + { + using(openWriteStream.value) + { + // DOWNLOAD THE IMAGE + var handle = WebRequestManager.Download(downloadReference.url, openWriteStream.value, null); + result = await handle.task; + } + + if(result.Succeeded()) + { + // We need to re-open the stream because some platforms only allow a Read or Write stream, not both + ResultAnd openReadStream = DataStorage.GetImageFileReadStream(downloadReference.url); + result = openReadStream.result; + + if(result.Succeeded()) + { + using (openReadStream.value) + { + var readAllBytes = await openReadStream.value.ReadAllBytesAsync(); + result = readAllBytes.result; + + if(result.Succeeded()) + { + // CACHE SUCCEEDED + image = readAllBytes.value; + } + } + } + } + + // FAILED DOWNLOAD - ERASE THE FILE SO WE DONT CREATE A CORRUPT CACHED IMAGE + if(!result.Succeeded()) + { + Result cleanupResult = DataStorage.DeleteStoredImage(downloadReference.url); + if(!cleanupResult.Succeeded()) + { + Logger.Log(LogLevel.Error, + $"[Internal] Failed to cleanup downloaded image." + + $" This may result in a corrupt or invalid image being" + + $" loaded for modId {downloadReference.modId}"); + } + } + } + } + // continue to invoke at the end of this method + } + + + callbackConfirmation.SetResult(true); + openCallbacks_dictionary.Remove(callbackConfirmation); + + return ResultAnd.Create(result, image); + } + + public static async void DownloadTexture(DownloadReference downloadReference, + Action> callback) + { + // Early out + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the DownloadTexture method. This operation has been cancelled."); + return; + } + if(!IsInitialized(out Result initResult)) + { + var r = ResultAnd.Create(initResult, null); + callback?.Invoke(r); + return; + } + + ResultAnd result = await DownloadTexture(downloadReference); + callback?.Invoke(result); + } + + public static async void DownloadImage(DownloadReference downloadReference, + Action> callback) + { + // Early out + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the DownloadImage method. This operation has been cancelled."); + return; + } + if(!IsInitialized(out Result initResult)) + { + var r = ResultAnd.Create(initResult, null); + callback?.Invoke(r); + return; + } + + ResultAnd result = await GetImage(downloadReference); + callback?.Invoke(result); + } + + #endregion // Mod Media + + #region Reporting + + public static async Task Report(Report report) + { + var callbackConfirmation = openCallbacks.New(); + Result result = ResultBuilder.Unknown; + + if(report == null || !report.CanSend()) + { + Logger.Log(LogLevel.Error, + "The Report instance provided to the Reporting method is not setup correctly" + + " and cannot be sent as a valid report to mod.io"); + + result = report == null + ? ResultBuilder.Create(ResultCode.InvalidParameter_CantBeNull) + : ResultBuilder.Create(ResultCode.InvalidParameter_ReportNotReady); + } + else if(IsInitialized(out result)) + { + var config = API.Requests.Report.Request(report); + var task = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + result = task.result; + } + + openCallbacks.Complete(callbackConfirmation); + + return result; + } + + public static async void Report(Report report, Action callback) + { + // TODO @Steve implement reporting for users + // This has to be done before GDK and XDK implementation is publicly supported + + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the Report method. It is " + + "possible that this operation will not resolve successfully and should be " + + "checked with a proper callback."); + } + + Result result = await Report(report); + callback?.Invoke(result); + } +#endregion // Reporting + +#region Mod Uploading + public static CreationToken GenerateCreationToken() + { + return ModManagement.GenerateNewCreationToken(); + } + + + public static async Task> CreateModProfile(CreationToken token, ModProfileDetails modDetails) + { + // - Early Outs - + if(Settings.server.disableUploads) + { + Logger.Log(LogLevel.Error, + "The current plugin configuration has uploading disabled."); + + return ResultAnd.Create(ResultBuilder.Create(ResultCode.Settings_UploadsDisabled), ModId.Null); + } + + var callbackConfirmation = openCallbacks.New(); + + Result result; + ModId modId = (ModId)0; + + // Check valid token + if(!ModManagement.IsCreationTokenValid(token)) + { + Logger.Log( + LogLevel.Error, + "The provided CreationToken is not valid and cannot be used to create " + + "a new mod profile. Be sure to use GenerateCreationToken() before attempting to" + + " create a new Mod Profile"); + result = ResultBuilder.Create(ResultCode.InvalidParameter_BadCreationToken); + } + else + { + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result) + && IsModProfileDetailsValid(modDetails, out result)) + { + //make call + var config = API.Requests.AddMod.Request(modDetails); + var response = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + result = response.result; + + if(result.Succeeded()) + { + modId = (ModId)response.value.id; + + ModManagement.InvalidateCreationToken(token); + ResponseCache.ClearCache(); + } + } + } + + openCallbacks.Complete(callbackConfirmation); + return ResultAnd.Create(result, modId); + } + + public static async void CreateModProfile(CreationToken token, ModProfileDetails modDetails, + Action> callback) + { + // - Early Outs - + // Check callback + if(callback == null) + { + Logger.Log( + LogLevel.Error, + "No callback was given to the CreateModProfile method. You need" + + "to retain the ModId returned by the callback in order to further apply changes" + + "or edits to the newly created mod profile. The operation has been cancelled."); + return; + } + + var result = await CreateModProfile(token, modDetails); + callback?.Invoke(result); + } + + public static async Task EditModProfile(ModProfileDetails modDetails) + { + // - Early Outs - + // Check disableUploads + if(Settings.server.disableUploads) + { + Logger.Log(LogLevel.Error, + "The current plugin configuration has uploading disabled."); + + return ResultBuilder.Create(ResultCode.Settings_UploadsDisabled); + } + + var callbackConfirmation = openCallbacks.New(); + Result result; + + // Check for modId + if(modDetails == null) + { + Logger.Log(LogLevel.Error, + "The ModProfileDetails provided is null. You cannot update a mod " + + "without providing a valid ModProfileDetails object."); + result = ResultBuilder.Create(ResultCode.InvalidParameter_CantBeNull); + } + else if(modDetails.modId == null) + { + Logger.Log(LogLevel.Error, + "The provided ModProfileDetails has not been assigned a ModId. Ensure" + + " you assign the Id of the mod you intend to edit to the ModProfileDetails.modId" + + " field."); + result = ResultBuilder.Create(ResultCode.InvalidParameter_ModProfileRequiredFieldsNotSet); + } + else if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result) + && IsModProfileDetailsValidForEdit(modDetails, out result)) + { + // TODO remove this warning if the EditMod endpoint adds tag editing feature + if(modDetails.tags != null && modDetails.tags.Length > 0) + { + Logger.Log(LogLevel.Warning, + "The EditMod method cannot be used to change a ModProfile's tags." + + " Use the ModIOUnity.AddTags and ModIOUnity.DeleteTags methods instead." + + " The 'tags' array in the ModProfileDetails will be ignored."); + } + + var config = modDetails.logo != null + ? API.Requests.EditMod.RequestPOST(modDetails) + : API.Requests.EditMod.RequestPUT(modDetails); + + result = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + + if(result.Succeeded()) + { + // TODO This request returns the new ModObject, we should cache this new mod profile when we succeed + } + } + + openCallbacks.Complete(callbackConfirmation); + + return result; + } + + + public static async void EditModProfile(ModProfileDetails modDetails, + Action callback) + { + // Check callback + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the EditModProfile method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + var result = await EditModProfile(modDetails); + callback?.Invoke(result); + } + + public static async void DeleteTags(ModId modId, string[] tags, + Action callback) + { + // Check callback + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the DeleteTags method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + var result = await DeleteTags(modId, tags); + callback?.Invoke(result); + } + + public static async Task DeleteTags(ModId modId, string[] tags) + { + // - Early Outs - + // Check disableUploads + if(Settings.server.disableUploads) + { + Logger.Log(LogLevel.Error, + "The current plugin configuration has uploading disabled."); + + return ResultBuilder.Create(ResultCode.Settings_UploadsDisabled); + } + + var callbackConfirmation = openCallbacks.New(); + Result result; + + if(modId == 0) + { + Logger.Log(LogLevel.Error, "You must provide a valid mod id to delete tags."); + result = ResultBuilder.Create(ResultCode.InvalidParameter_MissingModId); + } + else if(tags == null || tags.Length == 0) + { + Logger.Log(LogLevel.Error, "You must provide tags to be deleted from the mod"); + result = ResultBuilder.Create(ResultCode.InvalidParameter_CantBeNull); + } + else if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + var config = API.Requests.DeleteModTags.Request(modId, tags); + var taskResult = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + result = taskResult.result; + } + + openCallbacks.Complete(callbackConfirmation); + + return result; + } + + public static async void AddTags(ModId modId, string[] tags, + Action callback) + { + // Check callback + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the AddTags method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + var result = await AddTags(modId, tags); + callback?.Invoke(result); + } + + public static async Task AddTags(ModId modId, string[] tags) + { + // - Early Outs - + // Check disableUploads + if(Settings.server.disableUploads) + { + Logger.Log(LogLevel.Error, "The current plugin configuration has uploading disabled."); + return ResultBuilder.Create(ResultCode.Settings_UploadsDisabled); + } + + var callbackConfirmation = openCallbacks.New(); + Result result; + + // Check for modId + if(modId == 0) + { + Logger.Log(LogLevel.Error, "You must provide a valid mod id to add tags."); + result = ResultBuilder.Create(ResultCode.InvalidParameter_MissingModId); + } + else if(tags == null || tags.Length == 0) + { + Logger.Log(LogLevel.Error, "You must provide tags to be added to the mod"); + result = ResultBuilder.Create(ResultCode.InvalidParameter_CantBeNull); + } + else if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + var config = API.Requests.AddModTags.Request(modId, tags); + var taskResult = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + result = taskResult.result; + } + + openCallbacks.Complete(callbackConfirmation); + return result; + } + + public static ProgressHandle GetCurrentUploadHandle() + { + return currentUploadHandle; + } + + public static async Task UploadModMedia(ModProfileDetails modProfileDetails) + { + // - Early outs - + // Check Modfile + if(modProfileDetails == null) + { + Logger.Log(LogLevel.Error, "ModfileDetails parameter cannot be null."); + return ResultBuilder.Create(ResultCode.InvalidParameter_CantBeNull); + } + + // Check mod id + if(modProfileDetails.modId == null) + { + Logger.Log(LogLevel.Error, + "The provided ModfileDetails has not been assigned a ModId. Ensure" + + " you assign the Id of the mod you intend to edit to the ModProfileDetails.modId" + + " field."); + return ResultBuilder.Create(ResultCode.InvalidParameter_MissingModId); + } + + // Check disableUploads + if(Settings.server.disableUploads) + { + Logger.Log(LogLevel.Error, "The current plugin configuration has uploading disabled."); + return ResultBuilder.Create(ResultCode.Settings_UploadsDisabled); + } + + var callbackConfirmation = openCallbacks.New(); + + Result result; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result) + && IsModProfileDetailsValidForEdit(modProfileDetails, out result)) + { + // This will compress the images (if they exist) and add them to the request + // TODO Add progress handle to the compress method + var addModMediaResult = await AddModMedia.Request(modProfileDetails); + result = addModMediaResult.result; + + if(result.Succeeded()) + { + WebRequestConfig config = addModMediaResult.value; + var task = WebRequestManager.Request(config); + var resultAnd = await openCallbacks.Run(callbackConfirmation, task); + result = resultAnd.result; + + if(!result.Succeeded()) + { + currentUploadHandle.Failed = true; + } + } + } + + openCallbacks.Complete(callbackConfirmation); + + return result; + } + + public static async Task UploadModfile(ModfileDetails modfile) + { + // - Early outs - + // Check Modfile + if(modfile == null) + { + Logger.Log(LogLevel.Error, "ModfileDetails parameter cannot be null."); + + return ResultBuilder.Create(ResultCode.InvalidParameter_CantBeNull); + } + + // Check mod id + if(modfile.modId == null) + { + Logger.Log( + LogLevel.Error, + "The provided ModfileDetails has not been assigned a ModId. Ensure" + + " you assign the Id of the mod you intend to edit to the ModProfileDetails.modId" + + " field."); + + return ResultBuilder.Create(ResultCode.InvalidParameter_MissingModId); + } + + // Check disableUploads + if(Settings.server.disableUploads) + { + Logger.Log(LogLevel.Error, + "The current plugin configuration has uploading disabled."); + + return ResultBuilder.Create(ResultCode.Settings_UploadsDisabled); + } + + ProgressHandle progressHandle = new ProgressHandle(); + currentUploadHandle = progressHandle; + currentUploadHandle.OperationType = ModManagementOperationType.Upload; + + var callbackConfirmation = openCallbacks.New(); + + //------------------------------[ Setup callback param ]------------------------------- + Result result; + //------------------------------------------------------------------------------------- + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result) + && IsModfileDetailsValid(modfile, out result)) + { + CompressOperationDirectory compressOperation = new CompressOperationDirectory(modfile.directory); + + Task> compressTask = compressOperation.Compress(); + + + var compressionTaskResult = await openCallbacks.Run(callbackConfirmation, compressTask); + result = compressionTaskResult.result; + + if(!result.Succeeded()) + { + // Compression FAILED + currentUploadHandle.Failed = true; + Logger.Log(LogLevel.Error, "Failed to compress the files at the " + + $"given directory ({modfile.directory})."); + } + else + { + Logger.Log(LogLevel.Verbose, $"Compressed file ({modfile.directory})" + + $"\nstream length: {compressionTaskResult.value.Length}"); + + callbackConfirmation = openCallbacks.New(); + var requestConfig = API.Requests.AddModFile.Request(modfile, compressionTaskResult.value.ToArray()); + Task> task = WebRequestManager.Request(requestConfig, currentUploadHandle); + ResultAnd uploadResult = await openCallbacks.Run(callbackConfirmation, task); + result = uploadResult.result; + + if(!result.Succeeded()) + { + currentUploadHandle.Failed = true; + } + else + { + // TODO only remove the mod of the ID that we uploaded modfile.modId - add the modfile object we got back from the server to the cache + ResponseCache.ClearCache(); + + Logger.Log(LogLevel.Verbose, $"UPLOAD SUCCEEDED [{modfile.modId}_{uploadResult.value.id}]"); + } + } + } + + currentUploadHandle.Completed = true; + currentUploadHandle = null; + + openCallbacks.Complete(callbackConfirmation); + + return result; + } + + public static async void UploadModMedia(ModProfileDetails modProfileDetails, Action callback) + { + // Check for callback + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the UploadModMedia method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + Result result = await UploadModMedia(modProfileDetails); + callback?.Invoke(result); + } + + public static async void UploadModfile(ModfileDetails modfile, Action callback) + { + // Check for callback + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the UploadModfile method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + Result result = await UploadModfile(modfile); + callback?.Invoke(result); + } + + public static async Task ArchiveModProfile(ModId modId) + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + + if(IsInitialized(out result) && IsAuthenticatedSessionValid(out result)) + { + var config = API.Requests.DeleteMod.Request(modId); + result = await openCallbacks.Run(callbackConfirmation, WebRequestManager.Request(config)); + } + + openCallbacks.Complete(callbackConfirmation); + + return result; + } + + public static async void ArchiveModProfile(ModId modId, Action callback) + { + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the ArchiveModProfile method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + Result result = await ArchiveModProfile(modId); + callback?.Invoke(result); + } + + static bool IsModfileDetailsValid(ModfileDetails modfile, out Result result) + { + // Check directory exists + if(!DataStorage.TryGetModfileDetailsDirectory(modfile.directory, + out string notbeingusedhere)) + { + Logger.Log(LogLevel.Error, + "The provided directory in ModfileDetails could not be found or" + + $" does not exist ({modfile.directory})."); + result = ResultBuilder.Create(ResultCode.IO_DirectoryDoesNotExist); + return false; + } + + // check metadata isn't too large + if(modfile.metadata?.Length > 50000) + { + Logger.Log(LogLevel.Error, + "The provided metadata in ModProfileDetails exceeds 50,000 characters" + + $"\n(Was given {modfile.metadata.Length} characters)"); + result = ResultBuilder.Create(ResultCode.InvalidParameter_ModMetadataTooLarge); + return false; + } + + // check changelog isn't too large + if (modfile.changelog?.Length > 50000) + { + Logger.Log(LogLevel.Error, + "The provided changelog in ModProfileDetails exceeds 50,000 characters" + + $"(Was given {modfile.changelog})"); + result = ResultBuilder.Create(ResultCode.InvalidParameter_ChangeLogTooLarge); + return false; + } + + result = ResultBuilder.Success; + return true; + } + + static bool IsModProfileDetailsValid(ModProfileDetails modDetails, out Result result) + { + if(modDetails.logo == null || string.IsNullOrWhiteSpace(modDetails.summary) + || string.IsNullOrWhiteSpace(modDetails.name)) + { + Logger.Log( + LogLevel.Error, + "The required fields in ModProfileDetails have not been set." + + " Make sure the Name, Logo and Summary have been assigned before attempting" + + "to submit a new Mod Profile"); + result = ResultBuilder.Create( + (ResultCode.InvalidParameter_ModProfileRequiredFieldsNotSet)); + return false; + } + + return IsModProfileDetailsValidForEdit(modDetails, out result); + } + + static bool IsModProfileDetailsValidForEdit(ModProfileDetails modDetails, out Result result) + { + if(modDetails.summary?.Length > 250) + { + Logger.Log(LogLevel.Error, + "The provided summary in ModProfileDetails exceeds 250 characters"); + result = ResultBuilder.Create(ResultCode.InvalidParameter_ModSummaryTooLarge); + return false; + } + + if(modDetails.logo != null) + { + if(modDetails.logo.EncodeToPNG().Length > 8388608) + { + Logger.Log(LogLevel.Error, + "The provided logo in ModProfileDetails exceeds 8 megabytes"); + result = ResultBuilder.Create(ResultCode.InvalidParameter_ModLogoTooLarge); + return false; + } + } + + if(modDetails.metadata?.Length > 50000) + { + Logger.Log(LogLevel.Error, + "The provided metadata in ModProfileDetails exceeds 50,000 characters" + + $"(Was given {modDetails.metadata.Length})"); + result = ResultBuilder.Create(ResultCode.InvalidParameter_ModMetadataTooLarge); + return false; + } + + if (modDetails.description?.Length > 50000) + { + Logger.Log(LogLevel.Error, + "The provided description in ModProfileDetails exceeds 50,000 characters" + + $"(Was given {modDetails.description.Length})"); + result = ResultBuilder.Create(ResultCode.InvalidParameter_DescriptionTooLarge); + + return false; + } + + result = ResultBuilder.Success; + return true; + } + + public static async Task> GetCurrentUserCreations(SearchFilter filter) + { + var callbackConfirmation = openCallbacks.New(); + + Result result; + ModPage page = new ModPage(); + + var config = API.Requests.GetCurrentUserCreations.Request(filter); + + int offset = filter.pageIndex * filter.pageSize; + if(IsInitialized(out result) && IsSearchFilterValid(filter, out result) + && IsAuthenticatedSessionValid(out result) + && !ResponseCache.GetModsFromCache(config.Url, offset, filter.pageSize, out page)) + { + + var task = await openCallbacks.Run(callbackConfirmation, WebRequestManager. + Request(config)); + + result = task.result; + + if(result.Succeeded()) + { + page = ResponseTranslator.ConvertResponseSchemaToModPage(task.value, filter); + + ResponseCache.AddModsToCache(config.Url, offset, page); + + if(page.modProfiles.Length > filter.pageSize) + { + Array.Copy(page.modProfiles, page.modProfiles, filter.pageSize); + } + } + } + + openCallbacks.Complete(callbackConfirmation); + + return ResultAnd.Create(result, page); + } + + public static async void GetCurrentUserCreations(SearchFilter filter, Action> callback) + { + // Check for callback + if(callback == null) + { + Logger.Log( + LogLevel.Warning, + "No callback was given to the GetCurrentUserCreations method. You will not " + + "be informed of the result for this action. It is highly recommended to " + + "provide a valid callback."); + } + + ResultAnd result = await GetCurrentUserCreations(filter); + callback?.Invoke(result); + } +#endregion // Mod Uploading + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ModIOUnityImplementation.cs.meta b/Runtime/ModIO.Implementation/Classes/ModIOUnityImplementation.cs.meta new file mode 100644 index 0000000..31fa630 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModIOUnityImplementation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47a023d480f0a4c24aa0ef827d6d2ca2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ModIOVersion.cs b/Runtime/ModIO.Implementation/Classes/ModIOVersion.cs new file mode 100644 index 0000000..7bf2f2c --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModIOVersion.cs @@ -0,0 +1,105 @@ +namespace ModIO.Implementation +{ + /// Describes the mod.io UnityPlugin version. + internal struct ModIOVersion : System.IComparable + { + // ---------[ Singleton ]--------- + /// Singleton instance for current version. + public static readonly ModIOVersion Current = new ModIOVersion(2023, 5, 12, "beta"); + + // ---------[ Fields ]--------- + /// Main Version number. + public int year; + + // ---------[ Fields ]--------- + /// Major version number. + /// Represents the major version number. Increases when there is a breaking change + /// to the interface. + /// Changing between versions of the codebase with a different X value, will require changes + /// to a consumer codebase in order to integrate. + public int month; + + /// Version build number. + /// Represents the build version number. Increases when a new release is created + /// for to the Asset Store/GitHub. + /// Changing between versions of the codebase with a different Y value, will never require + /// changes to a consumer codebase in order to integrate, but may offer additional + /// functionality if changes are made. + public int day; + + /// Suffix for the current version. + /// Represents additional, non-incremental version information about a build. + /// This will never represent a difference in functionality or behaviour, but instead + /// semantic information such as the production-readiness of a build, or the platform it was + /// built for. Always written in lower-case, using underscore as a name break as necessary. + /// + public string suffix; + + // ---------[ Initialization ]--------- + /// Constructs an object with the given version values. + public ModIOVersion(int year, int month, int day, string suffix = null) + { + this.year = year; + this.month = month; + this.day = day; + + if(suffix == null) + { + suffix = string.Empty; + } + this.suffix = suffix; + } + + // ---------[ IComparable Interface ]--------- + /// Compares the current instance with another ModIOVersion. + public int CompareTo(ModIOVersion other) + { + int result = year.CompareTo(other.year); + + if(result == 0) + { + result = month.CompareTo(other.month); + } + if(result == 0) + { + result = day.CompareTo(other.day); + } + + return result; + } + +#region Operator Overloads + + // clang-format off + public static bool operator > (ModIOVersion a, ModIOVersion b) + { + return a.CompareTo(b) == 1; + } + + public static bool operator < (ModIOVersion a, ModIOVersion b) + { + return a.CompareTo(b) == -1; + } + + public static bool operator >= (ModIOVersion a, ModIOVersion b) + { + return a.CompareTo(b) >= 0; + } + + public static bool operator <= (ModIOVersion a, ModIOVersion b) + { + return a.CompareTo(b) <= 0; + } + // clang-format on + +#endregion // Operator Overloads + +#region Utility + + /// Creates the request header representation of the version. + public string ToHeaderString() => $"modioUnityPlugin-{year.ToString()}.{month.ToString()}.{day.ToString()}-{suffix}"; + + +#endregion // Utility + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ModIOVersion.cs.meta b/Runtime/ModIO.Implementation/Classes/ModIOVersion.cs.meta new file mode 100644 index 0000000..69a3a02 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModIOVersion.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b97ef4b144f501b4a91c56ba0b6acbfa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ModIdConverter.cs b/Runtime/ModIO.Implementation/Classes/ModIdConverter.cs new file mode 100644 index 0000000..af944fb --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModIdConverter.cs @@ -0,0 +1,40 @@ +using System; +using System.ComponentModel; +using System.Globalization; + +namespace ModIO +{ + public class ModIdConverter : TypeConverter + { + public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) + { + return sourceType == typeof(string) || base.CanConvertFrom(context, sourceType); + } + + public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) + { + return destinationType == typeof(ModId) || base.CanConvertTo(context, destinationType); + } + + public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, + object value) + { + if(value is string) + { + long.TryParse((string)value, out long id); + return new ModId(id); + } + return base.ConvertFrom(context, culture, value); + } + + public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, + object value, Type destinationType) + { + if(value is ModId) + { + return ((ModId)value).id.ToString(); + } + return base.ConvertTo(context, culture, value, destinationType); + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ModIdConverter.cs.meta b/Runtime/ModIO.Implementation/Classes/ModIdConverter.cs.meta new file mode 100644 index 0000000..4343ab7 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModIdConverter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 08dec446e4cbf46fb9c0c31ce3a61c0a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ModManagement.cs b/Runtime/ModIO.Implementation/Classes/ModManagement.cs new file mode 100644 index 0000000..fbb5a8a --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModManagement.cs @@ -0,0 +1,970 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using ModIO.Implementation.API; +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation +{ + /// + /// This Handles all of the Download/Extract/Install/Delete operations for mods if + /// isModManagementEnabled is set to true. You can use 'WakeUp()' to alert this class and it + /// will begin looking for jobs to perform. When it can't find anymore jobs to do it will go + /// back to sleep until WakeUp() is called again. + /// + internal static class ModManagement + { + /// + /// This is a cache of the current async method for performing a job. This is primarily + /// used by the Shutdown method to interrupt and cancel any ongoing tasks/jobs + /// + static Task operation; + + /// + /// This is set to true/false via the Enable/DisableModManagement methods and determines + /// if mod management will look for jobs when WakeUp() is called + /// + static bool isModManagementEnabled; + + /// + /// This is true while mod management is performing/looking for a task/job to perform + /// + static bool isModManagementAwake; + + /// + /// ModIds that fail to be downloaded/installed/deleted get added to this group and will be + /// ignored for further operations until ModManagement is turned off and on again. + /// + static HashSet taintedMods = new HashSet(); + + /// + /// ModIds that fail to be downloaded/installed due to disk space being full get added to + /// this group and will be removed after a delete job occurs. + /// + static HashSet notEnoughStorageMods = new HashSet(); + + /// + /// This list is used to tag orphan mod collection entries that no longer need to exist in + /// the Registry. Once tagged, they will periodically get cleared when a new ModManagement + /// job is checked for. + /// + static List uninstalledModsWithNoUserSubscriptions = new List(); + + /// + /// This is a cache of creation tokens that have been requested by the user and haven't yet + /// been used to generate a new mod profile page. + /// Once a user has used a creation token it is removed from this group and a new token will + /// need to be generated in order to create another mod profile page. + /// + static HashSet creationTokens = new HashSet(); + + /// + /// This is a cached reference of the current job being performed. + /// + public static ModManagementJob currentJob; + + /// + /// We keep a reference to all of the previous jobs that we've completed to make sure we + /// aren't repeating the same job with the same modId twice (If it succeeded). This is a + /// safety measure in case an operation fails or doesn't do what it was meant to but returns + /// a succeeded result regardless. + /// + static Dictionary previousJobs = + new Dictionary(); + + /// + /// Delegate that gets invoked whenever mod management starts, fails or ends a task/job + /// + public static ModManagementEventDelegate modManagementEventDelegate; + + static HashSet abortingDownloadsModObjectIds = new HashSet(); + +#region Creation Tokens + public static CreationToken GenerateNewCreationToken() + { + CreationToken token = new CreationToken(); + creationTokens.Add(token); + return token; + } + + public static void InvalidateCreationToken(CreationToken token) + { + if(creationTokens.Contains(token)) + { + creationTokens.Remove(token); + } + } + + public static bool IsCreationTokenValid(CreationToken token) + { + if(token == null) + { + return false; + } + return creationTokens.Contains(token); + } +#endregion // Creation Tokens + + public static void EnableModManagement() + { + isModManagementEnabled = true; + Logger.Log(LogLevel.Verbose, "ENABLED Mod Management"); + WakeUp(); + } + + public static void DisableModManagement() + { + isModManagementEnabled = false; + Logger.Log(LogLevel.Verbose, "DISABLED Mod Management"); + } + + /// + /// Call this whenever a change has been made that may require the ModManagement class to + /// perform an action (Such as FetchUpdates, Subscribe, Unsubscribe). Automatically checks + /// queues and tasks. If the ModManagement system is already awake this call will be + /// ignored silently. + /// + public static async void WakeUp() + { + // Early out (dont have more than one instance of this running) + if(isModManagementAwake || !isModManagementEnabled) + { + return; + } + + // AWAKE + isModManagementAwake = true; + Logger.Log(LogLevel.Verbose,"Mod Management Awake"); + + // Wait until we have no more jobs to run + operation = PerformJobs(); + await operation; + + // SLEEP + isModManagementAwake = false; + Logger.Log(LogLevel.Verbose,"Mod Management Asleep"); + } + + public static void AbortCurrentInstallJob() + { + Logger.Log(LogLevel.Message, + $"Aborting installation of Mod[{currentJob.mod.modObject.id}_" + + $"{currentJob.mod.modObject.modfile.id}]"); + ModManagement.currentJob.zipOperation.Cancel(); + + //I'm guessing this might put it into the tainted mods? + //Let's write a test. + } + + public static void AbortCurrentDownloadJob() + { + Logger.Log(LogLevel.Message, + $"Aborting download of Mod[{currentJob.mod.modObject.id}_" + + $"{currentJob.mod.modObject.modfile.id}]"); + currentJob.downloadWebRequest?.cancel?.Invoke(); + abortingDownloadsModObjectIds.Add(currentJob.mod.modObject.id); + } + + static bool DownloadIsAborting(long id) + { + return abortingDownloadsModObjectIds.Contains(id); + } + + static async Task PerformJobs() + { + // Look for a job to be performed + currentJob = GetNextModManagementJob(); + + while(currentJob != null && isModManagementEnabled) + { + Result result = await PerformJob(currentJob); + + //need to allow this job to fail if it was aborted. + if(!result.Succeeded()) + { + if(DownloadIsAborting(currentJob.mod.modObject.id)) + { + //clean this up, we shouldn't get here again + abortingDownloadsModObjectIds.Remove(currentJob.mod.modObject.id); + } + else + { + Logger.Log(LogLevel.Error, + "ModManagement Failed to complete an operation." + + $" the Mod[{currentJob.mod.modObject.id}_{currentJob.mod.modObject.modfile.id}]" + + " will be ignored by ModManagement for the duration" + + " of the session. If it failed due to insufficient storage" + + " space it will re-attempt after a mod deletion has occurred."); + + taintedMods.Add((ModId)currentJob.mod.modObject.id); + } + } + + ModCollectionManager.SaveRegistry(); + + currentJob = isModManagementEnabled ? GetNextModManagementJob() : null; + } + currentJob = null; + } + + public static async Task PerformJob(ModManagementJob job) + { + Result result = ResultBuilder.Unknown; + + // Early out, This should never happen + if(job == null) + { + return ResultBuilder.Create(ResultCode.Internal_ModManagementOperationFailed); + } + + long modId = job.mod.modObject.id; + long fileId = job.mod.modObject.modfile.id; + long currentFileId = job.mod.currentModfile.id; + + // Check for unwanted behaviour, possible infinite loop + if(previousJobs.ContainsKey(modId)) + { + if(previousJobs[modId] == job.type) + { + Logger.Log(LogLevel.Error, + $"Mod Management [{modId}_{job.type.ToString()}" + + $"_{currentJob.mod.modObject.modfile.id}]" + + $" has received an identical job that should " + + $"already be complete. To avoid getting into an " + + $"infinite loop the ModId[{modId}] has been " + + $"blacklisted and will be ignored until " + + $"ModManagement is re-enabled."); + return ResultBuilder.Create(ResultCode.Internal_ModManagementOperationFailed); + } + } + + //-------------------[ SETUP PROGRESS HANDLE ]-----------------// + job.progressHandle = new ProgressHandle(); + job.progressHandle.modId = (ModId)modId; + + switch(job.type) + { + case ModManagementOperationType.Install: + //--------------------------------------------------------------------------------// + // INSTALL / EXTRACT // + //--------------------------------------------------------------------------------// + + job.progressHandle.OperationType = ModManagementOperationType.Install; + + InvokeModManagementDelegate((ModId)modId, + ModManagementEventType.InstallStarted, + ResultBuilder.Unknown); + + result = await PerformOperation_Install(job); + + job.progressHandle.Completed = true; + + if(result.Succeeded()) + { + InvokeModManagementDelegate((ModId)modId, ModManagementEventType.Installed, + result); + } + else + { + job.progressHandle.Failed = true; + InvokeModManagementDelegate((ModId)modId, + ModManagementEventType.InstallFailed, + result); + } + + break; + case ModManagementOperationType.Download: + //--------------------------------------------------------------------------------// + // DOWNLOAD // + //--------------------------------------------------------------------------------// + + job.progressHandle.OperationType = ModManagementOperationType.Download; + + InvokeModManagementDelegate((ModId)modId, + ModManagementEventType.DownloadStarted, + ResultBuilder.Unknown); + + result = await PerformOperation_Download(job); + + job.progressHandle.Completed = true; + + // Check download result + if(result.Succeeded()) + { + InvokeModManagementDelegate((ModId)modId, + ModManagementEventType.Downloaded, + result); + } + else + { + job.progressHandle.Failed = true; + InvokeModManagementDelegate((ModId)modId, + ModManagementEventType.DownloadFailed, + result); + } + + break; + case ModManagementOperationType.Update: + //----------------------------------------------------------------------------// + // UPDATE // + //----------------------------------------------------------------------------// + + job.progressHandle.OperationType = ModManagementOperationType.Update; + + // TODO @Steve everything in this block is repeated code. Create re-useable + // methods for download, install, delete + + // Make sure we aren't trying to update something that is already up to date + if(fileId == currentFileId) + { + Logger.Log(LogLevel.Error, + $"Mod Management Was given a job to " + + $"update a mod but the existing fileId matches" + + $" the update fileId, therefore should already" + + $" be up to date [{modId}_{currentFileId} == " + + $"{modId}_{fileId}]."); + result = + ResultBuilder.Create(ResultCode.Internal_ModManagementOperationFailed); + break; + } + + //---------------------------[ DOWNLOAD UPDATE ]------------------------------// + + InvokeModManagementDelegate((ModId)modId, ModManagementEventType.UpdateStarted, + ResultBuilder.Unknown); + + result = await PerformOperation_Download(job); + + if(!result.Succeeded()) + { + job.progressHandle.Completed = true; + job.progressHandle.Failed = true; + InvokeModManagementDelegate((ModId)modId, + ModManagementEventType.UpdateFailed, + result); + break; + } + + //---------------------------[ INSTALL UPDATE ]-------------------------------// + + result = await PerformOperation_Install(job); + + job.progressHandle.Completed = true; + + if(result.Succeeded()) + { + InvokeModManagementDelegate((ModId)modId, ModManagementEventType.Updated, + ResultBuilder.Success); + } + else + { + job.progressHandle.Failed = true; + InvokeModManagementDelegate((ModId)modId, + ModManagementEventType.UpdateFailed, + result); + } + + break; + case ModManagementOperationType.Uninstall: + //----------------------------------------------------------------------------// + // UNINSTALL // + //----------------------------------------------------------------------------// + + job.progressHandle.OperationType = ModManagementOperationType.Uninstall; + + result = await PerformOperation_Delete(modId, job.mod.currentModfile.id); + + // We dont really track this process as it's nearly instantaneous + job.progressHandle.Progress = 1f; + job.progressHandle.Completed = true; + + if(result.Succeeded()) + { + InvokeModManagementDelegate((ModId)modId, + ModManagementEventType.Uninstalled, + ResultBuilder.Success); + + // Re-check mods that may not have installed from low storage space + if(notEnoughStorageMods.Count > 0) + { + // Also remove the temp archive file if we know we ran into storage issues + // We do not need to check the result + DataStorage.TryDeleteModfileArchive(modId, job.mod.currentModfile.id, out Result _); + // the reason we dont always delete the archive is because a user may + // accidentally hit unsubscribe or change their mind a few seconds later + // and if it is a large mod it would take a long time to re-download it. + } + // Flush not enough space mods from the tainted list so they will be re-attempted + foreach(var mod in notEnoughStorageMods) + { + if(taintedMods.Contains(mod)) + { + taintedMods.Remove(mod); + } + } + notEnoughStorageMods.Clear(); + } + else + { + job.progressHandle.Failed = true; + InvokeModManagementDelegate((ModId)modId, + ModManagementEventType.UninstallFailed, + result); + } + + break; + } + + if(previousJobs.ContainsKey(modId)) + { + previousJobs[modId] = job.type; + } + else + { + previousJobs.Add(modId, job.type); + } + return result; + } + + // The following PerformOperation methods are all used by the PerformJob method. + // PerformJob will determine the type of job and use the following methods accordingly. + static async Task PerformOperation_Download(ModManagementJob job) + { + long modId = job.mod.modObject.id; + long fileId = job.mod.modObject.modfile.id; + + // Check for enough storage space + if(!await DataStorage.temp.IsThereEnoughDiskSpaceFor(job.mod.modObject.modfile.filesize)) + { + Logger.Log(LogLevel.Error, $"INSUFFICIENT STORAGE FOR DOWNLOAD [{modId}_{fileId}]"); + notEnoughStorageMods.Add((ModId)modId); + return ResultBuilder.Create(ResultCode.IO_InsufficientStorage); + } + + Logger.Log(LogLevel.Message, $"DOWNLOADING MODFILE[{modId}_{fileId}]"); + + //Result result = ResultBuilder.Unknown; + + //OLD RESTAPI CODE - leaving this here until we're sure the new code works + //// Get Mod + //string url = API.Requests.GetMod.URL(modId); + //ResultAnd modResponse = + // await RESTAPI.Request(url, GetMod.Template); + + var modResponse = await WebRequestManager.Request(API.Requests.GetMod.Request(modId)); + var result = modResponse.result; + if(!modResponse.result.Succeeded()) + { + // If this fails we continue by trying out the fileId we have already + Logger.Log(LogLevel.Warning, + $"Failed to get mod[{modId}] for modfile download. " + + $"Attempting to use existing download url in cache instead."); + } + else + { + job.mod.modObject = modResponse.value; + + //Re-cache file id in case of an update/patch to the mod + fileId = job.mod.modObject.modfile.id; + + // Update the registry for this mod as it's now the newest instance of this mod we have + ModCollectionManager.UpdateModCollectionEntry((ModId)modResponse.value.id, modResponse.value); + } + + if(!ShouldModManagementBeRunning()) + { + // Mod management has been shutdown or disabled + return DownloadCleanup(result, modId, fileId); + } + + // Get Modfile url from ModObject + string fileURL = job.mod.modObject.modfile.download.binary_url; + + // Get correctMD5 and download location + string md5 = job.mod.modObject.modfile.filehash.md5; + string downloadFilepath = DataStorage.GenerateModfileArchiveFilePath(modId, fileId); + + Result downloadResult = ResultBuilder.Unknown; + + using (ModIOFileStream downloadStream = DataStorage.CreateArchiveDownloadStream(downloadFilepath, out Result openStreamResult)) + { + if(!openStreamResult.Succeeded()) + { + // Failed to open file stream to download to + return DownloadCleanup(result, modId, fileId); + } + + // downloadResult = await ModioCommunications.DownloadBinary(fileURL, downloadStream, job.progressHandle); + var handle = WebRequestManager.Download(fileURL, downloadStream, job.progressHandle); + job.downloadWebRequest = handle; + downloadResult = await handle.task; + } + + // Begin download + // DownloadHandlerFile downloadHandler = new DownloadHandlerFile(downloadFilepath); + // ResultAnd downloadResponse = await RESTAPI.Request( + // fileURL, DownloadBinary.Template, null, downloadHandler, + // job.progressHandle); + + // Check download result + if(downloadResult.Succeeded()) + { + // Always check after an async await + if(!ShouldModManagementBeRunning()) + { + result = ResultBuilder.Create(ResultCode.Internal_OperationCancelled); + } + else + { + result = ResultBuilder.Success; + Logger.Log(LogLevel.Verbose, $"DOWNLOADED MODFILE[{modId}_{fileId}]"); + } + } + else + { + Logger.Log(LogLevel.Error, $"Failed to download modfile[{modId}_{fileId}]"); + + result = downloadResult.code == ResultCode.Internal_OperationCancelled + ? downloadResult + : ResultBuilder.Create(ResultCode.Internal_ModManagementOperationFailed); + + return DownloadCleanup(result, modId, fileId); + } + + // Make sure the downloaded file MD5 matches the given MD5 + if(ValidateDownload_md5(md5, downloadFilepath)) + { + if(!ShouldModManagementBeRunning()) + { + result = ResultBuilder.Create(ResultCode.Internal_OperationCancelled); + } + else + { + Logger.Log(LogLevel.Verbose, $"VERIFIED DOWNLOAD[{modId}_{fileId}]"); + } + } + else + { + Logger.Log(LogLevel.Error, + $"Failed to verify downloaded modfile[{modId}_{fileId}]"); + result = ResultBuilder.Create(ResultCode.Internal_ModManagementOperationFailed); + + return DownloadCleanup(result, modId, fileId); + } + + return result; + } + + static Result DownloadCleanup(Result result, long modId, long fileId) + { + if(!result.Succeeded()) + { + // cleanup any file that may or may not have downloaded because it's corrupted + DataStorage.TryDeleteModfileArchive( + modId, fileId, out Result _); + } + return result; + } + + static async Task PerformOperation_Install(ModManagementJob job) + { + long modId = job.mod.modObject.id; + long fileId = job.mod.modObject.modfile.id; + + // Check for enough storage space + // TODO update this later when we can confirm actual extracted file size + // For now we are just making sure we have double the available space of the archive size as the estimate for the extracted file + if(!await DataStorage.persistent.IsThereEnoughDiskSpaceFor(job.mod.modObject.modfile.filesize * 2L)) + { + Logger.Log(LogLevel.Error, $"INSUFFICIENT STORAGE FOR INSTALLATION [{modId}_{fileId}]"); + notEnoughStorageMods.Add((ModId)modId); + return ResultBuilder.Create(ResultCode.IO_InsufficientStorage); + } + + Logger.Log(LogLevel.Verbose, $"INSTALLING MODFILE[{modId}_{fileId}]"); + + ExtractOperation extractOperation = + new ExtractOperation(modId, fileId, job.progressHandle); + + // Cached so it can be cancelled on shutdown + job.zipOperation = extractOperation; + + Result result = await extractOperation.Extract(); + + // Always check after an async await + if(!ShouldModManagementBeRunning()) + { + result = ResultBuilder.Create(ResultCode.Internal_OperationCancelled); + } + + if(result.Succeeded()) + { + // try to cleanup any existing outdated modfile + if(fileId != job.mod.currentModfile.id) + { + long currentFileId = job.mod.currentModfile.id; + if(DataStorage.TryGetInstallationDirectory(modId, currentFileId, + out string _)) + { + DataStorage.TryDeleteInstalledMod(modId, currentFileId, out result); + if(!result.Succeeded()) + { + // This is only a warning because we dont want to fail the installation + // because of a leftover/unused modfile not getting properly deleted + Logger.Log(LogLevel.Warning, + $"Failed to cleanup old modfile[{modId}_{currentFileId}]"); + } + } + } + + // Set currentModfile to the existing modfile (because we succeeded to install) + job.mod.currentModfile = job.mod.modObject.modfile; + ModCollectionManager.UpdateModCollectionEntryFromModObject(job.mod.modObject); + Logger.Log(LogLevel.Verbose, $"INSTALLED MOD [{modId}_{fileId}]"); + } + else + { + Logger.Log(LogLevel.Error, $"Failed to install mod[{modId}_{fileId}]"); + result = ResultBuilder.Create(ResultCode.Internal_ModManagementOperationFailed); + } + + return result; + } + + static async Task PerformOperation_Delete(long modId, long fileId) + { + Logger.Log(LogLevel.Verbose, $"DELETING MODFILE[{modId}_{fileId}]"); + DataStorage.TryDeleteInstalledMod(modId, fileId, out Result result); + if(!result.Succeeded()) + { + Logger.Log(LogLevel.Error, $"Failed to delete modfile[{modId}_{fileId}]"); + } + else + { + Logger.Log(LogLevel.Verbose, $"DELETED MODFILE[{modId}_{fileId}"); + } + + return await Task.FromResult(result); + } + + public static async Task ShutdownOperations() + { + DisableModManagement(); + // Check if a current job is running + if(currentJob != null) + { + // shutdown zip operation if one exists + if(currentJob.zipOperation != null) + { + currentJob.zipOperation.Cancel(); + if(currentJob.zipOperation.GetOperation() != null) + { + await currentJob.zipOperation.GetOperation(); + } + } + // shutdown download request if one exists + currentJob?.downloadWebRequest?.cancel?.Invoke(); + } + + if(operation != null) + { + await operation; + } + + creationTokens.Clear(); + previousJobs.Clear(); + taintedMods.Clear(); + } + + /// + /// returns null if there isn't any active current job + /// + /// + public static ProgressHandle GetCurrentOperationProgress() + { + if(currentJob == null || currentJob.progressHandle == null) + { + return null; + } + + currentJob.progressHandle.modId = (ModId)currentJob.mod.modObject.id; + + return currentJob.progressHandle; + } + + public static void InvokeModManagementDelegate(ModId modId, + ModManagementEventType eventType, + Result eventResult) + { + modManagementEventDelegate?.Invoke(eventType, modId, eventResult); + } + + public static SubscribedModStatus GetModCollectionEntrysSubscribedModStatus( + ModCollectionEntry mod) + { + ModId modId = (ModId)mod.modObject.id; + long fileId = mod.modObject.modfile.id; + long currentFileId = mod.currentModfile.id; + + // This block is nearly identical to GetNextJobTypeForModCollectionEntry() + // except without the async md5 check + if(taintedMods.Contains(modId)) + { + return SubscribedModStatus.ProblemOccurred; + } + if(ShouldThisModBeUninstalled(modId)) + { + if(DataStorage.TryGetInstallationDirectory(modId, currentFileId, + out string _)) + { + return SubscribedModStatus.WaitingToUninstall; + } + } + else if(DataStorage.TryGetInstallationDirectory(modId, currentFileId, + out string _)) + { + if(currentFileId != fileId) + { + return SubscribedModStatus.WaitingToUpdate; + } + } + else if(DataStorage.TryGetModfileArchive(modId, fileId, out string _)) + { + return SubscribedModStatus.WaitingToInstall; + } + else + { + return SubscribedModStatus.WaitingToDownload; + } + + return SubscribedModStatus.Installed; + } + + static ModManagementJob GetNextModManagementJob() + { + // Early out + if(!ShouldModManagementBeRunning()) + { + return null; + } + + // TODO @Steve add a function to add high priority to specific operations/modIds + + // enumerate over UserData subscribedMods + // check if mod is still subscribed + ModManagementJob job = null; + if(uninstalledModsWithNoUserSubscriptions == null) + { + uninstalledModsWithNoUserSubscriptions = new List(); + } + else + { + uninstalledModsWithNoUserSubscriptions.Clear(); + } + + // TODO I'm going to try and benchmark this later to see if it causes blocking issues + // (what are the limits in mod count?) + + using(var enumerator = ModCollectionManager.Registry.mods.GetEnumerator()) + { + while(enumerator.MoveNext()) + { + //keep scanning for install jobs + ModCollectionEntry mod = enumerator.Current.Value; + + // Check if we should still be running + if(!ShouldModManagementBeRunning()) + { + return null; + } + + ModManagementOperationType jobType = + GetNextJobTypeForModCollectionEntry(mod); + + if(jobType != ModManagementOperationType.None_AlreadyInstalled + && jobType != ModManagementOperationType.None_ErrorOcurred) + { + if(jobType == ModManagementOperationType.Install) + { + job = new ModManagementJob { mod = mod, type = jobType }; + break; + } + else + { + job = FilterJob(job, mod, jobType); + } + } + } + } + + //// Remove any collections that no longer have subscribed users and installed files + foreach(ModId mod in uninstalledModsWithNoUserSubscriptions) + { + ModCollectionManager.Registry.mods.Remove(mod); + } + + return job; + } + + static ModManagementJob FilterJob(ModManagementJob job, ModCollectionEntry mod, ModManagementOperationType jobType) + { + if(job == null) + { + job = new ModManagementJob { mod = mod, type = jobType }; + } + + if(jobType < job.type) + { + job = new ModManagementJob { mod = mod, type = jobType }; + } + + return job; + } + + static ModManagementOperationType GetNextJobTypeForModCollectionEntry( + ModCollectionEntry mod) + { + ModId modId = (ModId)mod.modObject.id; + long fileId = mod.modObject.modfile.id; + long currentFileId = mod.currentModfile.id; + + if(taintedMods.Contains(modId)) + { + // This mod has been marked as having an error, we will ignore it for the session + return ModManagementOperationType.None_ErrorOcurred; + } + + bool delete = ShouldThisModBeUninstalled(modId); + + if(delete) + { + if(DataStorage.TryGetInstallationDirectory(modId, currentFileId, + out string _)) + { + return ModManagementOperationType.Uninstall; + } + + // NOT INSTALLED (Tag entry for cleanup) + uninstalledModsWithNoUserSubscriptions.Add(modId); + } + else if(DataStorage.TryGetInstallationDirectory(modId, currentFileId, + out string _)) + { + // INSTALLED (Check for update) + if(currentFileId != fileId) + { + return ModManagementOperationType.Update; + } + } + else if(DataStorage.TryGetModfileArchive(modId, fileId, out string downloadFilepath)) + { + // Make sure the installed modfile has the correct md5 + //DataStorage.TryGetModFileArchive(mod, out var downloadFilepath); + if(!ValidateDownload_md5(mod.modObject.modfile.filehash.md5, downloadFilepath)) + { + // if the md5 is incorrect re-download the file + // (it may have been interrupted from a previous session) + // TODO NOTE: @Steve look into what needs to be done for resuming downloads + return ModManagementOperationType.Download; + } + + return ModManagementOperationType.Install; + } + else + { + return ModManagementOperationType.Download; + } + + return ModManagementOperationType.None_AlreadyInstalled; + } + static bool ShouldThisModBeUninstalled(ModId modId) + { + List users = new List(); + + using(var enumerator = ModCollectionManager.Registry.existingUsers.GetEnumerator()) + { + // Get all users that are subscribed to this mod + while(enumerator.MoveNext()) + { + if(enumerator.Current.Value.subscribedMods.Contains(modId)) + { + users.Add(enumerator.Current.Key); + } + } + } + + if(users.Count == 0) + { + // No subscribed users, we can uninstall this mod + return true; + } + + if(ModCollectionManager.Registry.mods.TryGetValue(modId, out ModCollectionEntry mod)) + { + if(users.Contains(ModCollectionManager.GetUserKey())) + { + // Current user is subscribed, don't uninstall + return false; + } + if(mod.uninstallIfNotSubscribedToCurrentSession) + { + // This mod has been marked to uninstall if not subscribed to the current user + return true; + } + } + else + { + Logger.Log(LogLevel.Warning, + "A ModManagement check was made on a " + + "ModCollectionEntry that doesn't appear to exist " + + "anymore in the registry. This shouldn't happen."); + return false; + } + + return false; + } + + public static bool ValidateDownload_md5(string correctMD5, + string zippedFilepath) + { + string md5 = IOUtil.GenerateArchiveMD5(zippedFilepath); + + bool isCorrect = correctMD5.Equals(md5); + if(!isCorrect) + { + Logger.Log(LogLevel.Warning, "Failed to validate modfile archive with md5." + + " This may be due to a download being corrupted or " + + "stopped before completion, such as from " + + "ModIOUnity.Shutdown()"); + } + return isCorrect; + } + + /// + /// Checks if ModManagement should be running, whether it's still enabled, initialized and + /// credentials are valid. (Automatically disables ModManagement if not initialized) + /// + /// + static bool ShouldModManagementBeRunning() + { + // Early out + if(!isModManagementEnabled + || !ModIOUnityImplementation.IsAuthenticatedSessionValid(out Result _)) + { + return false; + } + if(!ModIOUnityImplementation.IsInitialized(out Result _)) + { + // we aren't initialize + DisableModManagement(); + return false; + } + + return true; + } + + public static void RemoveModFromTaintedJobs(ModId modid) + { + taintedMods.Remove(modid); + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ModManagement.cs.meta b/Runtime/ModIO.Implementation/Classes/ModManagement.cs.meta new file mode 100644 index 0000000..b183bd6 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModManagement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f4887a1487fd94c79830de4b0d22a6ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ModManagementJob.cs b/Runtime/ModIO.Implementation/Classes/ModManagementJob.cs new file mode 100644 index 0000000..391f1da --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModManagementJob.cs @@ -0,0 +1,18 @@ +using ModIO.Implementation.API; + +namespace ModIO.Implementation +{ + internal class ModManagementJob + { + /// + /// This is the handle returned to the user when GetCurrentModManagementOperation is called + /// + public ProgressHandle progressHandle; + + public ModCollectionEntry mod; + public ModManagementOperationType type; + + public RequestHandle downloadWebRequest; + public IModIOZipOperation zipOperation; + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ModManagementJob.cs.meta b/Runtime/ModIO.Implementation/Classes/ModManagementJob.cs.meta new file mode 100644 index 0000000..2e7cb6a --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ModManagementJob.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de3401c47a68e417e9d3e076ca3515b5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/OpenCallbacks.cs b/Runtime/ModIO.Implementation/Classes/OpenCallbacks.cs new file mode 100644 index 0000000..6ab16ba --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/OpenCallbacks.cs @@ -0,0 +1,95 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace ModIO.Implementation +{ + class OpenCallbacks + { + Dictionary, Task> openCallbacks = + new Dictionary, Task>(); + + + public TaskCompletionSource New() + { + TaskCompletionSource tcs = new TaskCompletionSource(); + openCallbacks.Add(tcs, null); + return tcs; + } + + public TaskCompletionSource New(Task task) + { + TaskCompletionSource tcs = new TaskCompletionSource(); + openCallbacks.Add(tcs, task); + return tcs; + } + + public async Task Run(TaskCompletionSource tcs, Task task) + { + openCallbacks[tcs] = task; + var response = await task; + openCallbacks[tcs] = null; + + return response; + } + + public void Remove(TaskCompletionSource tcs) + { + openCallbacks.Remove(tcs); + } + + public void Complete(TaskCompletionSource tcs) + { + tcs.SetResult(true); + openCallbacks.Remove(tcs); + } + + public void Clear(TaskCompletionSource tcs) + { + openCallbacks[tcs] = null; + } + + public void CancelAll() + { + foreach(var kvp in openCallbacks) + { + kvp.Key.TrySetCanceled(); + } + openCallbacks.Clear(); + } + + public async Task ShutDown() + { + // get new instance of dictionary so it's thread safe + Dictionary, Task> tasks = + new Dictionary, Task>(openCallbacks); + + // iterate over the tasks and await for non faulted callbacks to finish + using(var enumerator = tasks.GetEnumerator()) + { + while(enumerator.MoveNext()) + { + if(enumerator.Current.Value == null + || enumerator.Current.Value.IsFaulted + || enumerator.Current.Value.IsCanceled) + { + Logger.Log(LogLevel.Warning, + "Invalid TCS stored in openCallbacks." + + " The corresponding callback will never be invoked. Skipping this" + + " task (The shutdown method may complete before all jobs have " + + "been cancelled)."); + if(openCallbacks.ContainsKey(enumerator.Current.Key)) + { + openCallbacks.Remove(enumerator.Current.Key); + } + } + else + { + await enumerator.Current.Key.Task; + } + } + } + + Logger.Log(LogLevel.Verbose, "Shutdown finished waiting for callbacks"); + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/OpenCallbacks.cs.meta b/Runtime/ModIO.Implementation/Classes/OpenCallbacks.cs.meta new file mode 100644 index 0000000..4eb2832 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/OpenCallbacks.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 20cb8a342a6262e4cb92a6978d2892af +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ResultAnd.cs b/Runtime/ModIO.Implementation/Classes/ResultAnd.cs new file mode 100644 index 0000000..5d2209e --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ResultAnd.cs @@ -0,0 +1,23 @@ + +namespace ModIO.Implementation +{ + /// Convenience wrapper for creating a ResultAnd. + internal static class ResultAnd + { + public static ResultAnd Create(Result result, U value) + { + var ra = new ResultAnd(); + ra.result = result; + ra.value = value; + return ra; + } + + public static ResultAnd Create(uint result, U value) + { + var ra = new ResultAnd(); + ra.result = ResultBuilder.Create(result); + ra.value = value; + return ra; + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ResultAnd.cs.meta b/Runtime/ModIO.Implementation/Classes/ResultAnd.cs.meta new file mode 100644 index 0000000..bd70abc --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ResultAnd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3b6ab3d74aea604684cbfc3b8484962 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ResultBuilder.cs b/Runtime/ModIO.Implementation/Classes/ResultBuilder.cs new file mode 100644 index 0000000..3749e0d --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ResultBuilder.cs @@ -0,0 +1,18 @@ +namespace ModIO.Implementation +{ + /// Convenience class for building Result objects. + internal static class ResultBuilder + { + /// Creator for the Result class. + public static Result Create(uint resultCode, uint apiCode = 0) + { + return new Result() { code = resultCode, code_api = apiCode }; + } + + /// Constant for Success. + public static readonly Result Success = new Result() { code = ResultCode.Success }; + + // TODO(@jackson): Remove later + public static readonly Result Unknown = new Result() { code = ResultCode.Unknown }; + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ResultBuilder.cs.meta b/Runtime/ModIO.Implementation/Classes/ResultBuilder.cs.meta new file mode 100644 index 0000000..fb57f27 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ResultBuilder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9f6d73e3962afd41bb38f0c1b35b40e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/ResultCode.cs b/Runtime/ModIO.Implementation/Classes/ResultCode.cs new file mode 100644 index 0000000..3188be1 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ResultCode.cs @@ -0,0 +1,514 @@ +using System.Collections.Generic; +using System.Linq; +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation +{ + /// Enum representing the result code values. + internal static class ResultCode + { + // When adding a new value make sure it's also added to the errorCodesClearText dictionary. + +#region Value Constants + + // - success - + public const uint Success = 0; + + // - unknown - + public const uint Unknown = 1; + + // - init errors - + public const uint Init_NotYetInitialized = 20000; + public const uint Init_FailedToLoadConfig = 20010; + public const uint Init_UserDataFailedToInitialize = 20020; + public const uint Init_PersistentDataFailedToInitialize = 20021; + public const uint Init_TemporaryDataFailedToInitialize = 20022; + + public const uint Settings_InvalidServerURL = 20050; + public const uint Settings_InvalidGameId = 20051; + public const uint Settings_InvalidGameKey = 20052; + public const uint Settings_InvalidLanguageCode = 20053; + public const uint Settings_UploadsDisabled = 20054; + + // - auth errors - + public const uint User_NotAuthenticated = 20100; + public const uint User_InvalidToken = 20101; + public const uint User_InvalidEmailAddress = 20102; + public const uint User_AlreadyAuthenticated = 20103; + public const uint User_NotRemoved = 20104; + + // - Invalid errors for misuse of the interface - + public const uint InvalidParameter_PaginationParams = 20201; + public const uint InvalidParameter_ReportNotReady = 20202; + public const uint InvalidParameter_ModMetadataTooLarge = 20203; + public const uint InvalidParameter_BadCreationToken = 20204; + public const uint InvalidParameter_DescriptionTooLarge = 20205; + public const uint InvalidParameter_ChangeLogTooLarge = 20206; + + public const uint InvalidParameter_ModProfileRequiredFieldsNotSet = 20210; + public const uint InvalidParameter_ModSummaryTooLarge = 20211; + public const uint InvalidParameter_ModLogoTooLarge = 20212; + public const uint InvalidParameter_CantBeNull = 20213; + public const uint InvalidParameter_MissingModId = 20214; + + public const uint InvalidParameter_DownloadReferenceIsntValid = 20220; + + // - API handling errors - + public const uint API_FailedToDeserializeResponse = 20300; + public const uint API_FailedToGetResponseFromWebRequest = 20301; + public const uint API_FailedToConnect = 20302; + public const uint API_FailedToCompleteRequest = 20303; + + // - I/O errors - + public const uint IO_FilePathInvalid = 20400; + public const uint IO_FileDoesNotExist = 20401; + public const uint IO_FileCouldNotBeOpened = 20402; + public const uint IO_FileCouldNotBeCreated = 20403; + public const uint IO_FileCouldNotBeDeleted = 20404; + public const uint IO_FileCouldNotBeRead = 20405; + public const uint IO_FileCouldNotBeWritten = 20406; + public const uint IO_DirectoryDoesNotExist = 20420; + public const uint IO_DirectoryCouldNotBeCreated = 20421; + public const uint IO_DirectoryCouldNotBeDeleted = 20422; + public const uint IO_DirectoryCouldNotBeMoved = 20423; + public const uint IO_DirectoryCouldNotBeOpened = 20424; + public const uint IO_DirectoryCouldNotBeRead = 20425; + public const uint IO_InvalidMountPoint = 20430; + public const uint IO_AccessDenied = 20440; + public const uint IO_FileSizeTooLarge = 20441; + public const uint IO_InsufficientStorage = 20442; + public const uint IO_DataServiceForPathNotFound = 20450; + + // - Internal errors for mod.io team - + public const uint Internal_DuplicateRequestWithDifferingSchemas = 20500; + public const uint Internal_FailedToDeserializeObject = 20501; + public const uint Internal_RegistryNotInitialized = 20502; + public const uint Internal_ModManagementOperationFailed = 20503; + public const uint Internal_FileSizeMismatch = 20504; + public const uint Internal_FileHashMismatch = 20505; + public const uint Internal_OperationCancelled = 20506; + public const uint Internal_InvalidParameter = 20507; + + // - REST API Errors - + // 10000 mod.io is currently experiencing an outage. (rare) + public const uint RESTAPI_ServerOutage = 10000; + + // 10001 Cross-origin request forbidden. + public const uint RESTAPI_CrossOriginRequestForbidden = 10001; + + // 10002 mod.io failed to complete the request, please try again. (rare) + public const uint RESTAPI_UnknownServerError = 10002; + + // 10003 API version supplied is invalid. + public const uint RESTAPI_APIVersionInvalid = 10003; + + // 11000 api_key is missing from your request. + public const uint RESTAPI_APIKeyMissing = 11000; + + // 11001 api_key supplied is malformed. + public const uint RESTAPI_APIKeyMalformed = 11001; + + // 11002 api_key supplied is invalid. + public const uint RESTAPI_APIKeyInvalid = 11002; + + // 11003 Access token is missing the write scope to perform the request. + public const uint RESTAPI_InsufficientWritePermission = 11003; + + // 11004 Access token is missing the read scope to perform the request. + public const uint RESTAPI_InsufficientReadPermission = 11004; + + // 11005 Access token is expired, or has been revoked. + public const uint RESTAPI_OAuthTokenExpired = 11005; + + // 11006 Authenticated user account has been deleted. + public const uint RESTAPI_UserAccountDeleted = 11006; + + // 11007 Authenticated user account has been banned by mod.io admins. + public const uint RESTAPI_UserAccountBanned = 11007; + + // 11008 You have been ratelimited for making too many requests. See Rate Limiting. + public const uint RESTAPI_RateLimitExceeded = 11008; + + // 11012 Invalid security code. + public const uint RESTAPI_11012 = 11012; + + // 11014 security code has expired. Please request a new code + public const uint RESTAPI_11014 = 11014; + + // 13001 The submitted binary file is corrupted. + public const uint RESTAPI_SubmittedBinaryCorrupt = 13001; + + // 13002 The submitted binary file is unreadable. + public const uint RESTAPI_SubmittedBinaryUnreadable = 13002; + + // 13004 You have used the input_json parameter with semantically incorrect JSON. + public const uint RESTAPI_JSONMalformed = 13004; + + // 13005 The Content-Type header is missing from your request. + public const uint RESTAPI_ContentHeaderTypeMissing = 13005; + + // 13006 The Content-Type header is not supported for this endpoint. + public const uint RESTAPI_ContentHeaderTypeNotSupported = 13006; + + // 13007 You have requested a response format that is not supported (JSON only). + public const uint RESTAPI_ResponseFormatNotSupported = 13007; + + // 13009 The request contains validation errors for the data supplied. See the attached + // errors field within the Error Object to determine which input failed. + public const uint RESTAPI_DataValidationErrors = 13009; + + // 14000 The requested resource does not exist. + public const uint RESTAPI_ResourceIdNotFound = 14000; + + // 14001 The requested game could not be found. + public const uint RESTAPI_GameIdNotFound = 14001; + + // 14006 The requested game has been deleted. + public const uint RESTAPI_GameDeleted = 14006; + + // 15004 Already subscribed to a mod (can't subscribe). + public const uint RESTAPI_ModSubscriptionAlreadyExists = 15004; + + // 15005 Not subscribed to a mod (can't unsubscribe). + public const uint RESTAPI_ModSubscriptionNotFound = 15005; + + // 15006 You do not have the required permissions to create content for the specified + // resource + public const uint RESTAPI_InsufficientCreatePermission = 15006; + + // 15010 The requested modfile could not be found. + public const uint RESTAPI_ModfileIdNotFound = 15010; + + // 15019 No permission to delete specified resource. + public const uint RESTAPI_InsufficientDeletePermission = 15019; + + // 15022 The requested mod could not be found. + public const uint RESTAPI_ModIdNotFound = 15022; + + // 15023 The requested mod has been deleted. + public const uint RESTAPI_ModDeleted = 15023; + + // 15026 The requested comment could not be found. + public const uint RESTAPI_CommentIdNotFound = 15026; + + // 15028 The mod rating is already positive/negative + public const uint RESTAPI_ModRatingAlreadyExists = 15028; + + // 15043 The mod rating is already removed + public const uint RESTAPI_ModRatingNotFound = 15043; + + // 21000 The requested user could not be found. + public const uint RESTAPI_UserIdNotFound = 21000; + + + // Codes I need to to do for auth/response cache: + // from + // https://docs.mod.io/#authenticate-via-steam + + // 11018 The steam encrypted app ticket was invalid. + public const uint RESTAPI_InvalidSteamEncryptedAppTicket = 11018; + + // 11032 mod.io was unable to verify the credentials against the external service + // provider. + public const uint RESTAPI_CantVerifyCredentialsExternally = 11032; + + // 11016 The api_key supplied in the request must be associated with a game. + public const uint RESTAPI_KeyNotAssociatedWithGame = 11016; + + // 11017 The api_key supplied in the request is for test environment purposes only + // and cannot be used for this functionality. + public const uint RESTAPI_TestKeyForTestEnvOnly = 11017; + + // 11019 The secret steam app ticket associated with this game has not been configured. + public const uint RESTAPI_SecretSteamAppTicketNotConfigured = 11019; + + // 11051 The user has not agreed to the mod.io Terms of Use. + // Please see terms_agreed parameter description and the Terms endpoint for more + // information. + public const uint RESTAPI_UserMustAgreeToModIoTerms = 11051; + + // 11021 The GOG Galaxy encrypted app ticket was invalid. + public const uint RESTAPI_GogInvalidAppTicket = 11021; + + // 11022 The secret GOG Galaxy app ticket associated with this game has not been + // configured. + public const uint RESTAPI_GogGameNotConfigured = 11022; + + // 11031 mod.io was unable to get account data from itch.io servers. + public const uint RESTAPI_UnableToFetchAccountDataFromItchIo = 11031; + + // 11024 The secret Oculus Rift app ticket associated with this game has not been + // configured. + public const uint RESTAPI_OculusRiftAppTicketNotConfigured = 11024; + + // 11025 The secret Oculus Quest app ticket associated with this game has not been + // configured. + public const uint RESTAPI_OculusQuestAppTicketNotConfigured = 11025; + + // 11027 The Xbox Live token supplied in the request is invalid. + public const uint RESTAPI_XboxLiveTokenInvalid = 11027; + + // 11029 The Xbox Live token supplied has expired. + public const uint RESTAPI_XboxLiveTokenExpired = 11029; + + // 11028 The user is not permitted to interact with UGC. This can be modified in the + // user's Xbox Live profile. + public const uint RESTAPI_XboxNotAllowedToInteractWithUGC = 11028; + + // 11030 Xbox Live users with 'Child' accounts are not permitted to use mod.io. + public const uint RESTAPI_XboxLiveChildAccountNotPermitted = 11030; + + // 11035 The NSA ID token was invalid/malformed. + public const uint RESTAPI_NsaIdTokenInvalid = 11035; + + // 11039 mod.io was unable to validate the credentials with Nintendo Servers. + public const uint RESTAPI_UnableToVerifyNintendoCredentials = 11039; + + // 11036 The NSA ID token is not valid yet. + public const uint RESTAPI_NsaIdTokenNotValidYet = 11036; + + // 11037 The NSA ID token has expired. You should request another token from the Switch + // SDK and ensure it is delivered to mod.io before it expires. + public const uint RESTAPI_NsaIdTokenExpired = 11037; + + // 11040 The application ID for the Nintendo Switch title has not been configured, + // this can be setup in the 'Options' tab within your game profile. + public const uint RESTAPI_NintendoSwitchAppIdNotConfigured = 11040; + + // 11041 The application ID of the originating Switch title is not permitted to + // authenticate users. Please check the Switch application id submitted on your games' + // 'Options' tab and ensure it is the same application id of the Switch title making the + // authentication request. + public const uint RESTAPI_NintendoSwitchNotPermittedToAuthUsers = 11041; + + // 11052 The access token was invalid/malformed. + public const uint RESTAPI_AccessTokenInvalid = 11052; + + // 11056 mod.io was unable to validate the credentials with Google's servers. + public const uint RESTAPI_UnableToValidateCredentialsWithGoogle = 11056; + + // 11053 The Google access token is not valid yet. + public const uint RESTAPI_GoogleAccessTokenNotValidYet = 11053; + + // 11054 The Google access token has expired. You should request another token from the + // Google SDK and ensure it is delivered to mod.io before it expires. + public const uint RESTAPI_GoogleAccessTokenExpired = 11054; + + // 11043 mod.io was unable to get account data from the Discord servers. + public const uint RESTAPI_DiscordUnableToGetAccountData = 11043; + +#endregion + + private static HashSet cacheClearingErrorCodes = + new HashSet() { RESTAPI_OAuthTokenExpired, + RESTAPI_InvalidSteamEncryptedAppTicket, + RESTAPI_CantVerifyCredentialsExternally, + RESTAPI_KeyNotAssociatedWithGame, + RESTAPI_TestKeyForTestEnvOnly, + RESTAPI_SecretSteamAppTicketNotConfigured, + RESTAPI_UserMustAgreeToModIoTerms, + RESTAPI_GogInvalidAppTicket, + RESTAPI_GogGameNotConfigured, + RESTAPI_UnableToFetchAccountDataFromItchIo, + RESTAPI_OculusRiftAppTicketNotConfigured, + RESTAPI_OculusQuestAppTicketNotConfigured, + RESTAPI_XboxLiveTokenInvalid, + RESTAPI_XboxLiveTokenExpired, + RESTAPI_XboxNotAllowedToInteractWithUGC, + RESTAPI_XboxLiveChildAccountNotPermitted, + RESTAPI_NsaIdTokenInvalid, + RESTAPI_UnableToVerifyNintendoCredentials, + RESTAPI_NsaIdTokenNotValidYet, + RESTAPI_NsaIdTokenExpired, + RESTAPI_NintendoSwitchAppIdNotConfigured, + RESTAPI_NintendoSwitchNotPermittedToAuthUsers, + RESTAPI_AccessTokenInvalid, + RESTAPI_UnableToValidateCredentialsWithGoogle, + RESTAPI_GoogleAccessTokenNotValidYet, + RESTAPI_GoogleAccessTokenExpired, + RESTAPI_DiscordUnableToGetAccountData }; + + private static Dictionary errorCodesClearText = new Dictionary() { + { Success, "Success!" }, + { Unknown, "Unknown" }, + + { Init_NotYetInitialized, "Not yet initialized." }, + { Init_FailedToLoadConfig, "Failed to load the config." }, + { Init_UserDataFailedToInitialize, "User data failed to initialize." }, + { Init_PersistentDataFailedToInitialize, "Persistent data failed to initialize." }, + { Init_TemporaryDataFailedToInitialize, "Temporary data failed to initialize." }, + + { Settings_InvalidServerURL, "Invalid server URL." }, + { Settings_InvalidGameId, "Invalid game id." }, + { Settings_InvalidGameKey, "Invalid game key." }, + { Settings_InvalidLanguageCode, "Invalid language code." }, + { Settings_UploadsDisabled, "Uploads are disabled." }, + + { User_NotAuthenticated, "User not authenticated." }, + { User_InvalidToken, "User has an invalid token." }, + { User_InvalidEmailAddress, "User has an invalid email address." }, + { User_AlreadyAuthenticated, "User already authenticated." }, + { User_NotRemoved, "User not removed." }, + + { InvalidParameter_PaginationParams, "Invalid parameter - pagination params." }, + { InvalidParameter_ReportNotReady, "Invalid parameter - report not ready." }, + { InvalidParameter_ModMetadataTooLarge, "Invalid parameter - mod metadata too large." }, + { InvalidParameter_BadCreationToken, "Invalid parameter - bad creation token." }, + { InvalidParameter_DescriptionTooLarge, "Invalid parameter - description too large." }, + { InvalidParameter_ChangeLogTooLarge, "Invalid parameter - changelog too large." }, + { InvalidParameter_ModProfileRequiredFieldsNotSet, + "Invalid parameter - mod prof.ile required fields not set." }, + { InvalidParameter_ModSummaryTooLarge, "Invalid parameter - mod summary too large." }, + { InvalidParameter_ModLogoTooLarge, "Invalid parameter - mod logo too large." }, + { InvalidParameter_CantBeNull, "Invalid parameter - cant be null!" }, + { InvalidParameter_MissingModId, "Invalid parameter - missing mod id." }, + + { API_FailedToDeserializeResponse, "Api failed to deserialize response." }, + { API_FailedToGetResponseFromWebRequest, + "Api failed to get response from webrequest." }, + { API_FailedToConnect, "Api failed to connect." }, + { API_FailedToCompleteRequest, "Api failed to complete the request." }, + + { IO_FilePathInvalid, "IO - File path invalid." }, + { IO_FileDoesNotExist, "IO - File does not exist." }, + { IO_FileCouldNotBeOpened, "IO - File could not be opened." }, + { IO_FileCouldNotBeCreated, "IO - File could not be created." }, + { IO_FileCouldNotBeDeleted, "IO - File could not be deleted." }, + { IO_FileCouldNotBeRead, "IO - File could not be read." }, + { IO_FileCouldNotBeWritten, "IO - File could not be written." }, + { IO_DirectoryDoesNotExist, "IO - Directory does not exist." }, + { IO_DirectoryCouldNotBeCreated, "IO - Directory could not be created." }, + { IO_DirectoryCouldNotBeDeleted, "IO - Directory could not be deleted." }, + { IO_DirectoryCouldNotBeMoved, "IO - Directory could not be moved." }, + { IO_DirectoryCouldNotBeOpened, "IO - Directory could not be opened." }, + { IO_DirectoryCouldNotBeRead, "IO - Directory could not be read." }, + { IO_InvalidMountPoint, "IO - Invalid mount point." }, + { IO_AccessDenied, "IO - Access Denied!" }, + { IO_FileSizeTooLarge, "IO - The filesize is too large." }, + { IO_InsufficientStorage, "IO - There is not enough storage space remaining." }, + { IO_DataServiceForPathNotFound, "IO - data service for path not found." }, + + { Internal_DuplicateRequestWithDifferingSchemas, + "Internal - Duplicate request with differing schemas." }, + { Internal_FailedToDeserializeObject, "Internal - Failed to deserialize object." }, + { Internal_RegistryNotInitialized, "Internal - Registry not initialized." }, + { Internal_ModManagementOperationFailed, + "Internal - Mod management operation failed." }, + { Internal_FileSizeMismatch, "Internal - File size mismatch." }, + { Internal_FileHashMismatch, "Internal - File hash mismatch." }, + { Internal_OperationCancelled, "Internal - Operation cancelled." }, + { Internal_InvalidParameter, "Internal - Invalid parameter" }, + + { RESTAPI_ServerOutage, "mod.io is currently experiencing an outage. (rare)" }, + { RESTAPI_CrossOriginRequestForbidden, "Cross-origin request forbidden." }, + { RESTAPI_UnknownServerError, + ".io failed to complete the request, please try again. (rare)" }, + { RESTAPI_APIVersionInvalid, "API version supplied is invalid." }, + { RESTAPI_APIKeyMissing, "api_key is missing from your request." }, + { RESTAPI_APIKeyMalformed, "api_key supplied is malformed." }, + { RESTAPI_APIKeyInvalid, "api_key supplied is invalid." }, + { RESTAPI_InsufficientWritePermission, + "Access token is missing the write scope to perform the request." }, + { RESTAPI_InsufficientReadPermission, + "Access token is missing the read scope to perform the request." }, + { RESTAPI_OAuthTokenExpired, "Access token is expired, or has been revoked." }, + { RESTAPI_UserAccountDeleted, "Authenticated user account has been deleted." }, + { RESTAPI_UserAccountBanned, + "Authenticated user account has been banned by mod.io admins." }, + { RESTAPI_RateLimitExceeded, + "You have been ratelimited for making too many requests. See Rate Limiting." }, + { RESTAPI_11012, "Invalid security code." }, + { RESTAPI_11014, "Security code has expired. Please request a new code." }, + { RESTAPI_SubmittedBinaryCorrupt, "The submitted binary file is corrupted." }, + { RESTAPI_SubmittedBinaryUnreadable, "The submitted binary file is unreadable." }, + { RESTAPI_JSONMalformed, + "You have used the input_json parameter with semantically incorrect JSON." }, + { RESTAPI_ContentHeaderTypeMissing, + "The Content-Type header is missing from your request." }, + { RESTAPI_ContentHeaderTypeNotSupported, + "The Content-Type header is not supported for this endpoint." }, + { RESTAPI_ResponseFormatNotSupported, + "You have requested a response format that is not supported (JSON only)." }, + { RESTAPI_DataValidationErrors, + "The request contains validation errors for the data supplied. See the attached errors field within the Error Object to determine which input failed." }, + { RESTAPI_ResourceIdNotFound, "The requested resource does not exist." }, + { RESTAPI_GameIdNotFound, "The requested game could not be found." }, + { RESTAPI_GameDeleted, "The requested game has been deleted." }, + { RESTAPI_ModSubscriptionAlreadyExists, + "Already subscribed to a mod (can't subscribe)." }, + { RESTAPI_ModSubscriptionNotFound, "Not subscribed to a mod (can't unsubscribe)." }, + { RESTAPI_InsufficientCreatePermission, + "You do not have the required permissions to create content for the specified resource." }, + { RESTAPI_ModfileIdNotFound, "The requested modfile could not be found." }, + { RESTAPI_InsufficientDeletePermission, "No permission to delete specified resource." }, + { RESTAPI_ModIdNotFound, "The requested mod could not be found." }, + { RESTAPI_ModDeleted, "The requested mod has been deleted." }, + { RESTAPI_CommentIdNotFound, "The requested comment could not be found." }, + { RESTAPI_ModRatingAlreadyExists, "The mod rating is already positive/negative" }, + { RESTAPI_ModRatingNotFound, "The mod rating is already removed" }, + { RESTAPI_UserIdNotFound, "The requested user could not be found." }, + + { RESTAPI_InvalidSteamEncryptedAppTicket, + "The steam encrypted app ticket was invalid." }, + { RESTAPI_CantVerifyCredentialsExternally, + "mod.io was unable to verify the credentials against the external service provider." }, + { RESTAPI_KeyNotAssociatedWithGame, + "The api_key supplied in the request must be associated with a game." }, + { RESTAPI_TestKeyForTestEnvOnly, + "The api_key supplied in the request is for test environment purposes only and cannot be used for this functionality." }, + { RESTAPI_SecretSteamAppTicketNotConfigured, + "The secret steam app ticket associated with this game has not been configured." }, + { RESTAPI_UserMustAgreeToModIoTerms, + "The user has not agreed to the mod.io Terms of Use. Please see terms_agreed parameter description and the Terms endpoint for more information." }, + { RESTAPI_GogInvalidAppTicket, "The GOG Galaxy encrypted app ticket was invalid." }, + { RESTAPI_GogGameNotConfigured, + "The secret GOG Galaxy app ticket associated with this game has not been configured." }, + { RESTAPI_UnableToFetchAccountDataFromItchIo, + "mod.io was unable to get account data from itch.io servers." }, + { RESTAPI_OculusRiftAppTicketNotConfigured, + "The secret Oculus Rift app ticket associated with this game has not been configured." }, + { RESTAPI_OculusQuestAppTicketNotConfigured, + "The secret Oculus Quest app ticket associated with this game has not been configured." }, + { RESTAPI_XboxLiveTokenInvalid, + "The Xbox Live token supplied in the request is invalid." }, + { RESTAPI_XboxLiveTokenExpired, "The Xbox Live token supplied has expired." }, + { RESTAPI_XboxNotAllowedToInteractWithUGC, + "The user is not permitted to interact with UGC. This can be modified in the user's Xbox Live profile." }, + { RESTAPI_XboxLiveChildAccountNotPermitted, + "Xbox Live users with 'Child' accounts are not permitted to use mod.io." }, + { RESTAPI_NsaIdTokenInvalid, "The NSA ID token was invalid/malformed." }, + { RESTAPI_UnableToVerifyNintendoCredentials, + "mod.io was unable to validate the credentials with Nintendo Servers." }, + { RESTAPI_NsaIdTokenNotValidYet, "The NSA ID token is not valid yet." }, + { RESTAPI_NsaIdTokenExpired, + "The NSA ID token has expired. You should request another token from the Switch SDK and ensure it is delivered to mod.io before it expires." }, + { RESTAPI_NintendoSwitchAppIdNotConfigured, + "The application ID for the Nintendo Switch title has not been configured, this can be setup in the 'Options' tab within your game profile." }, + { RESTAPI_NintendoSwitchNotPermittedToAuthUsers, + "The application ID of the originating Switch title is not permitted to authenticate users. Please check the Switch application id submitted on your games' 'Options' tab and ensure it is the same application id of the Switch title making the authentication request." }, + { RESTAPI_AccessTokenInvalid, "//11052 The access token was invalid/malformed." }, + { RESTAPI_UnableToValidateCredentialsWithGoogle, + "mod.io was unable to validate the credentials with Google's servers." }, + { RESTAPI_GoogleAccessTokenNotValidYet, "The Google access token is not valid yet." }, + { RESTAPI_GoogleAccessTokenExpired, + "The Google access token has expired. You should request another token from the Google SDK and ensure it is delivered to mod.io before it expires." }, + { RESTAPI_DiscordUnableToGetAccountData, + "mod.io was unable to get account data from the Discord servers." }, + }; + + public static bool IsInvalidSession(ErrorObject errorObject) + { + return cacheClearingErrorCodes.Any(x => x == errorObject.error.error_ref); + } + + public static string GetErrorCodeMeaning(uint code) + { + if(errorCodesClearText.TryGetValue(code, out var meaning)) + { + return meaning; + } + return "This code is not contained in the error codes clear text repository."; + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/ResultCode.cs.meta b/Runtime/ModIO.Implementation/Classes/ResultCode.cs.meta new file mode 100644 index 0000000..0690fd6 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/ResultCode.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7e71b426752111a4781e4057ce8239ad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/Settings.cs b/Runtime/ModIO.Implementation/Classes/Settings.cs new file mode 100644 index 0000000..4a067e4 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/Settings.cs @@ -0,0 +1,12 @@ +namespace ModIO.Implementation +{ + /// Holds the settings for the plugin. + public static class Settings + { + /// Server settings. + public static ServerSettings server; + + /// Build settings. + public static BuildSettings build; + } +} diff --git a/Runtime/ModIO.Implementation/Classes/Settings.cs.meta b/Runtime/ModIO.Implementation/Classes/Settings.cs.meta new file mode 100644 index 0000000..d442b73 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/Settings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dc89bcb02fac50d40991a9b65941facf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/SettingsAsset.cs b/Runtime/ModIO.Implementation/Classes/SettingsAsset.cs new file mode 100644 index 0000000..151b846 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/SettingsAsset.cs @@ -0,0 +1,81 @@ +using UnityEngine; + +namespace ModIO.Implementation +{ + /// Asset representation of a collection of build-settings. + internal partial class SettingsAsset : ScriptableObject + { +#region Asset Management + + /// Data path for the asset. + public const string FilePath = @"mod.io/config"; + + /// Loads the settings asset at the default path. + public static Result TryLoad(out ServerSettings serverSettings, + out BuildSettings buildSettings) + { + SettingsAsset asset = Resources.Load(FilePath); + + if(asset == null) + { + serverSettings = new ServerSettings(); + buildSettings = new BuildSettings(); + return ResultBuilder.Create(ResultCode.Init_FailedToLoadConfig); + } + else + { + serverSettings = asset.serverSettings; + buildSettings = asset.GetBuildSettings(); + Resources.UnloadAsset(asset); + + return ResultBuilder.Success; + } + } + + public static Result TryLoad(out bool autoInitializePlugin) + { + SettingsAsset asset = Resources.Load(FilePath); + + if(asset == null) + { + autoInitializePlugin = false; + return ResultBuilder.Create(ResultCode.Init_FailedToLoadConfig); + } + + autoInitializePlugin = asset.autoInitializePlugin; + Resources.UnloadAsset(asset); + return ResultBuilder.Success; + } + + #endregion // Asset Management + +#region Data + + /// Server Settings + [HideInInspector] + public ServerSettings serverSettings; + + // NOTE(@jackson): + // The following section is the template for what a platform-specific implementation + // should look like. The platform partial will include a BuildSettings field + // that is exposed without protection and an implementation of GetBuildSettings() + // protected by a platform pre-processor. + + /// Configuration for the editor. + public BuildSettings editorConfiguration; + + //Initializes the ModIO plugin, with default settings, the first time it is used + public bool autoInitializePlugin = true; + +#if UNITY_EDITOR + + /// Gets the configuration for the editor. + public BuildSettings GetBuildSettings() + { + return this.editorConfiguration; + } + +#endif // UNITY_EDITOR +#endregion // Data + } +} diff --git a/Runtime/ModIO.Implementation/Classes/SettingsAsset.cs.meta b/Runtime/ModIO.Implementation/Classes/SettingsAsset.cs.meta new file mode 100644 index 0000000..f215f8c --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/SettingsAsset.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 94c96ecaeebcc024088ca4eb633ea8d2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/TaskExtensions.cs b/Runtime/ModIO.Implementation/Classes/TaskExtensions.cs new file mode 100644 index 0000000..4c52eb2 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/TaskExtensions.cs @@ -0,0 +1,26 @@ +using System.Threading.Tasks; + +namespace ModIO.Implementation +{ + /// Adds convenience functions to the Task class. + internal static class TaskExtensions + { + /// Convenience accessor for getting the ModIOResult. + public static Result GetResult(this Task t) + { + return t.Result; + } + + /// Convenience accessor for getting the ModIOResult. + public static Result GetResult(this Task> t) + { + return t.Result.result; + } + + /// Convenience accessor for getting the ModIOResult. + public static T GetValue(this Task> t) + { + return t.Result.value; + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/TaskExtensions.cs.meta b/Runtime/ModIO.Implementation/Classes/TaskExtensions.cs.meta new file mode 100644 index 0000000..e1c0ef6 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/TaskExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 738601128de45354ea4034e2400a5e0f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/TaskPriority.cs b/Runtime/ModIO.Implementation/Classes/TaskPriority.cs new file mode 100644 index 0000000..4582212 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/TaskPriority.cs @@ -0,0 +1,8 @@ +namespace ModIO.Implementation +{ + public enum TaskPriority + { + HIGH, + LOW + } +} diff --git a/Runtime/ModIO.Implementation/Classes/TaskPriority.cs.meta b/Runtime/ModIO.Implementation/Classes/TaskPriority.cs.meta new file mode 100644 index 0000000..98a7d9c --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/TaskPriority.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 653eddd3b5a313440b11086082280566 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/TaskQueueRunner.cs b/Runtime/ModIO.Implementation/Classes/TaskQueueRunner.cs new file mode 100644 index 0000000..ab071ca --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/TaskQueueRunner.cs @@ -0,0 +1,258 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace ModIO.Implementation +{ + + internal class TaskQueueRunner + { + + class TaskQueueItem + { + public Task task; + public int taskSize; + public TaskPriority priority; + public bool useSeparateThread; + } + + List tasks = new List(); + int upperTasksBoundary; + bool runsAutomatically; + bool isAutoRunning; + bool synchronizedJobs = true; + + /// + /// Creates a TaskPriorityQueueRunner + /// + /// Uppertask boundary is a hard limit to how many or "much" tasks it can run. + /// When you add a task, you add a task size for it. Each time the TaskPriorityQueueRunner + /// updates its tasks, it'll only run as many tasks as it can do withing the size of the + /// upper task boundary + /// /// + /// if true, the TaskPriorityQueueRunner will attempt to run itself + /// when you add a task, if it isn't already running. + /// + /// if true, all jobs will be run in order. If false, all jobs + /// will ge started at the same time and be awaited on together until finish. + /// Warning: Setting this to true will mean that all other tasks wait until finished. + /// + public TaskQueueRunner(int upperTasksBoundary, bool runsAutomatically = false, bool synchronizedJobs = false) + { + this.upperTasksBoundary = upperTasksBoundary; + this.runsAutomatically = runsAutomatically; + this.synchronizedJobs = synchronizedJobs; + } + + async void AutoRun() + { + if(isAutoRunning) + { + return; + } + + isAutoRunning = true; + + while(HasTasks()) + { + try + { + await PerformTasks(); + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, $"[TQR] Unhandled exception " + + $" thrown in AutoRun. Exception: " + + $"{e.Message} - Inner Exception: " + + $"{e.InnerException?.Message}"); + } + } + isAutoRunning = false; + } + + /// + /// Runs as many tasks as possible given the boundary. + /// Attempts to run HIGH priority tasks first. + /// Will add LOW priority tasks if they are within bounds. + /// + /// Returns a task which is responsible for running all the compiled tasks. + public async Task PerformTasks() + { + List runTasks = new List(); + try + { + lock( tasks ) + { + int taskAmount = 0; + + runTasks.AddRange(GetTasks(TaskPriority.HIGH, upperTasksBoundary, ref taskAmount, tasks)); + runTasks.AddRange(GetTasks(TaskPriority.LOW, upperTasksBoundary, ref taskAmount, tasks)); + + tasks = tasks.Except(runTasks).ToList(); + + if(runTasks.Count == 0) + { + return; + } + } + + await RunTasksAsync(runTasks, synchronizedJobs); + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, $"[TQR] Unhandled exception thrown in " + + $"PerformTasks operation. Exception: {e.Message}" + + $" - Inner Exception: {e.InnerException?.Message}"); + } + } + + /// + /// Returns true if the Task Priority Queue runner has more tasks to run + /// + public bool HasTasks() => tasks.Count > 0; + + /// + /// Adds a new task to the TaskQueueRunner with a given priority and task size. + /// + /// The function that represents the task to be executed. + /// The priority of the task (TaskPriority). + /// The size of the task. + /// Returns a Task of type T for awaiting purposes. + public Task AddTask(TaskPriority prio, int taskSize, Func> taskFunc, bool useSeparateThread = false) + { + TaskCompletionSource taskCompletionSource = new TaskCompletionSource(); + + Task task = new Task(async () => + { + try + { + T result = await taskFunc(); + taskCompletionSource.SetResult(result); + } + catch (Exception ex) + { + taskCompletionSource.SetException(ex); + } + }); + + lock (tasks) + { + tasks.Add(new TaskQueueItem + { + task = task, + taskSize = taskSize, + priority = prio, + useSeparateThread = useSeparateThread + }); + + if (runsAutomatically) + { + AutoRun(); + } + } + + return taskCompletionSource.Task; + } + + /// + /// Compiles a list of tasks to run given the upper task boundary, + /// giving consideration to how many tasks we have already considered towards the boundary. + /// + static List GetTasks(TaskPriority p, int upperTasksBoundary, ref int taskAmount, List operations) + { + int taskAmountCache = taskAmount; + + //Order of tasks is not considered when running them + //however, it is considered when calculating what to run + List tasks = operations + .Where(x => x.priority == p) + .OrderBy(x => x.taskSize) + .Where(x => + { + if(taskAmountCache + x.taskSize <= upperTasksBoundary) + { + taskAmountCache += x.taskSize; + return true; + } + + return false; + }) + .ToList(); + + taskAmount = taskAmountCache; + + return tasks; + } + + /// + /// Runs a tasks queue item list. + /// + /// The task responsible for knowing when all tasks are completed. + static async Task RunTasksAsync(List items, bool synchronizedJobs) + { + if(synchronizedJobs) + { + foreach(TaskQueueItem item in items) + { + if(item.task.IsCanceled || item.task.IsFaulted) + { + continue; + } + + try + { + if(item.useSeparateThread) + { + await Task.Run(() => item.task.Start()); + } + else + { + item.task.Start(); + item.task.Wait(); + await item.task; + } + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, $"[TQR] Unhandled exception thrown in" + + $" synchronized RunTasksAsync() operation." + + $" Exception: {e.Message} - Inner Exception:" + + $" {e.InnerException?.Message}"); + } + } + } + else + { + foreach(var item in items) + { + if(item.task.IsCanceled || item.task.IsFaulted) + { + continue; + } + + try + { + if(item.useSeparateThread) + { + await Task.Run(() => item.task.Start()); + } + else + { + item.task.Start(); + } + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, $"[TQR] Unhandled exception thrown in" + + $" non-synchronized RunTasksAsync() operation." + + $" Exception: {e.Message} - Inner Exception:" + + $" {e.InnerException?.Message}"); + } + } + + await Task.WhenAll(items.Select(x => x.task).ToArray()); + } + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/TaskQueueRunner.cs.meta b/Runtime/ModIO.Implementation/Classes/TaskQueueRunner.cs.meta new file mode 100644 index 0000000..83bbaed --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/TaskQueueRunner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 89f0741e49c1a6d48ba30933332eb2d7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/TaskQueueRunnerResult.cs b/Runtime/ModIO.Implementation/Classes/TaskQueueRunnerResult.cs new file mode 100644 index 0000000..8f60f4f --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/TaskQueueRunnerResult.cs @@ -0,0 +1,86 @@ +// using System; +// using System.Threading.Tasks; +// using UnityEngine; +// +// namespace ModIO.Implementation +// { +// class TaskQueueRunnerResult : TaskPriorityQueueRunner +// { +// //I don't know how to approach this any more +// +// public TaskQueueRunnerResult() : base(1, true) { } +// +// //Okay, so I think this doesn't work, due to the cast... hmmm +// //I think the problem is that we start the task, return the result, before it's been done running +// //Via Task.Factory.StartNew() +// //TECHNICALLY it should await the result? +// +// //This means we can make it generic way easier! we just have to specify that its a non-class +// //and another with a class as T! Sweet. And Generic! +// //Assuming it works +// public async Task AddTaskResult2(TaskPriority priority, int taskSize, Task task) +// { +// Debug.Log("TaskResult2"); +// Func> castWrapper = async () => +// { +// Debug.Log("castWrapper"); +// Result res = await task; +// return res as object; +// }; +// Task t = AddTask(priority, taskSize, new Task(castWrapper)); +// var tOutput = await t; //So, it fails because it doesn't await? but i am awaiting and running? +// //Result is a task? +// +// //okay, this task is not viable +// //okay, this is progress, but nothing seems to be running this task? +// +// //So, I think i have to run the conversion task +// //but thats not working? +// //Honestly this is too complex we need to go back to the drawing board +// //we may actually need to merge result and resultand somehow +// //interface should work +// +// Task conversionTask = ((Task)t.Result); +// var task3wtf = Task.Run(() => Task.FromResult(conversionTask)); +// await task3wtf; +// //conversionTask.RunSynchronously(); +// //conversionTask.RunSynchronously(); +// +// //Why doesn't it run this? +// //object conversionOutput = await AddTask(priority, 1, conversionTask); +// //Task.Run(conversionTask); +// +// Debug.Log($"Returning value in taskresult2 {t} completed:{t.IsCompleted} result:{t.Result}"); +// Debug.Log($"Returning value in conversionOutput completed:{conversionTask.IsCompleted} result:{conversionTask.Result}"); +// return (Result)t.Result; +// } +// +// public async Task AddTaskResult(TaskPriority priority, int taskSize, Task inputTask) +// { +// Func> func = async () => +// { +// //This crashes? +// Result result = await inputTask; //okay, what is input task? +// +// return Task.Factory.StartNew(() => result as object); +// }; +// +// Task task = AddTask(priority, taskSize, func); +// Task resultWrapper = Task.Factory.StartNew(() => (Result)task.Result); //this can't be right +// return await resultWrapper; +// } +// +// public async Task> AddTaskResultAnd(TaskPriority priority, int taskSize, Task> inputTask) +// { +// Func> func = async () => +// { +// ResultAnd result = await inputTask; +// return Task.Factory.StartNew(() => result as object); +// }; +// +// Task task = AddTask(priority, taskSize, func); +// Task> resultWrapper = Task.Factory.StartNew(() => task.Result as ResultAnd); +// return await resultWrapper; +// } +// } +// } diff --git a/Runtime/ModIO.Implementation/Classes/TaskQueueRunnerResult.cs.meta b/Runtime/ModIO.Implementation/Classes/TaskQueueRunnerResult.cs.meta new file mode 100644 index 0000000..6f1f9ff --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/TaskQueueRunnerResult.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e30b1b8ce6576564c9f6548a60d2cf67 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/UnityDispatcher.cs b/Runtime/ModIO.Implementation/Classes/UnityDispatcher.cs new file mode 100644 index 0000000..1e2a3a4 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/UnityDispatcher.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using ModIO.Util; + +namespace ModIOBrowser.Implementation +{ + class UnityDispatcher : SelfInstancingMonoSingleton + { + private static Thread mainThread; + private static object lockItem = new object(); + private static readonly Queue _actions = new Queue(); + + protected override void Awake() + { + base.Awake(); + mainThread = Thread.CurrentThread; + } + + public static bool MainThread() => Thread.CurrentThread == mainThread; + + public void InvokeAsync(Action action) + { + if(MainThread()) + { + action(); + } + else + { + lock(lockItem) + { + _actions.Enqueue(action); + } + } + } + + void Update() + { + lock(lockItem) + { + while(_actions.Count > 0) + { + _actions.Dequeue()(); + } + } + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/UnityDispatcher.cs.meta b/Runtime/ModIO.Implementation/Classes/UnityDispatcher.cs.meta new file mode 100644 index 0000000..24e1045 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/UnityDispatcher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a8858920681e877438f0efb341793cf8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/UserData.cs b/Runtime/ModIO.Implementation/Classes/UserData.cs new file mode 100644 index 0000000..b7eba98 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/UserData.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation +{ + /// Stores the user data for the session. + [Serializable] + internal class UserData + { + /// Variable backing for the singleton. + public static UserData instance = null; + +#region Fields + + // TODO @Jackson Replace this with AccessToken.cs Type (so it has dateExpires and provider) + /// OAuthToken assigned to the user. + public string oAuthToken; + + public long oAuthExpiryDate; + + /// Has the token been rejected. + public bool oAuthTokenWasRejected; + + // TODO Consolidate this with Registry + public Dictionary queuedUnsubscribedMods = + new Dictionary(); + + /// + /// Assigned on Authentication methods. + /// + public UserObject userObject; + + public string rootLocalStoragePath; + +#endregion // Fields + + /// Convenience wrapper for determining if a valid token is in use. + public bool IsOAuthTokenValid() + { + return (!string.IsNullOrEmpty(oAuthToken) && !oAuthTokenWasRejected); + } + + public void SetUserObject(UserObject user) + { + userObject = user; + ModCollectionManager.AddUserToRegistry(user); + DataStorage.SaveUserData(); + } + + public void ClearUser() + { + userObject = default; + ClearAuthenticatedSession(); + DataStorage.SaveUserData(); + } + + /// Convenience wrapper that sets OAuthToken and clears rejected flag. + public void SetOAuthToken(AccessTokenObject newToken) + { + oAuthToken = newToken.access_token; + oAuthExpiryDate = newToken.date_expires; + oAuthTokenWasRejected = false; + DataStorage.SaveUserData(); + } + + public void SetOAuthTokenAsRejected() + { + oAuthTokenWasRejected = true; + } + + internal void ClearAuthenticatedSession() + { + oAuthToken = default; + oAuthTokenWasRejected = false; + } + } +} diff --git a/Runtime/ModIO.Implementation/Classes/UserData.cs.meta b/Runtime/ModIO.Implementation/Classes/UserData.cs.meta new file mode 100644 index 0000000..4e90ea0 --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/UserData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 77c9290352f782a42a8e431809f313cf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Classes/UserModCollectionData.cs b/Runtime/ModIO.Implementation/Classes/UserModCollectionData.cs new file mode 100644 index 0000000..5a556aa --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/UserModCollectionData.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; + +namespace ModIO.Implementation +{ + [System.Serializable] + internal class UserModCollectionData + { + public long userId; + public HashSet subscribedMods = new HashSet(); + public HashSet disabledMods = new HashSet(); + public List unsubscribeQueue = new List(); + } +} diff --git a/Runtime/ModIO.Implementation/Classes/UserModCollectionData.cs.meta b/Runtime/ModIO.Implementation/Classes/UserModCollectionData.cs.meta new file mode 100644 index 0000000..a114ada --- /dev/null +++ b/Runtime/ModIO.Implementation/Classes/UserModCollectionData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: badf32063427a43dd8a7903d9f4fdc54 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Enums.meta b/Runtime/ModIO.Implementation/Enums.meta new file mode 100644 index 0000000..21f2ad2 --- /dev/null +++ b/Runtime/ModIO.Implementation/Enums.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c99a7311ab94543c2b5cd42063b3e70e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Enums/LogPrefix.cs b/Runtime/ModIO.Implementation/Enums/LogPrefix.cs new file mode 100644 index 0000000..cfb7068 --- /dev/null +++ b/Runtime/ModIO.Implementation/Enums/LogPrefix.cs @@ -0,0 +1,14 @@ + +namespace ModIO.Implementation +{ + internal enum LogPrefix + { + Modio, + ModioInternal, + ModioAPI, + ModioGET, + ModioPOST, + ModioPUT, + ModioDELETE + } +} diff --git a/Runtime/ModIO.Implementation/Enums/LogPrefix.cs.meta b/Runtime/ModIO.Implementation/Enums/LogPrefix.cs.meta new file mode 100644 index 0000000..a8c98e3 --- /dev/null +++ b/Runtime/ModIO.Implementation/Enums/LogPrefix.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c19608da1da045e9a2e7853e4e44117 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Enums/ReportResourceType.cs b/Runtime/ModIO.Implementation/Enums/ReportResourceType.cs new file mode 100644 index 0000000..28c226c --- /dev/null +++ b/Runtime/ModIO.Implementation/Enums/ReportResourceType.cs @@ -0,0 +1,9 @@ +namespace ModIO.Implementation +{ + public enum ReportResourceType + { + Games = 0, + Mods = 1, + Users = 2 + } +} diff --git a/Runtime/ModIO.Implementation/Enums/ReportResourceType.cs.meta b/Runtime/ModIO.Implementation/Enums/ReportResourceType.cs.meta new file mode 100644 index 0000000..c299d51 --- /dev/null +++ b/Runtime/ModIO.Implementation/Enums/ReportResourceType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d42438522dbbd443b8de5be3799b1110 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API.meta b/Runtime/ModIO.Implementation/Implementation.API.meta new file mode 100644 index 0000000..b135e73 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0faa5b814c64482f927f2572f5af874 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes.meta new file mode 100644 index 0000000..f146a5b --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b53aaf06c6b644aee9f0ad248eb527ac +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/BinaryDataContainer.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/BinaryDataContainer.cs new file mode 100644 index 0000000..7673bdb --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/BinaryDataContainer.cs @@ -0,0 +1,15 @@ +namespace ModIO.Implementation.API +{ + class BinaryDataContainer + { + public string key; + public string fileName; + public byte[] data; + public BinaryDataContainer(string key, string fileName, byte[] data) + { + this.key = key; + this.fileName = fileName; + this.data = data; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/BinaryDataContainer.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/BinaryDataContainer.cs.meta new file mode 100644 index 0000000..1ce7426 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/BinaryDataContainer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fd558a05c0ca9ba49ae4cb250c984d65 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/CacheSizeStream.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/CacheSizeStream.cs new file mode 100644 index 0000000..bc27fdd --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/CacheSizeStream.cs @@ -0,0 +1,76 @@ +using System; + +namespace ModIO.Implementation.API +{ + /// + /// This class acts as a stream that only records the size of the stream. None of the + /// buffer/bytes are copied into the instance, so it doesn't take up memory. + /// + public class CacheSizeStream : System.IO.Stream + { + private int totalSize; + + public override void Write(byte[] buffer, int offset, int count) + { + totalSize += count; + } + + public override bool CanRead + { + get { + return false; + } + } + + public override bool CanSeek + { + get { + return false; + } + } + + public override bool CanWrite + { + get { + return true; + } + } + + public override void Flush() + { + // Nothing to do + } + + public override long Length + { + get { + return totalSize; + } + } + + public override long Position + { + get { + throw new NotImplementedException(); + } + set { + throw new NotImplementedException(); + } + } + + public override int Read(byte[] buffer, int offset, int count) + { + throw new NotImplementedException(); + } + + public override long Seek(long offset, System.IO.SeekOrigin origin) + { + throw new NotImplementedException(); + } + + public override void SetLength(long value) + { + throw new NotImplementedException(); + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/CacheSizeStream.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/CacheSizeStream.cs.meta new file mode 100644 index 0000000..1c20d61 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/CacheSizeStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c3098071f51faca41a0de467cb5eee5a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/RequestHandle.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/RequestHandle.cs new file mode 100644 index 0000000..8479433 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/RequestHandle.cs @@ -0,0 +1,12 @@ +using System; +using System.Threading.Tasks; + +namespace ModIO.Implementation.API +{ + public class RequestHandle + { + public Task task; + public ProgressHandle progress; + public Action cancel; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/RequestHandle.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/RequestHandle.cs.meta new file mode 100644 index 0000000..6077a18 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/RequestHandle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2c0704dcf8c9d224bbd9a06891892483 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseCache.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseCache.cs new file mode 100644 index 0000000..4380b6d --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseCache.cs @@ -0,0 +1,638 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization.Formatters.Binary; +using System.Threading.Tasks; +using ModIO.Implementation.API.Objects; +using Plugins.mod.io.Runtime.Utility; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIO.Implementation.API +{ + /// + /// Manages checking, adding to and removing Key Value Pairs into a basic cache. Whenever a + /// successful WebRequest has been deserialized and translated for the front end user the result + /// can be added to the cache. Each entry is removed after 15000 milliseconds. + /// + internal static class ResponseCache + { +#region Private class / wrappers for caching + [Serializable] + class CachedPageSearch + { + public Dictionary mods = new Dictionary(); + public long resultCount; + } + + [Serializable] + class CachedModProfile + { + public ModProfile profile; + public bool extendLifetime; + } +#endregion // Private class/wrappers for caching + + // whether or not to display verbose logs from the cache + public static bool + logCacheMessages = true; + public static long maxCacheSize = 0; + // 10 MiB is the minimum cache size estimate + const int minCacheSize = 10485760; + // 1 GiB is the absolute maximum for the cache size + const int absoluteCacheSizeLimit = 1073741924; + // milliseconds (60,000 being 60 seconds) + const int modLifetimeInCache = 60000; + + /// + /// stores md5 hashes generated after retrieving Terms of Use from the RESTAPI + /// + public static TermsHash termsHash; + + // I'm currently using the Binary formatter as it's the cleanest implementation and remains + // maintainable. There is definite room for optimisation but i'll wait until we settle on + // a decision. + // One known caveat is that it isn't 100% accurate because it can write int64s for example + // with less than 64 bytes (due to serialisation). At worst I think we could possibly see + // up to 10% leeway on the estimate, but i think this is acceptable for the use case + // TODO @Steve Need to bench the binary formatter and see what the overhead might be + // TODO: Test speed - Test accuracy + // TODO: Optimise if going forward with BF + + /// + /// All of the mods that have been obtained from the RESTAPI sorted according to the url + /// that was used to obtain them. + /// + static Dictionary modPages = + new Dictionary(); + + static Dictionary mods = new Dictionary(); + static Dictionary modsDependencies = new Dictionary(); + static Dictionary currentUserRatings = new Dictionary(); + static bool currentRatingsCached = false; + + /// + /// the terms of use, cached for the entire session. + /// + static KeyValuePair? termsOfUse; + + /// + /// The game tags, cached for the entire session. + /// + static TagCategory[] gameTags; + + /// + /// The authenticated user profile, cached for the entire session or until fetch updates. + /// + static UserProfile? currentUser; + + public static int CacheSize => mods.Count; + + #region Adding entries to Cache + + public static void AddModsToCache(string url, int offset, ModPage modPage) + { + if(!modPages.ContainsKey(url)) + { + modPages.Add(url, new CachedPageSearch()); + } + + // check for cache size clearing + EnsureCacheSize(modPage); + + modPages[url].resultCount = modPage.totalSearchResultsFound; + + List modIdsToClearAfterLifeTimeCheck = new List(); + + for(int i = 0; i < modPage.modProfiles.Length; i++) + { + // this line is just for ease of reading + ModProfile mod = modPage.modProfiles[i]; + + int index = i + offset; + if(!modPages[url].mods.ContainsKey(index)) + { + modPages[url].mods.Add(index, mod.id); + modIdsToClearAfterLifeTimeCheck.Add(mod.id); + } + + CachedModProfile cachedMod = new CachedModProfile(); + cachedMod.profile = mod; + if(!mods.ContainsKey(mod.id)) + { + mods.Add(mod.id, cachedMod); + } + else + { + mods[mod.id] = cachedMod; + } + } + + ClearModsFromCacheAfterDelay(modIdsToClearAfterLifeTimeCheck); + } + + public static void AddModToCache(ModProfile mod) + { + if(mods.ContainsKey(mod.id)) + { + mods[mod.id].profile = mod; + + // we dont want to start another thread to clear this entry because one already + // exists, therefore tag it to extend the lifetime. + mods[mod.id].extendLifetime = true; + } + else + { + CachedModProfile cachedMod = new CachedModProfile(); + cachedMod.profile = mod; + cachedMod.extendLifetime = false; + mods.Add(mod.id, cachedMod); + + ClearModFromCacheAfterDelay(mod.id); + } + } + + public static void AddUserToCache(UserProfile profile) + { + currentUser = profile; + } + + public static void AddTagsToCache(TagCategory[] tags) + { + gameTags = tags; + } + + /// + /// This caches the terms of use for the entire session. We only cache the ToS for one + /// platform at a time. It is cached as a KeyValuePair to ensure we dont return the + /// incorrect terms when given a different url for another platform (unlikely). + /// + /// the URL used to obtain the ToS + /// the terms of use returned from the specified url + /// + public static void AddTermsToCache(string url, TermsOfUse terms) + { + termsHash = terms.hash; + termsOfUse = new KeyValuePair(url, terms); + } + + public static void AddModDependenciesToCache(ModId modId, ModDependencies[] modDependencies) + { + if(modsDependencies.ContainsKey(modId)) + modsDependencies[modId] = modDependencies; + else + modsDependencies.Add(modId, modDependencies); + } + + public static void AddCurrentUserRating(long modId, Rating rating) + { + if(rating.rating == 0) + currentUserRatings.Remove(modId); + else if(currentUserRatings.ContainsKey(modId)) + currentUserRatings[modId] = rating; + else + currentUserRatings.Add(modId, rating); + } + + public static void ReplaceCurrentUserRatings(Rating[] ratings) + { + currentRatingsCached = true; + currentUserRatings.Clear(); + foreach(var rating in ratings) + { + AddCurrentUserRating(rating.modId, rating); + } + } + + #endregion // Adding entries to Cache + +#region Getting entries from Cache + /// + /// Attempts to get the mods from the cache and outs them as a ModPage. + /// + /// IMPORTANT: The url must not include pagination, ie offset= and limit= + /// true if the cache had all of the entries + public static bool GetModsFromCache(string url, int offset, int limit, out ModPage modPage) + { + // do we contain this URL in the cache + if(modPages.ContainsKey(url)) + { + List modsRetrievedFromCache = new List(); + + for(int i = 0; i < limit; i++) + { + int index = i + offset; + if(index >= modPages[url].resultCount) + { + // We've reached the limit of mods available for this url + // This is not a fail + break; + } + + if(modPages[url].mods.TryGetValue(index, out long modId)) + { + if(mods.TryGetValue(modId, out CachedModProfile mod)) + { + modsRetrievedFromCache.Add(mod.profile); + + // Continue to next iteration because this one succeeded + continue; + } + } + + // failed to get one of the mods for this cache request + modPage = default; + return false; + } + + // SUCCEEDED + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, $"[CACHE] retrieved {modsRetrievedFromCache.Count} mods from cache"); + } + + modPage = new ModPage(); + modPage.totalSearchResultsFound = modPages[url].resultCount; + modPage.modProfiles = modsRetrievedFromCache.ToArray(); + return true; + } + + // Failed + modPage = default; + return false; + } + + public static bool GetModFromCache(ModId modId, out ModProfile modProfile) + { + if(mods.ContainsKey(modId)) + { + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, "[CACHE] retrieved mod from cache"); + } + modProfile = mods[modId].profile; + return true; + } + + modProfile = default; + return false; + } + + public static bool GetUserProfileFromCache(out UserProfile userProfile) + { + if(currentUser != null) + { + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, "[CACHE] retrieved user profile from cache"); + } + userProfile = currentUser.Value; + return true; + } + + userProfile = default; + return false; + } + + public static bool GetTagsFromCache(out TagCategory[] tags) + { + if(gameTags != null) + { + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, "[CACHE] retrieved game tags from cache"); + } + tags = gameTags; + return true; + } + + tags = null; + return false; + } + + public static async Task> GetImageFromCache(string url) + { + ResultAnd result = new ResultAnd(); + ResultAnd resultIO = await DataStorage.TryRetrieveImageBytes(url); + + result.result = resultIO.result; + + if(resultIO.result.Succeeded()) + { + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, + "[CACHE] retrieved texture from temp folder cache"); + } + result.value = resultIO.value; + } + + return result; + } + + public static async Task> GetTextureFromCache(string url) + { + ResultAnd result = new ResultAnd(); + ResultAnd resultIO = await DataStorage.TryRetrieveImage(url); + + result.result = resultIO.result; + + if(resultIO.result.Succeeded()) + { + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, + "[CACHE] retrieved texture from temp folder cache"); + } + result.value = resultIO.value; + } + + return result; + } + + public static async Task> GetImageFromCache( + DownloadReference downloadReference) + => await GetImageFromCache(downloadReference.url); + + public static async Task> GetTextureFromCache( + DownloadReference downloadReference) + => await GetTextureFromCache(downloadReference.url); + + public static bool GetTermsFromCache(string url, out TermsOfUse terms) + { + if(termsOfUse != null) + { + if(termsOfUse.Value.Key == url) + { + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, "[CACHE] retrieved terms of use from cache"); + } + terms = termsOfUse.Value.Value; + return true; + } + } + + terms = default; + return false; + } + + public static bool GetModDependenciesCache(ModId modId, out ModDependencies[] modDependencies) + { + if(modsDependencies.ContainsKey(modId)) + { + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, "[CACHE] retrieved mod dependency from cache"); + } + + modDependencies = modsDependencies[modId]; + return true; + } + + modDependencies = default; + return false; + } + + public static bool GetCurrentUserRatingsCache(out Rating[] ratings) + { + ratings = currentUserRatings.Values.ToArray(); + if(currentUserRatings == null) + { + return false; + } + + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, "[CACHE] retrieved mod rating from cache"); + } + return true; + + } + + public static bool GetCurrentUserRatingFromCache(ModId modId, out ModRating modRating) + { + if(HaveRatingsBeenCachedThisSession()) + { + if(currentUserRatings.TryGetValue(modId, out Rating rating)) + { + modRating = rating.rating; + return true; + } + modRating = ModRating.None; + return true; + } + + modRating = ModRating.None; + return false; + } + + public static bool HaveRatingsBeenCachedThisSession() => currentRatingsCached; + + #endregion // Getting entries from Cache + +#region Clearing Cache entries + + static async void ClearModFromCacheAfterDelay(ModId modId) + { + do { + if(mods.TryGetValue(modId, out CachedModProfile mod)) + { + mod.extendLifetime = false; + } + await Task.Delay(modLifetimeInCache); // 60 second cache + } while(mods.ContainsKey(modId) && mods[modId].extendLifetime); + + if(mods.ContainsKey(modId)) + { + mods.Remove(modId); + } + } + + + static async void ClearModsFromCacheAfterDelay(List modIds) + { + // Use this list to mark modIds that need to be cleared + List modIdsToClear = new List(); + + do { + modIdsToClear.Clear(); + + // Reset lifetime extension because we are about to wait a full lifetime cycle + foreach(ModId modId in modIds) + { + if(mods.TryGetValue(modId, out CachedModProfile mod)) + { + mod.extendLifetime = false; + } + } + + // wait for 60 seconds + await Task.Delay(modLifetimeInCache); + + // check if any of the mods need to be cleared from the cache + foreach(ModId modId in modIds) + { + if(mods.TryGetValue(modId, out CachedModProfile mod)) + { + if(mod.extendLifetime) + { + continue; + } + } + + // mark the modId for removal + modIdsToClear.Add(modId); + } + + // Check the modIds marked for removal and clear them from cache now + foreach(ModId modId in modIdsToClear) + { + modIds.Remove(modId); + + if(mods.ContainsKey(modId)) + { + mods.Remove(modId); + } + } + } while(modIds.Count > 0); + } + + /// + /// If the user has logged out we need to clear the cache for the user data. + /// + public static void ClearUserFromCache() + { + currentUser = null; + } + + /// + /// Clears the entire cache, used when performing a shutdown operation. + /// + public static void ClearCache() + { + modPages?.Clear(); + mods?.Clear(); + termsHash = default; + termsOfUse = null; + gameTags = null; + modsDependencies?.Clear(); + currentUserRatings?.Clear(); + currentRatingsCached = false; + ClearUserFromCache(); + } +#endregion // Clearing Cache entries + +#region Cache Size Checking + + /// + /// Checks the size of the specified object against the cache to see if we need to make + /// room in order to not exceed the max limit of the cache. If so, it forces the cache to + /// clear the oldest entries (TODO @Steve check it is in fact clearing oldest, it's using + /// a hash table, so that may not be the case) + /// + /// + static void EnsureCacheSize(object obj) + { + // get the correct max size we should be checking for + long maxSize = maxCacheSize < minCacheSize ? minCacheSize : maxCacheSize; + maxSize = maxSize > absoluteCacheSizeLimit ? absoluteCacheSizeLimit : maxCacheSize; + + // Get the byte size estimates for th eobject and the current cache + long cacheSize = GetCacheSizeEstimate(); + long newEntrySize = GetByteSizeForObject(obj); + + // if the size exceeds max size, make some room in the cache + if(cacheSize + newEntrySize > maxSize) + { + ForceClearCache(cacheSize + newEntrySize - maxSize); + } + } + + /// + /// continues to iterate over the mods cache clearing one at a time until the total number + /// of bytes cleared exceeds the specified amount. + /// + /// The number of bytes to try and clear from the cache + static void ForceClearCache(long numberOfBytesToClear) + { + if(mods == null) + { + return; + } + + using(var enumerator = mods.GetEnumerator()) + { + List modsToRemove = new List(); + long clearablebytes = 0; + while(clearablebytes < numberOfBytesToClear && enumerator.MoveNext()) + { + // get the size of this mod + clearablebytes += GetByteSizeForObject(enumerator.Current.Value); + modsToRemove.Add(enumerator.Current.Key); + } + + foreach(long modId in modsToRemove) { mods.Remove(modId); } + } + } + + static long GetCacheSizeEstimate() + { + long totalSize = GetModsByteSize(); + totalSize += GetByteSizeForObject(currentUser); + totalSize += GetByteSizeForObject(gameTags); + totalSize += GetByteSizeForObject(termsOfUse); + if(logCacheMessages) + { + Logger.Log(LogLevel.Verbose, $"CACHE SIZE: {totalSize} bytes"); + } + return totalSize; + } + + static long GetModsByteSize() + { + long totalSize = 0; + BinaryFormatter binaryFormatter = new BinaryFormatter(); + + if(mods != null) + { + // Get size of Mod Profiles + using(CacheSizeStream stream = new CacheSizeStream()) + { + binaryFormatter.Serialize(stream, mods); + totalSize = stream.Length; + } + } + + if(modPages != null) + { + // Get size of ModPages + using(CacheSizeStream stream = new CacheSizeStream()) + { + binaryFormatter.Serialize(stream, modPages); + totalSize += stream.Length; + } + } + + return totalSize; + } + + static long GetByteSizeForObject(object obj) + { + if(obj == null) + { + return 0; + } + + BinaryFormatter binaryFormatter = new BinaryFormatter(); + + using(CacheSizeStream stream = new CacheSizeStream()) + { + binaryFormatter.Serialize(stream, obj); + return stream.Length; + } + } +#endregion // Cache Size Checking + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseCache.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseCache.cs.meta new file mode 100644 index 0000000..05d36ff --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseCache.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a506a1c3363e14e7d896c3f878ccf531 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseTranslator.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseTranslator.cs new file mode 100644 index 0000000..5417a44 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseTranslator.cs @@ -0,0 +1,346 @@ +using System; +using System.Collections.Generic; +using ModIO.Implementation.API; +using ModIO.Implementation.API.Requests; +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation +{ + /// + /// Used to convert raw objects received from web requests into curated objects for the user. + /// such as converting a ModObject into a ModProfile. + /// + internal static class ResponseTranslator + { + const int ModProfileNullId = 0; + const int ModProfileUnsetFilesize = -1; + static readonly DateTime UnixEpoch = + new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); + + public static TermsOfUse ConvertTermsObjectToTermsOfUse(TermsObject termsObject) + { + TermsOfUse terms = new TermsOfUse(); + + // Terms text + terms.termsOfUse = termsObject.plaintext; + + // Links + terms.links = new TermsOfUseLink[4]; + + terms.links[0] = new TermsOfUseLink(); + terms.links[0].name = termsObject.links.website.text; + terms.links[0].url = termsObject.links.website.url; + terms.links[0].required = termsObject.links.website.required; + + terms.links[1] = new TermsOfUseLink(); + terms.links[1].name = termsObject.links.terms.text; + terms.links[1].url = termsObject.links.terms.url; + terms.links[1].required = termsObject.links.terms.required; + + terms.links[2] = new TermsOfUseLink(); + terms.links[2].name = termsObject.links.privacy.text; + terms.links[2].url = termsObject.links.privacy.url; + terms.links[2].required = termsObject.links.privacy.required; + + terms.links[3] = new TermsOfUseLink(); + terms.links[3].name = termsObject.links.manage.text; + terms.links[3].url = termsObject.links.manage.url; + terms.links[3].required = termsObject.links.manage.required; + + // File hash + TermsHash hash = new TermsHash(); + hash.md5hash = IOUtil.GenerateMD5(terms.termsOfUse); + + return terms; + } + + public static TagCategory[] ConvertGameTagOptionsObjectToTagCategories( + GameTagOptionObject[] gameTags) + { + TagCategory[] categories = new TagCategory[gameTags.Length]; + + for(int i = 0; i < categories.Length; i++) + { + categories[i] = new TagCategory(); + categories[i].name = gameTags[i].name ?? ""; + Tag[] tags = new Tag[gameTags[i].tags.Length]; + for(int ii = 0; ii < tags.Length; ii++) + { + int total; + gameTags[i].tag_count_map.TryGetValue(gameTags[i].tags[ii], out total); + tags[ii].name = gameTags[i].tags[ii] ?? ""; + tags[ii].totalUses = total; + } + + categories[i].tags = tags; + categories[i].multiSelect = gameTags[i].type == "checkboxes"; + categories[i].hidden = gameTags[i].hidden; + categories[i].locked = gameTags[i].locked; + } + + return categories; + } + public static ModPage ConvertResponseSchemaToModPage(API.Requests.GetMods.ResponseSchema schema, SearchFilter filter) + { + ModPage page = new ModPage(); + if(schema == null) + { + return page; + } + + page.totalSearchResultsFound = schema.result_total; + + List mods = new List(); + int offset = filter.pageSize * filter.pageIndex; + // Only return the range of mods the user asked for (because we always take a minimum + // of 100 mods per request, but they may have only asked for 10. We cache the other 90) + for(int i = 0; i < filter.pageSize && i < schema.data.Length; i++) + { + mods.Add(ConvertModObjectToModProfile(schema.data[i])); + } + + ModProfile[] profiles = schema.data == null + ? Array.Empty() + : ConvertModObjectsToModProfile(schema.data); + + page.modProfiles = mods.ToArray(); + + // Add this response into the cache + ModPage pageForCache = new ModPage(); + pageForCache.totalSearchResultsFound = schema.result_total; + pageForCache.modProfiles = profiles; + ResponseCache.AddModsToCache(GetMods.UnpaginatedURL(), offset, pageForCache); + + return page; + } + + // The schema is identical to GetMods but left in here in case it changes in the future + public static ModPage ConvertResponseSchemaToModPage(PaginatedResponse schema, SearchFilter filter) + { + ModPage page = new ModPage(); + if(schema == null) + { + return page; + } + page.totalSearchResultsFound = schema.result_total; + + List mods = new List(); + int offset = filter.pageSize * filter.pageIndex; + int highestModIndex = offset + filter.pageSize; + // Only return the range of mods the user asked for (because we always take a minimum + // of 100 mods per request, but they may have only asked for 10. We cache the other 90) + for(int i = offset; i < highestModIndex && i < schema.data.Length; i++) + { + mods.Add(ConvertModObjectToModProfile(schema.data[i])); + } + + // LEGACY (Response Cache makes this no longer needed) + // ModProfile[] profiles = schema.data == null + // ? Array.Empty() + // : ConvertModObjectsToModProfile(schema.data); + + page.modProfiles = mods.ToArray(); + + return page; + } + + public static Rating[] ConvertModRatingsObjectToRatings(RatingObject[] ratingObjects) + { + Rating[] ratings = new Rating[ratingObjects.Length]; + int index = 0; + foreach(var ratingObj in ratingObjects) + { + ratings[index] = new Rating + { + modId = new ModId(ratingObj.mod_id), + rating = (ModRating)ratingObj.rating, + dateAdded = GetUTCDateTime(ratingObj.date_added) + }; + } + + return ratings; + } + + public static ModDependencies[] ConvertModDependenciesObjectToModDependencies(ModDependenciesObject[] modDependenciesObjects) + { + ModDependencies[] modDependencies = new ModDependencies[modDependenciesObjects.Length]; + int index = 0; + foreach(var modDepObj in modDependenciesObjects) + { + modDependencies[index] = new ModDependencies { + modId = new ModId(modDepObj.mod_id), + modName = modDepObj.mod_name, + dateAdded = GetUTCDateTime(modDepObj.date_added) + }; + index++; + } + return modDependencies; + } + + public static ModProfile[] ConvertModObjectsToModProfile(ModObject[] modObjects) + { + ModProfile[] profiles = new ModProfile[modObjects.Length]; + + for(int i = 0; i < profiles.Length; i++) + { + profiles[i] = ConvertModObjectToModProfile(modObjects[i]); + } + + return profiles; + } + + public static ModProfile ConvertModObjectToModProfile(ModObject modObject) + { + if(modObject.id == 0) + { + // This is not a valid mod object + Logger.Log(LogLevel.Error, "The method ConvertModObjectToModProfile(ModObject)" + + " was given an invalid ModObject. This is an internal" + + " error and should not happen."); + return default; + } + + ModProfile profile = new ModProfile(); + + profile.id = new ModId(modObject.id); + profile.name = modObject.name ?? ""; + profile.summary = modObject.summary ?? ""; + profile.homePageUrl = modObject.homepage_url; + profile.status = (ModStatus)modObject.status; + profile.visible = modObject.visible == 1; + profile.contentWarnings = (ContentWarnings)modObject.maturity_option; + profile.description = modObject.description_plaintext ?? ""; + profile.creator = ConvertUserObjectToUserProfile(modObject.submitted_by); + profile.metadata = modObject.metadata_blob; + profile.archiveFileSize = modObject.modfile.id == ModProfileNullId ? + ModProfileUnsetFilesize : modObject.modfile.filesize; + + // mod file details + profile.latestChangelog = modObject.modfile.changelog; + profile.latestVersion = modObject.modfile.version; + profile.latestDateFileAdded = GetUTCDateTime(modObject.modfile.date_added); + + // set time dates + profile.dateLive = GetUTCDateTime(modObject.date_live); + profile.dateAdded = GetUTCDateTime(modObject.date_added); + profile.dateUpdated = GetUTCDateTime(modObject.date_updated); + + // set tags + List tags = new List(); + foreach(ModTagObject tag in modObject.tags) + { + tags.Add(tag.name); + } + profile.tags = tags.ToArray(); + + // set metadata kvps + if(modObject.metadata_kvp != null) + { + profile.metadataKeyValuePairs = new KeyValuePair[modObject.metadata_kvp.Length]; + for(int i = 0; i < modObject.metadata_kvp.Length; i++) + { + profile.metadataKeyValuePairs[i] = new KeyValuePair( + modObject.metadata_kvp[i].metakey, + modObject.metadata_kvp[i].metavalue); + } + } + + // Create DownloadReferences + // Gallery + if(modObject.media.images != null) + { + profile.galleryImages_320x180 = + new DownloadReference[modObject.media.images.Length]; + profile.galleryImages_640x360 = + new DownloadReference[modObject.media.images.Length]; + profile.galleryImages_Original = + new DownloadReference[modObject.media.images.Length]; + for(int i = 0; i < modObject.media.images.Length; i++) + { + profile.galleryImages_320x180[i] = CreateDownloadReference( + modObject.media.images[i].filename, modObject.media.images[i].thumb_320x180, + profile.id); + profile.galleryImages_640x360[i] = CreateDownloadReference( + modObject.media.images[i].filename, modObject.media.images[i].thumb_320x180.Replace("320x180", "640x360"), + profile.id); + profile.galleryImages_Original[i] = + CreateDownloadReference(modObject.media.images[i].filename, + modObject.media.images[i].original, profile.id); + } + } + + // Logo + profile.logoImage_320x180 = CreateDownloadReference( + modObject.logo.filename, modObject.logo.thumb_320x180, profile.id); + profile.logoImage_640x360 = CreateDownloadReference( + modObject.logo.filename, modObject.logo.thumb_640x360, profile.id); + profile.logoImage_1280x720 = CreateDownloadReference( + modObject.logo.filename, modObject.logo.thumb_1280x720, profile.id); + profile.logoImage_Original = CreateDownloadReference( + modObject.logo.filename, modObject.logo.original, profile.id); + + // Avatar + profile.creatorAvatar_100x100 = + CreateDownloadReference(modObject.submitted_by.avatar.filename, + modObject.submitted_by.avatar.thumb_100x100, profile.id); + profile.creatorAvatar_50x50 = + CreateDownloadReference(modObject.submitted_by.avatar.filename, + modObject.submitted_by.avatar.thumb_50x50, profile.id); + profile.creatorAvatar_Original = + CreateDownloadReference(modObject.submitted_by.avatar.filename, + modObject.submitted_by.avatar.original, profile.id); + + // Mod Stats + profile.stats = new ModStats() { + modId = new ModId(modObject.stats.mod_id), + downloadsToday = modObject.stats.downloads_today, + downloadsTotal = modObject.stats.downloads_total, + ratingsTotal = modObject.stats.ratings_total, + ratingsNegative = modObject.stats.ratings_negative, + ratingsPositive = modObject.stats.ratings_positive, + ratingsDisplayText = modObject.stats.ratings_display_text, + ratingsPercentagePositive = modObject.stats.ratings_percentage_positive, + ratingsWeightedAggregate = modObject.stats.ratings_weighted_aggregate, + popularityRankPosition = modObject.stats.popularity_rank_position, + popularityRankTotalMods = modObject.stats.popularity_rank_total_mods, + subscriberTotal = modObject.stats.subscribers_total + }; + + return profile; + } + + static DownloadReference CreateDownloadReference(string filename, string url, ModId modId) + { + DownloadReference downloadReference = new DownloadReference(); + downloadReference.filename = filename; + downloadReference.url = url; + downloadReference.modId = modId; + return downloadReference; + } + + public static UserProfile ConvertUserObjectToUserProfile(UserObject userObject) + { + UserProfile user = new UserProfile(); + user.avatar_original = CreateDownloadReference(userObject.avatar.filename, + userObject.avatar.original, (ModId)0); + user.avatar_50x50 = CreateDownloadReference(userObject.avatar.filename, + userObject.avatar.thumb_50x50, (ModId)0); + user.avatar_100x100 = CreateDownloadReference( + userObject.avatar.filename, userObject.avatar.thumb_100x100, (ModId)0); + user.username = userObject.username; + user.userId = userObject.id; + user.portal_username = userObject.display_name_portal; + user.language = userObject.language; + user.timezone = userObject.timezone; + return user; + } + +#region Utility + public static DateTime GetUTCDateTime(long serverTimeStamp) + { + DateTime dateTime = UnixEpoch.AddSeconds(serverTimeStamp); + return dateTime; + } +#endregion // Utility + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseTranslator.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseTranslator.cs.meta new file mode 100644 index 0000000..b0ba544 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/ResponseTranslator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5197bd263d7fe4d80b3330b3546a6942 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/ServerConstants.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/ServerConstants.cs new file mode 100644 index 0000000..489578d --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/ServerConstants.cs @@ -0,0 +1,96 @@ +namespace ModIO.Implementation.API +{ + /// Holds the constants used by the server. + internal static class ServerConstants + { + public static class HeaderKeys + { + public const string LANGUAGE = "accept-language"; + public const string PLATFORM = "x-modio-platform"; + public const string PORTAL = "x-modio-portal"; + } + + /// Returns the portal header value for the given UserPortal. + public static string ConvertUserPortalToHeaderValue(UserPortal portal) + { + string headerValue = null; + + switch(portal) + { + case UserPortal.Apple: + { + headerValue = "apple"; + } + break; + + case UserPortal.Discord: + { + headerValue = "discord"; + } + break; + + case UserPortal.EpicGamesStore: + { + headerValue = "egs"; + } + break; + + case UserPortal.GOG: + { + headerValue = "gog"; + } + break; + + case UserPortal.Google: + { + headerValue = "google"; + } + break; + + case UserPortal.itchio: + { + headerValue = "itchio"; + } + break; + + case UserPortal.Nintendo: + { + headerValue = "nintendo"; + } + break; + + case UserPortal.Oculus: + { + headerValue = "oculus"; + } + break; + + case UserPortal.PlayStationNetwork: + { + headerValue = "psn"; + } + break; + + case UserPortal.Steam: + { + headerValue = "steam"; + } + break; + + case UserPortal.XboxLive: + { + headerValue = "xboxlive"; + } + break; + + default: + { + headerValue = "none"; + } + break; + } + + return headerValue; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/ServerConstants.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/ServerConstants.cs.meta new file mode 100644 index 0000000..0760c2d --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/ServerConstants.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 575ca6cbb477ad34a971239ae275e3b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/StreamUploadContainer.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/StreamUploadContainer.cs new file mode 100644 index 0000000..170e43a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/StreamUploadContainer.cs @@ -0,0 +1,17 @@ +using System.IO; + +namespace ModIO.Implementation.API +{ + class StreamUploadContainer + { + public string fieldName; + public string fileName; + public Stream data; + public StreamUploadContainer(string fieldName, string fileName, Stream data) + { + this.fieldName = fieldName; + this.fileName = fileName; + this.data = data; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/StreamUploadContainer.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/StreamUploadContainer.cs.meta new file mode 100644 index 0000000..191a6de --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/StreamUploadContainer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0a73a2b48ac1e2b4e87a06d13bf6349e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/UnityMainThreadDispatcher.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/UnityMainThreadDispatcher.cs new file mode 100644 index 0000000..b3f9053 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/UnityMainThreadDispatcher.cs @@ -0,0 +1,138 @@ + +/* +Copyright 2015 Pim de Witte All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using System; +using System.Threading.Tasks; + +namespace ModIO.Implementation.API +{ + /// Author: Pim de Witte (pimdewitte.com) and contributors, https://github.com/PimDeWitte/UnityMainThreadDispatcher + /// + /// A thread-safe class which holds a queue with actions to execute on the next Update() method. It can be used to make calls to the main thread for + /// things such as UI Manipulation in Unity. It was developed for use in combination with the Firebase Unity plugin, which uses separate threads for event handling + /// + public class UnityMainThreadDispatcher : MonoBehaviour + { + + private static readonly Queue _executionQueue = new Queue(); + + public void Update() + { + lock(_executionQueue) + { + while(_executionQueue.Count > 0) + { + _executionQueue.Dequeue().Invoke(); + } + } + } + + /// + /// Locks the queue and adds the IEnumerator to the queue + /// + /// IEnumerator function that will be executed from the main thread. + public void Enqueue(IEnumerator action) + { + lock(_executionQueue) + { + _executionQueue.Enqueue(() => + { + StartCoroutine(action); + }); + } + } + + /// + /// Locks the queue and adds the Action to the queue + /// + /// function that will be executed from the main thread. + public void Enqueue(Action action) + { + Enqueue(ActionWrapper(action)); + } + + /// + /// Locks the queue and adds the Action to the queue, returning a Task which is completed when the action completes + /// + /// function that will be executed from the main thread. + /// A Task that can be awaited until the action completes + public Task EnqueueAsync(Action action) + { + var tcs = new TaskCompletionSource(); + + void WrappedAction() + { + try + { + action(); + tcs.TrySetResult(true); + } + catch(Exception ex) + { + tcs.TrySetException(ex); + } + } + + Enqueue(ActionWrapper(WrappedAction)); + return tcs.Task; + } + + + IEnumerator ActionWrapper(Action a) + { + a(); + yield return null; + } + + + private static UnityMainThreadDispatcher _instance = null; + + public static bool Exists() + { + return _instance != null; + } + + public static UnityMainThreadDispatcher Instance() + { + if(!Exists()) + { + throw new Exception("UnityMainThreadDispatcher could not find the UnityMainThreadDispatcher object. Please ensure you have added the MainThreadExecutor Prefab to your scene."); + } + return _instance; + } + + + void Awake() + { + if(_instance == null) + { + _instance = this; + DontDestroyOnLoad(this.gameObject); + } + } + + void OnDestroy() + { + _instance = null; + } + + + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/UnityMainThreadDispatcher.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/UnityMainThreadDispatcher.cs.meta new file mode 100644 index 0000000..843ef6b --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/UnityMainThreadDispatcher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8ff1690309412f049932e4eb8f2f227b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestConfig.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestConfig.cs new file mode 100644 index 0000000..dd96457 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestConfig.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using System.IO; + +namespace ModIO.Implementation.API +{ + internal class WebRequestConfig + { + public string Url; + + public string RequestMethodType; + + public bool ShouldRequestTimeout = true; + + public List> StringKvpData = new List>(); + + public Stream DownloadStream; + public List BinaryData = new List(); + public Dictionary HeaderData = new Dictionary(); + + public bool HasBinaryData => BinaryData.Count > 0; + public bool HasStringData => StringKvpData.Count > 0; + + public bool IsUpload => HasBinaryData; + + public void AddField(string key, TInput data) + { + if(data == null) + { + return; + } + + StringKvpData.Add(new KeyValuePair(key, data.ToString())); + } + + public void AddField(string fieldName, string fileName, byte[] data) + => BinaryData.Add(new BinaryDataContainer(fieldName, fileName, data)); + + public void AddHeader(string key, string data) => HeaderData.Add(key, data); + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestConfig.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestConfig.cs.meta new file mode 100644 index 0000000..0eebf11 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 903a44dab99705540a3f343378f90506 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestManager.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestManager.cs new file mode 100644 index 0000000..7103044 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestManager.cs @@ -0,0 +1,105 @@ +using System.Threading.Tasks; +using System; +using System.Collections.Generic; +using System.IO; +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation.API +{ + /// + /// This class keeps track of all ongoing web requests so that a shutdown call will properly + /// abort and cleanup active requests. + /// All requests should be generated and run from this script. + /// + static class WebRequestManager + { + static Dictionary liveTasks = new Dictionary(); + static HashSet onGoingRequests = new HashSet(); + + internal static event Action ShutdownEvent = () => { }; + + public static async Task Shutdown() + { + // Subscribe WebRequests here to abort when the event is called + ShutdownEvent.Invoke(); + + await Task.WhenAll(onGoingRequests); + + ShutdownEvent = null; + ShutdownEvent = () => { }; + } + + public static RequestHandle Download(string url, Stream downloadTo, ProgressHandle progressHandle) + { + var handle = WebRequestRunner.Download(url, downloadTo, progressHandle); + onGoingRequests.Add(handle.task); + RemoveTaskFromListWhenComplete(handle.task); + return handle; + } + + static async void RemoveTaskFromListWhenComplete(Task task) + { + await task; + if(onGoingRequests.Contains(task)) + { + onGoingRequests.Remove(task); + } + } + + public static async Task> Request(WebRequestConfig config, ProgressHandle progressHandle = null) + { + Task> task = null; + + if(!PreexistingGetRequest(config, out task)) + { + task = NewRequest(config, progressHandle); + onGoingRequests.Add(task); + } + + if (config.RequestMethodType != "GET") + { + liveTasks.Add(config.Url, task); + await task; + liveTasks.Remove(config.Url); + } + else + { + await task; + } + if(onGoingRequests.Contains(task)) + { + onGoingRequests.Remove(task); + } + + return task.Result; + } + + //Some requests do not need an answer outside of "success". + public static async Task Request(WebRequestConfig config) + { + //we use int? to signify that we don't care about the result + //a webrequest is not capabable of returning this value, so it's a + //suitable placeholder + var task = await Request(config); + return task.result; + } + + static Task> NewRequest(WebRequestConfig config, ProgressHandle progressHandle = null) + => WebRequestRunner.Execute(config, null, progressHandle); + + static bool PreexistingGetRequest(WebRequestConfig config, out Task> task) + { + task = null; + if(config.RequestMethodType == "GET") + { + return false; + } + if(liveTasks.TryGetValue(config.Url, out var activeTask)) + { + task = (Task>)activeTask; + return true; + } + return false; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestManager.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestManager.cs.meta new file mode 100644 index 0000000..a581dbf --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9fed281c821ac244a8cef07e8606bc75 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestRunner.cs b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestRunner.cs new file mode 100644 index 0000000..13840e5 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestRunner.cs @@ -0,0 +1,694 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using ModIO.Implementation.API.Objects; +using ModIO.Implementation.Platform; +using Newtonsoft.Json; +using Debug = UnityEngine.Debug; + +namespace ModIO.Implementation.API +{ + internal static class WebRequestRunner + { + +#region Main Request Handling + public static RequestHandle Download(string url, Stream downloadTo, ProgressHandle progressHandle) + { + RequestHandle handle = new RequestHandle(); + var task = RunDownload(url, downloadTo, handle, progressHandle); + handle.task = task; + + return handle; + } + + static async Task RunDownload(string url, Stream downloadTo, RequestHandle handle, ProgressHandle progressHandle) + { + Logger.Log(LogLevel.Verbose, $"DOWNLOADING [{url}]"); + + Result result = ResultBuilder.Success; + + // Build request + WebRequest request = null; + WebResponse response = default; + + // Setup the handle + handle.progress = progressHandle; + + try + { + request = BuildWebRequestForDownload(url); + handle.cancel = request.Abort; + + response = await request.GetDownloadResponse(downloadTo, progressHandle); + } + catch(WebException e) + { + response = e.Response; + + if(e.Status == WebExceptionStatus.RequestCanceled) + { + // request?.LogRequestBeingAborted(config); + result = ResultBuilder.Create(ResultCode.Internal_OperationCancelled); + } + } + catch(Exception e) + { + if(ModIOUnityImplementation.shuttingDown) + { + result = ResultBuilder.Create(ResultCode.Internal_OperationCancelled); + Logger.Log(LogLevel.Error, $"SHUTDOWN EXCEPTION" + + $"\n{e.Message}\n{e.StackTrace}"); + } + else + { + result = ResultBuilder.Unknown; + Logger.Log(LogLevel.Error, $"Unhandled exception when downloading" + + $"\n{e.Message}\n{e.StackTrace}"); + } + } + + if (request != null) + { + // unsubscribe the web request from the shutdown event + WebRequestManager.ShutdownEvent -= request.Abort; + + } + + // Process response + if (result.Succeeded()) + { + result = await ProcessDownloadResponse(request, response, url); + } + else + { + Logger.Log(LogLevel.Verbose, $"DOWNLOAD FAILED [{url}]"); + } + + if (!result.Succeeded()) + { + if(progressHandle != null) + { + progressHandle.Failed = true; + } + } + + if(progressHandle != null) + { + progressHandle.Completed = true; + } + return result; + } + + public static RequestHandle> Upload(WebRequestConfig config, ProgressHandle progressHandle) + { + RequestHandle> handle = new RequestHandle>(); + var task = Execute(config, handle, progressHandle); + handle.task = task; + + return handle; + } + + public static async Task> Execute(WebRequestConfig config, RequestHandle> handle, ProgressHandle progressHandle) + { + ResultAnd result = default; + WebResponse response = null; + WebRequest request = null; + + if(handle != null) + { + handle.progress = progressHandle; + } + + try + { + request = config.IsUpload + ? BuildWebRequestForUpload(config, progressHandle) + : await BuildWebRequest(config, progressHandle); + + request.Timeout = config.ShouldRequestTimeout ? 30000 : -1; + + if(handle != null) + { + handle.cancel = request.Abort; + } + + request.LogRequestBeingSent(config); + + response = config.IsUpload + ? await request.GetUploadResponse(config, progressHandle) + : await request.GetResponseAsync(); + } + catch(Exception e) + { + if(request != null) + { + // this event is added in BuildWebRequest(), we remove it here + WebRequestManager.ShutdownEvent -= request.Abort; + } + if(e is WebException exception) + { + response = exception.Response; + + if (exception.Status == WebExceptionStatus.RequestCanceled) + { + request?.LogRequestBeingAborted(config); + return ResultAnd.Create(ResultCode.Internal_OperationCancelled, default(TResult)); + } + } + else + { + response = default; + } + } + + if (progressHandle != null) + { + progressHandle.Progress = 1f; + progressHandle.Completed = true; + } + + try + { + if(ModIOUnityImplementation.shuttingDown) + { + request?.LogRequestBeingAborted(config); + result = ResultAnd.Create(ResultCode.Internal_OperationCancelled, default(TResult)); + } + else + { + result = await ProcessResponse(request, response, config); + } + } + catch(Exception e) + { + if(e is WebException exception) + { + exception.Response?.Close(); + } + Logger.Log(LogLevel.Error, $"Unknown exception caught trying to process" + + $" web request response.\nException: {e.Message}\n" + + $"Stacktrace: {e.StackTrace}"); + result = ResultAnd.Create(ResultCode.Unknown, default(TResult)); + } + + if(request != null) + { + // this event is added in BuildWebRequest(), we remove it here + WebRequestManager.ShutdownEvent -= request.Abort; + } + + if(progressHandle != null) + { + progressHandle.Failed = !result.result.Succeeded(); + } + + return result; + } +#endregion + + +#region Creating WebRequests + static void LogRequestBeingSent(this WebRequest request, WebRequestConfig config) + { + string log = $"\n{config.Url}" + + $"\nMETHOD: {config.RequestMethodType}" + + $"\n{GenerateLogForRequestMessage(request)}" + + $"\n{GenerateLogForWebRequestConfig(config)}"; + Logger.Log(LogLevel.Verbose, $"SENDING{log}"); + } + + static void LogRequestBeingAborted(this WebRequest request, WebRequestConfig config) + { + string log = $"\n{config.Url}" + + $"\nMETHOD: {config.RequestMethodType}" + + $"\n{GenerateLogForRequestMessage(request)}" + + $"\n{GenerateLogForWebRequestConfig(config)}"; + Logger.Log(LogLevel.Verbose, $"ABORTED{log}"); + } + + static async Task ProcessDownloadResponse(WebRequest request, WebResponse response, string url) + { + Result finalResult = ResultBuilder.Unknown; + + int statusCode = response == null ? 0 : (int)((HttpWebResponse)response).StatusCode; + + string body = "none"; + + if (response != null) + { + using(Stream stream = response.GetResponseStream()) + using(StreamReader reader = new StreamReader(stream)) + { + body = await reader.ReadToEndAsync(); + } + } + + string completeRequestLog = $"{GenerateLogForStatusCode(statusCode)}" + + $"\n{url}" + + $"\nMETHOD: GET" + + $"\n{GenerateLogForRequestMessage(request)}" + + $"\n{GenerateLogForResponseMessage(response)}" + + $"\n\nRAW RESPONSE: {body}"; + + if(IsSuccessStatusCode(statusCode)) + { + finalResult = ResultBuilder.Success; + Logger.Log(LogLevel.Verbose, $"DOWNLOAD SUCCEEDED {completeRequestLog}"); + } + else + { + finalResult = await HttpStatusCodeError(body, completeRequestLog, statusCode); + Logger.Log(LogLevel.Verbose, $"DOWNLOAD FAILED [{completeRequestLog}]"); + } + + response?.Close(); + return finalResult; + } + + static async Task> ProcessResponse(WebRequest request, WebResponse response, WebRequestConfig config) + { + ResultAnd finalResult = default; + + int statusCode = response == null ? 0 : (int)((HttpWebResponse)response).StatusCode; + + string body = "none"; + + if (response != null) + { + using(Stream stream = response.GetResponseStream()) + using(StreamReader reader = new StreamReader(stream)) + { + body = await reader.ReadToEndAsync(); + } + } + + string completeRequestLog = $"{GenerateLogForStatusCode(statusCode)}" + + $"\n{config.Url}" + + $"\nMETHOD: {config.RequestMethodType}" + + $"\n{GenerateLogForRequestMessage(request)}" + + $"\n{GenerateLogForWebRequestConfig(config)}" + + $"\n{GenerateLogForResponseMessage(response)}" + + $"\n\nRAW RESPONSE: {body}"; + + if(IsSuccessStatusCode(statusCode)) + { + Logger.Log(LogLevel.Verbose, $"SUCCEEDED {completeRequestLog}"); + + finalResult = await FormatResult(body); + } + else + { + finalResult = ResultAnd.Create(await HttpStatusCodeError(body, completeRequestLog, statusCode), default(TResult)); + } + + response?.Close(); + return finalResult; + } + + static bool IsSuccessStatusCode(int code) => code >= 200 && code < 300; + + static async Task GetDownloadResponse(this WebRequest request, Stream downloadStream, ProgressHandle progressHandle) + { + // Send request + WebResponse response = await request.GetResponseAsync(); + + // Read response + using(Stream responseStream = response.GetResponseStream()) + { + // Get the total size of the file to download + long totalSize = response.ContentLength; + + // Create a buffer to read the response stream in chunks + byte[] buffer = new byte[4096]; + + // Initialize progress tracking + long bytesDownloaded = 0; + long bytesDownloadedForThisSample = 0; + int bytesRead = 0; + Stopwatch stopwatch = new Stopwatch(); + stopwatch.Start(); + + // Read the response stream in chunks and write to file + while((bytesRead = await responseStream.ReadAsync(buffer, 0, buffer.Length)) > 0) + { + await downloadStream.WriteAsync(buffer, 0, bytesRead); + bytesDownloaded += bytesRead; + + if(progressHandle != null) + { + progressHandle.Progress = (float)((decimal)bytesDownloaded / totalSize); + + bytesDownloadedForThisSample += bytesRead; + if(stopwatch.ElapsedMilliseconds >= 1000) + { + progressHandle.BytesPerSecond = bytesDownloadedForThisSample; + bytesDownloadedForThisSample = 0; + stopwatch.Restart(); + } + } + } + + stopwatch.Stop(); + + } + return response; + } + + static async Task GetUploadResponse(this WebRequest request, WebRequestConfig config, ProgressHandle progressHandle) + { + // Send request + await request.SetupMultipartRequest(config, progressHandle); + + WebResponse response = await request.GetResponseAsync(); + + return response; + } + + static async Task BuildWebRequest(WebRequestConfig config, ProgressHandle progressHandle) + { + // Add API key or Access token + if (UserData.instance.IsOAuthTokenValid()) + { + config.AddHeader("Authorization", $"Bearer {UserData.instance.oAuthToken}"); + } + // Add API key if no access token + else + { + config.Url += $"&api_key={Settings.server.gameKey}"; + } + + // Create request + HttpWebRequest request = WebRequest.Create(config.Url) as HttpWebRequest; + request.Method = config.RequestMethodType; + request.SetModioHeaders(); + request.SetConfigHeaders(config); + + // Add request to shutdown method + WebRequestManager.ShutdownEvent += request.Abort; + + // URL ENCODED REQUEST + request.ContentType = "application/x-www-form-urlencoded"; + + if(config.HasStringData) + { + await request.SetupUrlEncodedRequest(config); + } + + return request; + } + + static WebRequest BuildWebRequestForUpload(WebRequestConfig config, ProgressHandle progressHandle) + { + // Create request + HttpWebRequest request = WebRequest.Create(config.Url) as HttpWebRequest; + request.Method = config.RequestMethodType; + request.SetModioHeaders(); + request.SetConfigHeaders(config); + + // Add API key or Access token + // TODO if we dont have an auth token we should abort early, all uploads require an auth token + if (UserData.instance.IsOAuthTokenValid()) + { + request.Headers.Add("Authorization", $"Bearer {UserData.instance.oAuthToken}"); + } + + // Add request to shutdown method + WebRequestManager.ShutdownEvent += request.Abort; + + return request; + } + + static WebRequest BuildWebRequestForDownload(string url) + { + + // Create request + HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; + request.Method = "GET"; + request.SetModioHeaders(); + request.Timeout = -1; + + // Add API key or Access token + if (UserData.instance.IsOAuthTokenValid()) + { + request.Headers.Add("Authorization", $"Bearer {UserData.instance.oAuthToken}"); + } + + // Add request to shutdown method + WebRequestManager.ShutdownEvent += request.Abort; + + return request; + } + + static void SetModioHeaders(this WebRequest webRequest) + { + // Set default headers for all requests + HttpWebRequest request = (HttpWebRequest)webRequest; + request.Accept = "application/json"; + request.UserAgent = ModIOVersion.Current.ToHeaderString(); + // Cloudflare reuses open TCP connections for up to 15 minutes (900 seconds) after the last HTTP request + request.Connection = "true"; // is set to true by default + request.Headers.Add(ServerConstants.HeaderKeys.LANGUAGE, Settings.server.languageCode ?? "en"); + request.Headers.Add(ServerConstants.HeaderKeys.PLATFORM, PlatformConfiguration.RESTAPI_HEADER); + request.Headers.Add(ServerConstants.HeaderKeys.PORTAL, ServerConstants.ConvertUserPortalToHeaderValue(Settings.build.userPortal)); + } + + static void SetConfigHeaders(this WebRequest request, WebRequestConfig config) + { + foreach(var header in config.HeaderData) + { + request.Headers.Add(header.Key, header.Value); + } + } + + static async Task SetupUrlEncodedRequest(this WebRequest request, WebRequestConfig config) + { + string kvpData = ""; + foreach(var kvp in config.StringKvpData) + { + kvpData += $"{Uri.EscapeDataString(kvp.Key)}={Uri.EscapeDataString(kvp.Value)}&"; + } + kvpData = kvpData.Trim('&'); + + using (Stream requestStream = request.GetRequestStream()) + { + using(StreamWriter writer = new StreamWriter(requestStream)) + { + await writer.WriteAsync(kvpData); + } + } + } + + static async Task SetupMultipartRequest(this WebRequest request, WebRequestConfig config, ProgressHandle progressHandle) + { + string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x"); + + request.ContentType = "multipart/form-data; boundary=" + boundary; + + MultipartFormDataContent multipartContent = new MultipartFormDataContent(boundary); + foreach(var binary in config.BinaryData) + { + ByteArrayContent bytes = new ByteArrayContent(binary.data); + multipartContent.Add(bytes, binary.key, binary.fileName); + } + foreach(var kvp in config.StringKvpData) + { + StringContent stringField = new StringContent(kvp.Value); + multipartContent.Add(stringField, kvp.Key); + } + + using (Stream requestStream = request.GetRequestStream()) + { + using (Stream content = await multipartContent.ReadAsStreamAsync()) + { + int bytesRead; + long totalBytesRead = 0; + long bytesUploadedForThisSample = 0; + Stopwatch stopwatch = new Stopwatch(); + stopwatch.Start(); + + byte[] buffer = new byte[4096]; + + while((bytesRead = await content.ReadAsync(buffer, 0, buffer.Length)) > 0) + { + await requestStream.WriteAsync(buffer, 0, bytesRead); + totalBytesRead += bytesRead; + if(progressHandle != null) + { + // We make the length 1% longer so it doesnt get to 100% while we wait for the server response + progressHandle.Progress = (float)(totalBytesRead / (content.Length * (decimal)1.01f)); + + bytesUploadedForThisSample += bytesRead; + if(stopwatch.ElapsedMilliseconds >= 1000) + { + progressHandle.BytesPerSecond = bytesUploadedForThisSample; + bytesUploadedForThisSample = 0; + stopwatch.Restart(); + } + } + } + stopwatch.Stop(); + } + } + } +#endregion + +#region Processing Response Body + + public async static Task> FormatResult(string response) + { + //int? is used as a nullable type to denote that we are ignoring type in the response + //ie - some commands are sent without expect any useful response aside from the response code itself + if(typeof(T) == typeof(int?)) + { + //OnWebrequestResponse + return ResultAnd.Create(ResultCode.Success, default(T)); + } + + // If the response is empty it was likely 204: NoContent + if(string.IsNullOrEmpty(response)) + { + return ResultAnd.Create(ResultBuilder.Success, default(T)); + } + + try + { + T deserialized = await Task.Run(()=> JsonConvert.DeserializeObject(response)); + return ResultAnd.Create(ResultBuilder.Success, deserialized); + } + catch(Exception e) + { + Logger.Log(LogLevel.Error, + $"UNRECOGNISED RESPONSE" + + $"\nFailed to deserialize a response from the mod.io server.\nThe data" + + $" may have been corrupted or isnt a valid Json format.\n\n[JsonUtility:" + + $" {e.Message}] - {e.InnerException} - Raw Response:\n{response}"); + + return ResultAnd.Create( + ResultBuilder.Create(ResultCode.API_FailedToDeserializeResponse), default(T)); + } + } + + static bool IsJson(string input) + { + if(input == null) + return false; + + input = input.Trim(); + return input.StartsWith("{") && input.EndsWith("}") + || input.StartsWith("[") && input.EndsWith("]"); + } +#endregion + +#region Error Handling + static async Task HttpStatusCodeError(string response, string requestLog, int status) + { + var result = await FormatResult(response); + + Logger.Log(LogLevel.Error, + $"HTTP ERROR [{status} {(HttpStatusCode)status}]" + + $"\n Error ref [{result.value.error.code}] {result.value.error.error_ref} - {result.value.error.message}\n\n{requestLog}"); + + if(ResultCode.IsInvalidSession(result.value)) + { + UserData.instance?.SetOAuthTokenAsRejected(); + ResponseCache.ClearCache(); + + return ResultBuilder.Create(ResultCode.User_InvalidToken, + (uint)result.value.error.error_ref); + } + + return ResultBuilder.Create(ResultCode.API_FailedToCompleteRequest, + (uint)result.value.error.error_ref); + + } + + static ResultAnd TimeOutError(WebRequestConfig requestConfig, WebException ex) + { + Logger.Log(LogLevel.Error, $"REQUEST TIMED OUT\nDid not receive a request within {30000} milliseconds. " + + $"Check your Internet connection and/or Firewall settings.\n URL: {requestConfig.Url}\n" + + $"ERROR: {ex.ToString()}"); + + var result = ResultBuilder.Create(ResultCode.API_FailedToConnect); + return ResultAnd.Create(result, default(TResult)); + } + +#endregion + +#region Logging formatting + static string GenerateLogForWebRequestConfig(WebRequestConfig config) + { + string log = "\nFORM BODY\n------------------------\n"; + if(config.StringKvpData.Count > 0) + { + log += "String Kvps\n"; + foreach(var kvp in config.StringKvpData) + { + log += $"{kvp.Key}: {kvp.Value}\n"; + } + } + else + { + log += "--No String Data\n"; + } + if(config.BinaryData.Count > 0) + { + log += "Binary files\n"; + foreach(var binData in config.BinaryData) + { + log += $"{binData.key}: {binData.data.Length} bytes\n"; + } + } + else + { + log += "--No Binary Data\n"; + } + return log; + } + + static string GenerateLogForRequestMessage(WebRequest request) + { + if(request == null) + { + return "\n\n------------------------ \nWebRequest is null"; + } + string log = "\n\n------------------------"; + string headers = $"\nREQUEST HEADERS"; + foreach(var key in request.Headers.AllKeys) + { + if(key == "Authorization") + { + headers += $"\nAuthorization: [OAUTHTOKEN]"; + continue; + } + headers += $"\n{key}: {request.Headers[key]}"; + } + log += headers; + return log; + } + + static string GenerateLogForResponseMessage(WebResponse response) + { + if(response == null) + { + return "\n\n------------------------\n WebResponse is null"; + } + + string log = "\n\n------------------------"; + string headers = $"\nRESPONSE HEADERS"; + foreach(var key in response.Headers.AllKeys) + { + headers += $"\n{key}: {response.Headers[key]}"; + } + log += headers; + return log; + } + + static string GenerateLogForStatusCode(int code) => $"[Http: {code} {(HttpStatusCode)code}]"; + + #endregion + + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestRunner.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestRunner.cs.meta new file mode 100644 index 0000000..aca48f5 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Classes/WebRequestRunner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 298c69c0aca5b444aa3ecaa1d8a63f7c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Enums.meta b/Runtime/ModIO.Implementation/Implementation.API/Enums.meta new file mode 100644 index 0000000..181fc2e --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Enums.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 600df4871a46a4876bedd13af991465b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Enums/ResponseCodeType.cs b/Runtime/ModIO.Implementation/Implementation.API/Enums/ResponseCodeType.cs new file mode 100644 index 0000000..ceeed9c --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Enums/ResponseCodeType.cs @@ -0,0 +1,12 @@ +namespace ModIO.Implementation.API +{ + internal enum ResponseCodeType + { + ProcessingError, + NetworkError, + HttpError, + Succeeded, + AbortRequested, + TimedOut, + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Enums/ResponseCodeType.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Enums/ResponseCodeType.cs.meta new file mode 100644 index 0000000..9c82a61 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Enums/ResponseCodeType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eb807be8b18fb4cf492a83a2979bc6ea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestMethodType.cs b/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestMethodType.cs new file mode 100644 index 0000000..cd4f8f3 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestMethodType.cs @@ -0,0 +1,10 @@ +namespace ModIO.Implementation.API +{ + internal enum WebRequestMethodType + { + GET, + POST, + PUT, + DELETE + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestMethodType.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestMethodType.cs.meta new file mode 100644 index 0000000..d63c7cd --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestMethodType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 306dcc99a63804738a8c22f9ab53f26d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestResponseType.cs b/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestResponseType.cs new file mode 100644 index 0000000..6d2a522 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestResponseType.cs @@ -0,0 +1,9 @@ +namespace ModIO.Implementation.API +{ + internal enum WebRequestResponseType + { + Text = 0, + Texture, + File + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestResponseType.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestResponseType.cs.meta new file mode 100644 index 0000000..fabf657 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Enums/WebRequestResponseType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: df874e1a56b48494997347c0b9ef3fd9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects.meta new file mode 100644 index 0000000..a24af6a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec908c0bc03e14e189da925cd0677298 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AccessTokenObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AccessTokenObject.cs new file mode 100644 index 0000000..efd0706 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AccessTokenObject.cs @@ -0,0 +1,10 @@ +namespace ModIO +{ + [System.Serializable] + internal struct AccessTokenObject + { + public long code; + public string access_token; + public long date_expires; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AccessTokenObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AccessTokenObject.cs.meta new file mode 100644 index 0000000..01d87e0 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AccessTokenObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6eb0179797d08425ba1be68572f0b56c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AotTypeEnforcer.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AotTypeEnforcer.cs new file mode 100644 index 0000000..f7a80f6 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AotTypeEnforcer.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using ModIO.Implementation.API.Objects; +using Newtonsoft.Json.Utilities; +using UnityEngine; + +namespace ModIO.Implementation.API +{ + /// + /// You do not need to use this class. This is used to ensure specific types in API request + /// objects and anything we serialize for the registry gets AOT code generated when using IL2CPP + /// compilation. + /// + internal class AotTypeEnforcer : MonoBehaviour + { + public void Awake() + { + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList>(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + AotHelper.EnsureList(); + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AotTypeEnforcer.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AotTypeEnforcer.cs.meta new file mode 100644 index 0000000..f3737df --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AotTypeEnforcer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 985e20aaf9d227243a8464be7df81a1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AvatarObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AvatarObject.cs new file mode 100644 index 0000000..5076d6e --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AvatarObject.cs @@ -0,0 +1,11 @@ +namespace ModIO +{ + [System.Serializable] + internal struct AvatarObject + { + public string filename; + public string original; + public string thumb_50x50; + public string thumb_100x100; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AvatarObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AvatarObject.cs.meta new file mode 100644 index 0000000..888e97f --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/AvatarObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0e1e89560e9c847298d83d0d43b17d86 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/DownloadObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/DownloadObject.cs new file mode 100644 index 0000000..8c81b22 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/DownloadObject.cs @@ -0,0 +1,10 @@ + +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct DownloadObject + { + public string binary_url; + public long date_expires; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/DownloadObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/DownloadObject.cs.meta new file mode 100644 index 0000000..0bac8d6 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/DownloadObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 88ebe98b75c024944a431ff6f0bdd69c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/Error.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/Error.cs new file mode 100644 index 0000000..24aa224 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/Error.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; + +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + public struct Error + { + public long code; + public long error_ref; + public string message; + + public Dictionary errors; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/Error.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/Error.cs.meta new file mode 100644 index 0000000..3f813cf --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/Error.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6ca7c37ec0b09c14cb6c67dd833d2cee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ErrorObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ErrorObject.cs new file mode 100644 index 0000000..7038736 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ErrorObject.cs @@ -0,0 +1,8 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + public struct ErrorObject + { + public Error error; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ErrorObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ErrorObject.cs.meta new file mode 100644 index 0000000..e50f9e1 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ErrorObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 15d424b6d382f4d3687a9d194f10b667 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/FilehashObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/FilehashObject.cs new file mode 100644 index 0000000..3e7a055 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/FilehashObject.cs @@ -0,0 +1,9 @@ + +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct FilehashObject + { + public string md5; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/FilehashObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/FilehashObject.cs.meta new file mode 100644 index 0000000..8dbe0af --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/FilehashObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca93f6e426ec34dfb8bf538644b435c9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/GameTagOptionObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/GameTagOptionObject.cs new file mode 100644 index 0000000..ee5c195 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/GameTagOptionObject.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct GameTagOptionObject + { + public string name; + public string type; + public string[] tags; + public Dictionary tag_count_map; + public bool hidden; + public bool locked; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/GameTagOptionObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/GameTagOptionObject.cs.meta new file mode 100644 index 0000000..d92a7ac --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/GameTagOptionObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9251f01483f28c943a825f26eebdce5e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ImageObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ImageObject.cs new file mode 100644 index 0000000..2341b30 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ImageObject.cs @@ -0,0 +1,10 @@ +namespace ModIO +{ + [System.Serializable] + internal struct ImageObject + { + public string filename; + public string original; + public string thumb_320x180; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ImageObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ImageObject.cs.meta new file mode 100644 index 0000000..5c3e529 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ImageObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bf86abbc0a58240babf2b0bb32a6e021 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/LogoObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/LogoObject.cs new file mode 100644 index 0000000..e404854 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/LogoObject.cs @@ -0,0 +1,12 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct LogoObject + { + public string filename; + public string original; + public string thumb_320x180; + public string thumb_640x360; + public string thumb_1280x720; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/LogoObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/LogoObject.cs.meta new file mode 100644 index 0000000..0df2197 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/LogoObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2cb5158a36a3545f48264ac161ec7aba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MessageObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MessageObject.cs new file mode 100644 index 0000000..b43de0e --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MessageObject.cs @@ -0,0 +1,9 @@ + +namespace ModIO.Implementation.API.Objects +{ + internal struct MessageObject + { + public long code; + public string message; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MessageObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MessageObject.cs.meta new file mode 100644 index 0000000..4943e9b --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MessageObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 92d7f581436b14fde8e5f6376ef39f62 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MetadataKVPObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MetadataKVPObject.cs new file mode 100644 index 0000000..e33e581 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MetadataKVPObject.cs @@ -0,0 +1,9 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct MetadataKVPObject + { + public string metakey; + public string metavalue; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MetadataKVPObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MetadataKVPObject.cs.meta new file mode 100644 index 0000000..490f353 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/MetadataKVPObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a0400b16870ad477d985ea1133a37e96 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModEventObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModEventObject.cs new file mode 100644 index 0000000..fcea84f --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModEventObject.cs @@ -0,0 +1,13 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct ModEventObject + { + public long id; + public long game_id; + public long mod_id; + public long user_id; + public long date_added; + public string event_type; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModEventObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModEventObject.cs.meta new file mode 100644 index 0000000..1eb6bac --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModEventObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8dae590b6485f444d82328a2fc2bd35a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModMediaObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModMediaObject.cs new file mode 100644 index 0000000..7f15adb --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModMediaObject.cs @@ -0,0 +1,10 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct ModMediaObject + { + public string[] youtube; + public string[] sketchfab; + public ImageObject[] images; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModMediaObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModMediaObject.cs.meta new file mode 100644 index 0000000..0359d45 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModMediaObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c802e34e665f54cd28606d6adcb37da4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModObject.cs new file mode 100644 index 0000000..1285a09 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModObject.cs @@ -0,0 +1,31 @@ + +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct ModObject + { + public long id; + public long game_id; + public int status; + public int visible; + public UserObject submitted_by; + public long date_added; + public long date_updated; + public long date_live; + public int maturity_option; + public LogoObject logo; + public string homepage_url; + public string name; + public string name_id; + public string summary; + public string description; + public string description_plaintext; + public string metadata_blob; + public string profile_url; + public ModMediaObject media; + public ModfileObject modfile; + public ModStatsObject stats; + public MetadataKVPObject[] metadata_kvp; + public ModTagObject[] tags; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModObject.cs.meta new file mode 100644 index 0000000..6e44270 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3a2fc2856a8d74df9a4938b7f512fb72 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModStatsObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModStatsObject.cs new file mode 100644 index 0000000..3d481a1 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModStatsObject.cs @@ -0,0 +1,20 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct ModStatsObject + { + public long mod_id; + public long popularity_rank_position; + public long popularity_rank_total_mods; + public long downloads_today; + public long downloads_total; + public long subscribers_total; + public long ratings_total; + public long ratings_positive; + public long ratings_negative; + public long ratings_percentage_positive; + public float ratings_weighted_aggregate; + public string ratings_display_text; + public long date_expires; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModStatsObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModStatsObject.cs.meta new file mode 100644 index 0000000..62b2108 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModStatsObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 466e8d16f1a22491ebc9b048bff88592 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModTagObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModTagObject.cs new file mode 100644 index 0000000..67fdc3a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModTagObject.cs @@ -0,0 +1,9 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct ModTagObject + { + public string name; + public string date_added; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModTagObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModTagObject.cs.meta new file mode 100644 index 0000000..487521b --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModTagObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: baf60ade1a8f24374a9a8df096529062 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModfileObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModfileObject.cs new file mode 100644 index 0000000..e44bb94 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModfileObject.cs @@ -0,0 +1,21 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct ModfileObject + { + public long id; + public long mod_id; + public long date_added; + public long date_scanned; + public int virus_status; + public int virus_positive; + public string virustotal_hash; + public long filesize; + public FilehashObject filehash; + public string filename; + public string version; + public string changelog; + public string metadata_blob; + public DownloadObject download; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModfileObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModfileObject.cs.meta new file mode 100644 index 0000000..b44de2d --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/ModfileObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4323e948d6b4746fb891578a52fe8721 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonObject.cs new file mode 100644 index 0000000..fe4d282 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonObject.cs @@ -0,0 +1,9 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct TermsButtonObject + { + public TermsButtonOptionObject agree; + public TermsButtonOptionObject disagree; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonObject.cs.meta new file mode 100644 index 0000000..529dd34 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cf2c157d5b2714e55b9a46c7844ba8cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonOptionObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonOptionObject.cs new file mode 100644 index 0000000..71cb69c --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonOptionObject.cs @@ -0,0 +1,9 @@ + +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct TermsButtonOptionObject + { + public string text; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonOptionObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonOptionObject.cs.meta new file mode 100644 index 0000000..5493341 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsButtonOptionObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e06a6314f7bbc4ccba1a2538839b1c67 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinkObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinkObject.cs new file mode 100644 index 0000000..939f8b8 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinkObject.cs @@ -0,0 +1,11 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct TermsLinksObject + { + public TermsLinkObject website; + public TermsLinkObject terms; + public TermsLinkObject privacy; + public TermsLinkObject manage; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinkObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinkObject.cs.meta new file mode 100644 index 0000000..601f55a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinkObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 68acb7cd6aef846b68a851b985c3bc42 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinksObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinksObject.cs new file mode 100644 index 0000000..ee9f53e --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinksObject.cs @@ -0,0 +1,10 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct TermsLinkObject + { + public string text; + public string url; + public bool required; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinksObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinksObject.cs.meta new file mode 100644 index 0000000..7fa6d6c --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsLinksObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f3b5f8119ef4b4e38b0343bf1ef9e393 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsObject.cs new file mode 100644 index 0000000..29e72ab --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsObject.cs @@ -0,0 +1,11 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct TermsObject + { + public string plaintext; + public string html; + public TermsButtonObject buttons; + public TermsLinksObject links; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsObject.cs.meta new file mode 100644 index 0000000..95011c9 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/TermsObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f1e524d5191445fd8ad97130a4b6af3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserEventObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserEventObject.cs new file mode 100644 index 0000000..52788bc --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserEventObject.cs @@ -0,0 +1,13 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct UserEventObject + { + public long id; + public long game_id; + public long mod_id; + public long user_id; + public long date_added; + public string event_type; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserEventObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserEventObject.cs.meta new file mode 100644 index 0000000..36cdbd1 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserEventObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c633ce05f42084db4afb50fdc105db18 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserObject.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserObject.cs new file mode 100644 index 0000000..5a155e0 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserObject.cs @@ -0,0 +1,16 @@ +namespace ModIO.Implementation.API.Objects +{ + [System.Serializable] + internal struct UserObject + { + public long id; + public string name_id; + public string username; + public string display_name_portal; + public long date_online; + public AvatarObject avatar; + public string timezone; + public string language; + public string profile_url; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserObject.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserObject.cs.meta new file mode 100644 index 0000000..ef7cf1a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Objects/UserObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 46651c87421014362b1d700bf51631c2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests.meta new file mode 100644 index 0000000..5f7bef6 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 879e9c09e6fba49a1bf3ded4aaaa463e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddMod.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddMod.cs new file mode 100644 index 0000000..2349724 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddMod.cs @@ -0,0 +1,47 @@ +using UnityEngine; + +namespace ModIO.Implementation.API.Requests +{ + static class AddMod + { + public static WebRequestConfig Request(ModProfileDetails details) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods"}?", + RequestMethodType = "POST", + ShouldRequestTimeout = false, + }; + + + + request.AddField("visible", details.visible == false ? "0" : "1"); + request.AddField("name", details.name); + request.AddField("summary", details.summary); + request.AddField("description", details.description); + request.AddField("name_id", details.name_id); + request.AddField("homepage_url", details.homepage_url); + request.AddField("stock", details.maxSubscribers.ToString()); + request.AddField("metadata_blob", details.metadata); + + if(details.contentWarning != null) + request.AddField("maturity_option", ((int)details.contentWarning).ToString()); + + if(details.communityOptions != null) + request.AddField("community_options", ((int)details.communityOptions).ToString()); + + if(details.tags != null) + { + for(int i = 0; i < details.tags.Length; i++) + { + request.AddField($"tags[{i}]", details.tags[i]); + } + } + + if(details.logo != null) + request.AddField("logo","logo.png", details.logo.EncodeToPNG()); + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddMod.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddMod.cs.meta new file mode 100644 index 0000000..ed2ff28 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddMod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc8be2e744b46a043b8ec5d857640506 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModMedia.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModMedia.cs new file mode 100644 index 0000000..4966b7c --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModMedia.cs @@ -0,0 +1,42 @@ +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using UnityEngine; + +namespace ModIO.Implementation.API.Requests +{ + static class AddModMedia + { + public static async Task> Request(ModProfileDetails details) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{details.modId?.id}/media?", + RequestMethodType = "POST", + ShouldRequestTimeout = false, + }; + + if(details.logo != null) + request.AddField("logo", "logo.png", details.logo.EncodeToPNG()); + + if(details.images != null) + { + var imageBytes = details.images.Select(x => x.EncodeToPNG()); + CompressOperationMultiple zipOperation = new CompressOperationMultiple(imageBytes, null); + + ResultAnd resultAnd = await zipOperation.Compress(); + + if(resultAnd.result.Succeeded()) + { + request.AddField("images", "images.zip", resultAnd.value.ToArray()); + } + else + { + return ResultAnd.Create(resultAnd.result, null); + } + } + + return ResultAnd.Create(ResultBuilder.Success, request); + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModMedia.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModMedia.cs.meta new file mode 100644 index 0000000..6c59513 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModMedia.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 579b8ad006d530041887fe6c82ce5de0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModRating.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModRating.cs new file mode 100644 index 0000000..e1d35be --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModRating.cs @@ -0,0 +1,20 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class AddModRating + { + public static WebRequestConfig Request(ModId modId, ModRating rating) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{modId.id}{@"/ratings"}?", + RequestMethodType = "POST", + }; + + + request.AddField("rating", ((int)rating).ToString()); + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModRating.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModRating.cs.meta new file mode 100644 index 0000000..85d6068 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModRating.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 946e5e317152b8f4eaf76c9feb65f5b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModTags.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModTags.cs new file mode 100644 index 0000000..8791ddd --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModTags.cs @@ -0,0 +1,40 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class AddModTags + { + public static WebRequestConfig Request(ModId modId, string[] tags) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{(long)modId}/tags?", + RequestMethodType = "POST", + }; + + + + foreach(var tag in tags) + { + if(!string.IsNullOrWhiteSpace(tag)) + { + //is it possible that unity can take a bunch of tags and then add them to a list? + //while going through this, double check that the generated form complies with + //the server + request.AddField("tags[]", tag); + } + } + return request; + } + } +} + +/* + + ModIOUnity + ModIOUnityImplementation + ModIOCommunications + WebRequestManager + WebRequestRunner + + +*/ \ No newline at end of file diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModTags.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModTags.cs.meta new file mode 100644 index 0000000..1063111 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModTags.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9fab56613b5990e419605430de87ac6e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModfile.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModfile.cs new file mode 100644 index 0000000..9e85154 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModfile.cs @@ -0,0 +1,31 @@ +namespace ModIO.Implementation.API.Requests +{ + static class AddModFile + { + public static WebRequestConfig Request(ModfileDetails details, byte[] filedata) + { + var id = details?.modId?.id ?? new ModId(0); + + var request = new WebRequestConfig() + { + Url = Url(id), + RequestMethodType = "POST", + ShouldRequestTimeout = false, + }; + + + + request.AddField("version", details.version); + request.AddField("changelog", details.changelog); + request.AddField("filehash", IOUtil.GenerateMD5(filedata)); + request.AddField("metadata_blob", details.metadata); + + request.AddField("filedata", $"{id}_modfile.zip", filedata); + + return request; + } + + public static string Url(long id)=>$"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{id}{@"/files"}?"; + + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModfile.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModfile.cs.meta new file mode 100644 index 0000000..4901e23 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AddModfile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9278f0544ddfe641ad26ee098e57dda +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateUser.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateUser.cs new file mode 100644 index 0000000..622cb52 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateUser.cs @@ -0,0 +1,59 @@ +using JetBrains.Annotations; + +namespace ModIO.Implementation.API.Requests +{ + + internal static class AuthenticateUser + { + public static WebRequestConfig InternalRequest(string securityCode) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/oauth/emailexchange"}?", + RequestMethodType = "POST", + }; + + request.AddField("api_key", Settings.server.gameKey); + request.AddField("security_code", securityCode); + + return request; + } + + public static WebRequestConfig ExternalRequest(AuthenticationServiceProvider serviceProvider, string data, + [CanBeNull] TermsHash? hash, + [CanBeNull] string emailAddress, + [CanBeNull] string nonce, + [CanBeNull] OculusDevice? device, + [CanBeNull] string userId, + PlayStationEnvironment environment) + { + var tokenFieldName = serviceProvider.GetTokenFieldName(); + var provider = serviceProvider.GetProviderName(); + + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/external/"}{provider}?", + RequestMethodType = "POST", + }; + + var agreedTerms = ResponseCache.termsHash.md5hash == hash?.md5hash; + request.AddField(tokenFieldName, data); + request.AddField("terms_agreed", agreedTerms.ToString()); + request.AddField("email", emailAddress); + + // Add Oculus fields + if(serviceProvider == AuthenticationServiceProvider.Oculus) + { + request.AddField("nonce", nonce); + request.AddField("user_id", userId); + request.AddField("device", device == OculusDevice.Quest ? "quest" : "rift"); + } + if(serviceProvider == AuthenticationServiceProvider.PlayStation) + { + request.AddField("env", ((int)environment).ToString()); + } + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateUser.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateUser.cs.meta new file mode 100644 index 0000000..f904de0 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateUser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e24636f5d0c168b4d9af0af87e89f050 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateViaEmail.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateViaEmail.cs new file mode 100644 index 0000000..cb49302 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateViaEmail.cs @@ -0,0 +1,19 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class AuthenticateViaEmail + { + public static WebRequestConfig Request(string emailaddress) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/oauth/emailrequest"}?", + RequestMethodType = "POST", + }; + + request.AddField("email", emailaddress); + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateViaEmail.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateViaEmail.cs.meta new file mode 100644 index 0000000..3c9d7cf --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/AuthenticateViaEmail.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a00bc930406f4c94d9e98e8dc6371fdf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteMod.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteMod.cs new file mode 100644 index 0000000..78d08b0 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteMod.cs @@ -0,0 +1,19 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class DeleteMod + { + public static WebRequestConfig Request(ModId modId) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{modId.id.ToString()}?", + RequestMethodType = "DELETE", + }; + + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteMod.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteMod.cs.meta new file mode 100644 index 0000000..08006f2 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteMod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3392df6368dc32442b761ac8b3f2a27c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteModTags.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteModTags.cs new file mode 100644 index 0000000..7e2d4dd --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteModTags.cs @@ -0,0 +1,26 @@ +namespace ModIO.Implementation.API.Requests +{ + internal static class DeleteModTags + { + + public static WebRequestConfig Request(ModId modId, string[] tags) + { + + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{(long)modId}/tags?", + RequestMethodType = "DELETE", + }; + + + foreach(var tag in tags) + { + if(!string.IsNullOrWhiteSpace(tag)) + { + request.AddField("tags[]", tag); + } + } + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteModTags.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteModTags.cs.meta new file mode 100644 index 0000000..03e0347 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/DeleteModTags.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 713d2b52da0c9a24290640e85e5b2a63 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/EditMod.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/EditMod.cs new file mode 100644 index 0000000..441d9c1 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/EditMod.cs @@ -0,0 +1,56 @@ +using System.Linq; +using UnityEngine; + +namespace ModIO.Implementation.API.Requests +{ + + internal static class EditMod + { + public static WebRequestConfig RequestPOST(ModProfileDetails details) + => InternalRequest(details, "POST"); + + public static WebRequestConfig RequestPUT(ModProfileDetails details) + => InternalRequest(details, "PUT"); + + public static WebRequestConfig InternalRequest(ModProfileDetails details, string requestType) + { + long modId = details.modId != null ? details.modId.Value.id : 0; + + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{modId}?", + RequestMethodType = requestType + }; + + request.AddField("visible", details.visible == false ? "0" : "1"); + request.AddField("name", details.name); + request.AddField("summary", details.summary); + request.AddField("description", details.description); + request.AddField("name_id", details.name_id); + request.AddField("homepage_url", details.homepage_url); + request.AddField("stock", details.maxSubscribers.ToString()); + + if(details.contentWarning != null) + request.AddField("maturity_option", ((int)details.contentWarning).ToString()); + + if(details.communityOptions != null) + request.AddField("community_options", ((int)details.communityOptions).ToString()); + + // TODO Currently the EditMod endpoint doesnt allow changing/adding tags + // if(details.tags != null) + // { + // for(int i = 0; i < details.tags.Count(); i++) + // { + // request.AddField($"tags[{i}]", details.tags[i]); + // } + // } + + request.AddField("metadata_blob", details.metadata); + + if(details.logo != null) + request.AddField("logo", "logo.png", details.logo.EncodeToPNG()); + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/EditMod.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/EditMod.cs.meta new file mode 100644 index 0000000..a500432 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/EditMod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 35d904223454ebc489821469699ff9a1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Filtering.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Filtering.cs new file mode 100644 index 0000000..096cf69 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Filtering.cs @@ -0,0 +1,25 @@ + +namespace ModIO.Implementation.API.Requests +{ + internal static class Filtering + { + // Filtering + public const string FullTextSearch = "_q="; + public const string NotEqualTo = "-not="; + public const string Like = "-lk="; + public const string NotLike = "not-lk="; + public const string In = "-in="; + public const string NotIn = "-not-in="; + public const string Max = "-max="; + public const string Min = "-min="; + public const string BitwiseAnd = "-bitwise-and="; + + // Sorting + public const string Ascending = "_sort="; + public const string Descending = "_sort=-"; + + // Pagination + public const string Limit = "_limit="; + public const string Offset = "_offset="; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Filtering.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Filtering.cs.meta new file mode 100644 index 0000000..5deecde --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Filtering.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e67ee955498724ff3b293f8d0e9b40e6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetAuthenticatedUser.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetAuthenticatedUser.cs new file mode 100644 index 0000000..0f4e0b3 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetAuthenticatedUser.cs @@ -0,0 +1,18 @@ +namespace ModIO.Implementation.API.Requests +{ + internal static class GetAuthenticatedUser + { + public static WebRequestConfig Request() + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/me?"}", + RequestMethodType = "GET" + }; + + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetAuthenticatedUser.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetAuthenticatedUser.cs.meta new file mode 100644 index 0000000..ba2bd67 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetAuthenticatedUser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d46f49acac1941c4b917f749593985cf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserCreations.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserCreations.cs new file mode 100644 index 0000000..ac67029 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserCreations.cs @@ -0,0 +1,31 @@ +using JetBrains.Annotations; +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation.API.Requests +{ + internal static class GetCurrentUserCreations + { + [System.Serializable] + internal class ResponseSchema : PaginatedResponse { } + + public static WebRequestConfig Request([CanBeNull] SearchFilter searchFilter = null) + { + string filter = string.Empty; + if(searchFilter != null) + { + filter = FilterUtil.ConvertToURL(searchFilter); + } + + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/me/mods"}?{filter}{@"&game_id="}{Settings.server.gameId}", + RequestMethodType = "GET" + }; + + + + return request; + } + } + +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserCreations.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserCreations.cs.meta new file mode 100644 index 0000000..da19ca3 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserCreations.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dbc8901822b88bf44a2b1ed41e986d2c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserRatings.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserRatings.cs new file mode 100644 index 0000000..e0c5c95 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserRatings.cs @@ -0,0 +1,24 @@ +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation.API.Requests +{ + internal static class GetCurrentUserRatings + { + [System.Serializable] + + internal class ResponseSchema : PaginatedResponse { } + + public static WebRequestConfig Request() + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/me/ratings"}?", + RequestMethodType = "GET" + }; + + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserRatings.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserRatings.cs.meta new file mode 100644 index 0000000..1e5bd9e --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetCurrentUserRatings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a5b853c6fd97932469287c7b91bf6988 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetGameTags.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetGameTags.cs new file mode 100644 index 0000000..0b3eb6a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetGameTags.cs @@ -0,0 +1,24 @@ +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation.API.Requests +{ + + internal static class GetGameTags + { + [System.Serializable] + public class ResponseSchema : PaginatedResponse { } + + public static WebRequestConfig Request() + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/tags"}?", + RequestMethodType = "GET" + }; + + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetGameTags.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetGameTags.cs.meta new file mode 100644 index 0000000..7cfc9b5 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetGameTags.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 06453cce1866f64428b1bc34495dd478 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMod.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMod.cs new file mode 100644 index 0000000..d510521 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMod.cs @@ -0,0 +1,18 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class GetMod + { + public static WebRequestConfig Request(long modId) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{modId}?", + RequestMethodType = "GET" + }; + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMod.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMod.cs.meta new file mode 100644 index 0000000..1c25cac --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f22ffe09e9fdcd0499cb987a7f88d254 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModDependencies.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModDependencies.cs new file mode 100644 index 0000000..92c459f --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModDependencies.cs @@ -0,0 +1,37 @@ +using ModIO.Implementation.API.Objects; +using Newtonsoft.Json; + +namespace ModIO.Implementation.API.Requests +{ + + internal static class GetModDependencies + { + [System.Serializable] + internal class ResponseSchema + { + [JsonProperty(Required = Required.Always)] + internal ModDependenciesObject[] data; + [JsonProperty] + internal int result_count; + [JsonProperty] + internal int result_offset; + [JsonProperty] + internal int result_limit; + [JsonProperty] + internal int result_total; + } + + public static WebRequestConfig Request(long modId) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}/games/{Settings.server.gameId}/mods/{modId}/dependencies?", + RequestMethodType = "GET" + }; + + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModDependencies.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModDependencies.cs.meta new file mode 100644 index 0000000..f3b03c2 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModDependencies.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6d7611c9b2187044a9d52b82d6569840 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModEvents.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModEvents.cs new file mode 100644 index 0000000..ae11e17 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModEvents.cs @@ -0,0 +1,29 @@ +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation.API.Requests +{ + + internal static class GetModEvents + { + [System.Serializable] + internal class ResponseSchema : PaginatedResponse { } + + public static WebRequestConfig Request(string paginationUrl = null) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/events"}?", + RequestMethodType = "GET" + }; + + if(paginationUrl != null) + { + request.Url += paginationUrl; + } + + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModEvents.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModEvents.cs.meta new file mode 100644 index 0000000..c30f77f --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetModEvents.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e73f2486a29f9484ca672120f9386916 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMods.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMods.cs new file mode 100644 index 0000000..c8fb305 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMods.cs @@ -0,0 +1,39 @@ +using JetBrains.Annotations; +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation.API.Requests +{ + internal static class GetMods + { + public class ResponseSchema : PaginatedResponse { } + + public static WebRequestConfig RequestPaginated([CanBeNull] SearchFilter searchFilter) + { + string filter = string.Empty; + if(searchFilter != null) + { + filter = FilterUtil.ConvertToURL(searchFilter); + filter = FilterUtil.AddPagination(searchFilter, filter); + } + + var request = RequestUnpaginated(); + request.Url += filter; + + + return request; + } + + public static WebRequestConfig RequestUnpaginated() + { + var request = new WebRequestConfig() + { + Url = UnpaginatedURL(), + RequestMethodType = "GET" + }; + + return request; + } + + public static string UnpaginatedURL() => $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods"}?"; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMods.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMods.cs.meta new file mode 100644 index 0000000..1231a6e --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetMods.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 02bb84b610f1ea643a448c173057f2eb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetTerms.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetTerms.cs new file mode 100644 index 0000000..118e17e --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetTerms.cs @@ -0,0 +1,19 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class GetTerms + { + public static WebRequestConfig Request() + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/authenticate/terms"}?", + RequestMethodType = "GET" + }; + + // + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetTerms.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetTerms.cs.meta new file mode 100644 index 0000000..9265ec3 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetTerms.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 008ecfcbd1f5e1342a33497a99172c87 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserEvents.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserEvents.cs new file mode 100644 index 0000000..07f8ab0 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserEvents.cs @@ -0,0 +1,29 @@ +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation.API.Requests +{ + + internal static class GetUserEvents + { + [System.Serializable] + internal class ResponseSchema : PaginatedResponse { } + + public static WebRequestConfig Request(string filterUrl = null) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/me/events"}?game_id={Settings.server.gameId}", + RequestMethodType = "GET" + }; + + if(filterUrl != null) + { + request.Url += filterUrl; + } + + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserEvents.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserEvents.cs.meta new file mode 100644 index 0000000..4d002cd --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserEvents.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c066e9b6338a7dc4cad4433cfaea3eda +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserSubscriptions.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserSubscriptions.cs new file mode 100644 index 0000000..145a22b --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserSubscriptions.cs @@ -0,0 +1,26 @@ +using JetBrains.Annotations; +using ModIO.Implementation.API.Objects; + +namespace ModIO.Implementation.API.Requests +{ + + internal static class GetUserSubscriptions + { + [System.Serializable] + internal class ResponseSchema : PaginatedResponse { } + + public static WebRequestConfig Request([CanBeNull] SearchFilter searchFilter = null) + { + string filter = searchFilter == null ? "" : FilterUtil.ConvertToURL(searchFilter); + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/me/subscribed?"}game_id={Settings.server.gameId}{filter}", + RequestMethodType = "GET" + }; + + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserSubscriptions.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserSubscriptions.cs.meta new file mode 100644 index 0000000..da4aa49 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/GetUserSubscriptions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad5403b40870c1e4e87400c5792999ab +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/PaginatedResponse.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/PaginatedResponse.cs new file mode 100644 index 0000000..c9f7738 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/PaginatedResponse.cs @@ -0,0 +1,17 @@ +namespace ModIO.Implementation.API.Requests +{ + ///< summary> + /// response schemas that can paginate can inherit this so we can have a single pagination + /// schema that gets shared across all paging requests (mods, events, subscriptions, comments, + /// etc) + /// + internal class PaginatedResponse + { + public T[] data; + + public long result_total; + public long result_limit; + public long result_offset; + public long result_count; + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/PaginatedResponse.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/PaginatedResponse.cs.meta new file mode 100644 index 0000000..88b3c3a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/PaginatedResponse.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9364f7ee789334efcb0f0046f347399f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Report.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Report.cs new file mode 100644 index 0000000..621d5e0 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Report.cs @@ -0,0 +1,24 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class Report + { + public static WebRequestConfig Request(ModIO.Report report) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/report"}?", + RequestMethodType = "POST" + }; + + request.AddField("id", report.id.ToString()); + request.AddField("resource", report.resourceType.ToString().ToLower()); + request.AddField("type", ((int)report.type).ToString()); + request.AddField("name", report.user); + request.AddField("contact", report.contactEmail); + request.AddField("summary", report.summary); + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Report.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Report.cs.meta new file mode 100644 index 0000000..5a9211f --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/Report.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 712b2f87cab7abe4cabcdd6d5ce67a19 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/SubscribeToMod.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/SubscribeToMod.cs new file mode 100644 index 0000000..523e76c --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/SubscribeToMod.cs @@ -0,0 +1,19 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class SubscribeToMod + { + public static WebRequestConfig Request(long modId) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{modId}{@"/subscribe"}?", + RequestMethodType = "POST" + }; + + + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/SubscribeToMod.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/SubscribeToMod.cs.meta new file mode 100644 index 0000000..cfb60fc --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/SubscribeToMod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1973ac99c6225d94194f54b3dec0b24b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UnsubscribeFromMod.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UnsubscribeFromMod.cs new file mode 100644 index 0000000..0339436 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UnsubscribeFromMod.cs @@ -0,0 +1,20 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class UnsubscribeFromMod + { + public static WebRequestConfig Request(long modId) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/games/"}{Settings.server.gameId}{@"/mods/"}{modId}{@"/subscribe"}?", + RequestMethodType = "DELETE" + }; + + + return request; + } + } + + +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UnsubscribeFromMod.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UnsubscribeFromMod.cs.meta new file mode 100644 index 0000000..544cdf9 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UnsubscribeFromMod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: db239ff2ed98d2647b8b450c523d00c9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserMute.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserMute.cs new file mode 100644 index 0000000..b7ceea7 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserMute.cs @@ -0,0 +1,20 @@ +namespace ModIO.Implementation.API.Requests +{ + + internal static class UserMute + { + public static WebRequestConfig Request(long userId) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/users/"}{userId}{@"/mute"}?", + RequestMethodType = "POST" + }; + + + return request; + } + } + + +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserMute.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserMute.cs.meta new file mode 100644 index 0000000..cb43a4b --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserMute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 227b972c4c4efaf42b768b2920711445 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserUnmute.cs b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserUnmute.cs new file mode 100644 index 0000000..966e295 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserUnmute.cs @@ -0,0 +1,16 @@ +namespace ModIO.Implementation.API.Requests +{ + internal static class UserUnmute + { + public static WebRequestConfig Request(long userId) + { + var request = new WebRequestConfig() + { + Url = $"{Settings.server.serverURL}{@"/users/"}{userId}{@"/mute"}?", + RequestMethodType = "DELETE" + }; + + return request; + } + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserUnmute.cs.meta b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserUnmute.cs.meta new file mode 100644 index 0000000..0d41b25 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.API/Implementation.API.Requests/UserUnmute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dfbd927a978a2c74a9de02baf3858186 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform.meta b/Runtime/ModIO.Implementation/Implementation.Platform.meta new file mode 100644 index 0000000..5c5dbc1 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 77f2d9ce7be032d4b95f283451bdb2b4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Classes.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Classes.meta new file mode 100644 index 0000000..38ba7b0 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Classes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e55e12ba63fb4206af4f692db6defe4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Classes/FileStreamWrapper.cs b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/FileStreamWrapper.cs new file mode 100644 index 0000000..62eb4a0 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/FileStreamWrapper.cs @@ -0,0 +1,902 @@ +using System; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace ModIO.Implementation.Platform +{ + /// + /// Implementation of a file stream that throws no exceptions and works cross-platform. + /// + /// + /// From: https://docs.microsoft.com/en-us/dotnet/api/system.io.stream?view=net-5.0 + /// -- Notes to Implementers -- + /// When you implement a derived class of Stream, you must provide implementations for the + /// Read(Byte[], Int32, Int32) and Write(Byte[], Int32, Int32) methods. The asynchronous methods + /// ReadAsync(Byte[], Int32, Int32), WriteAsync(Byte[], Int32, Int32), and CopyToAsync(Stream) + /// use the synchronous methods Read(Byte[], Int32, Int32) and Write(Byte[], Int32, Int32) in + /// their implementations. Therefore, your implementations of Read(Byte[], Int32, Int32) and + /// Write(Byte[], Int32, Int32) will work correctly with the asynchronous methods. The default + /// implementations of ReadByte() and WriteByte(Byte) create a new single-element byte array, + /// and then call your implementations of Read(Byte[], Int32, Int32) and Write(Byte[], Int32, + /// Int32). When you derive from Stream, we recommend that you override these methods to access + /// your internal buffer, if you have one, for substantially better performance. You must also + /// provide implementations of CanRead, CanSeek, CanWrite, Flush(), Length, Position, + /// Seek(Int64, SeekOrigin), and SetLength(Int64). + /// + /// Do not override the Close() method, instead, put all the Stream cleanup logic in the + /// Dispose(Boolean) method. For more information, see Implementing a Dispose Method. + /// + internal class FileStreamWrapper : ModIOFileStream + { + /// FileStream implementation. + System.IO.FileStream fileStream; + + /// The result of the last operation attempted on the FileStream. + Result result = ResultBuilder.Success; + +#region Properties + + /// A value indicating whether the current stream supports reading. + public override bool CanRead => this.fileStream.CanRead; + + /// A value indicating whether the current stream supports seeking. + public override bool CanSeek => this.fileStream.CanSeek; + + /// A value that determines whether the current stream can time out. + /// + /// The CanTimeout property always returns false. Some stream implementations require + /// different behavior, such as NetworkStream, which times out if network connectivity is + /// interrupted or lost. If you are implementing a stream that must be able to time out, + /// this property should be overridden to return true. + /// + public override bool CanTimeout => this.fileStream.CanTimeout; + + /// A value indicating whether the current stream supports writing. + public override bool CanWrite => this.fileStream.CanWrite; + + /// The length in bytes of the stream. + public override long Length => this.fileStream.Length; + + /// Gets or sets the position within the current stream. + /// + /// The stream must support seeking to get or set the position. Use the CanSeek property to + /// determine whether the stream supports seeking. + /// + /// Seeking to any location beyond the length of the stream is supported. + /// + /// The Position property does not keep track of the number of bytes from the stream that + /// have been consumed, skipped, or both. + /// + public override long Position + { + get => this.fileStream.Position; + set => this.fileStream.Position = value; + } + + /// + /// Gets or sets a value, in milliseconds, that determines how long the stream will attempt + /// to read before timing out. + /// + /// + /// The ReadTimeout property should be overridden to provide the appropriate behavior for + /// the stream. If the stream does not support timing out, this property should raise an + /// InvalidOperationException. + /// + public override int ReadTimeout + { + get => this.fileStream.ReadTimeout; + set => this.fileStream.ReadTimeout = value; + } + + /// + /// Gets or sets a value, in milliseconds, that determines how long the stream will attempt + /// to write before timing out. + /// + /// + /// The WriteTimeout property should be overridden to provide the appropriate behavior for + /// the stream. If the stream does not support timing out, this property should raise an + /// InvalidOperationException. + /// + public override int WriteTimeout + { + get => this.fileStream.WriteTimeout; + set => this.fileStream.WriteTimeout = value; + } + + /// Gets the absolute path of the file opened in the stream. + public override string FilePath => this.fileStream.Name; + +#endregion // Properties + +#region Initialization + + // /// + // /// Initializes the FileStream with the given file path using the given service. + // /// + // public FileStreamWrapper(IDataService dataService, string filePath, bool + // enableExceptions) + // { + // this.dataService = dataService; + // this.filePath = filePath; + // this.areExceptionsEnabled = enableExceptions; + // } + + /// + /// Initializes the FileStream with the given file path using the given service. + /// + public FileStreamWrapper(System.IO.FileStream internalStream) + { + this.fileStream = internalStream; + } + +#endregion // Initialization + +#region mod.io Functionality + + /// Gets the result of the last operation attempted on the FileStream. + public Result GetLastResult() + { + return this.result; + } + +#endregion // mod.io Functionality + +#region System.IO.Stream Interface + + /// + /// Closes the current stream and releases any resources (such as sockets and file handles) + /// associated with the current stream. Instead of calling this method, ensure that the + /// stream is properly disposed. + /// + public override void Close() + { + /// In derived classes, do not override the Close() method, instead, put all of the + /// Stream cleanup logic in the Dispose(Boolean) method. For more information, see + /// Implementing a Dispose Method. + + base.Close(); + } + + /// + /// Asynchronously reads the bytes from the current stream and writes them to another + /// stream. + /// + /// Stream - The stream to which the contents of the current stream will be copied. + /// Int32 - The size, in bytes, of the buffer. This value must be greater than zero. The default size is 81920. + /// CancellationToken - The token to monitor for cancellation requests. The default value is None. + /// Task - A task that represents the asynchronous copy operation. + /// + /// The CopyToAsync method enables you to perform resource-intensive I/O operations without + /// blocking the main thread. This performance consideration is particularly important in a + /// Windows 8.x Store app or desktop app where a time-consuming stream operation can block + /// the UI thread and make your app appear as if it is not working. The async methods are + /// used in conjunction with the async and await keywords in Visual Basic and C#. + /// + /// If the operation is canceled before it completes, the returned task contains the + /// Canceled value for the Status property. + /// + /// Copying begins at the current position in the current stream. + /// + /// For an example of copying between two streams, see the CopyToAsync(Stream) overload. + /// + public override Task CopyToAsync(Stream destination, int bufferSize, + CancellationToken cancellationToken) + { + // Exceptions + // ArgumentNullException + // destination is null. + // ArgumentOutOfRangeException + // buffersize is negative or zero. + // ObjectDisposedException + // Either the current stream or the destination stream is disposed. + // NotSupportedException + // The current stream does not support reading, or the destination stream does not + // support writing. + + return this.fileStream.CopyToAsync(destination, bufferSize, cancellationToken); + } + + /// + /// When overridden in a derived class, clears all buffers for this stream and causes any + /// buffered data to be written to the underlying device. + /// + /// + /// Override Flush on streams that implement a buffer. Use this method to move any + /// information from an underlying buffer to its destination, clear the buffer, or both. + /// Depending upon the state of the object, you might have to modify the current position + /// within the stream (for example, if the underlying stream supports seeking). For + /// additional information see CanSeek. + /// + /// In a class derived from Stream that doesn't support writing, Flush is typically + /// implemented as an empty method to ensure full compatibility with other Stream types + /// since it's valid to flush a read-only stream. + /// + /// When using the StreamWriter or BinaryWriter class, do not flush the base Stream object. + /// Instead, use the class's Flush or Close method, which makes sure that the data is + /// flushed to the underlying stream first and then written to the file. + /// + public override void Flush() + { + // Exceptions + // IOException + // An I/O error occurs. + + this.fileStream.Flush(); + } + + /// + /// Asynchronously clears all buffers for this stream and causes any buffered data to be + /// written to the underlying device. + /// + /// CancellationToken - The token to monitor for cancellation requests. The default value is None. + /// Task - A task that represents the asynchronous flush operation. + /// + /// If the operation is canceled before it completes, the returned task contains the + /// Canceled value for the Status property. + /// + /// If a derived class, such as DeflateStream or GZipStream, does not flush the buffer in + /// its implementation of the Flush method, the FlushAsync method will not flush the buffer. + /// + public override Task FlushAsync(CancellationToken cancellationToken) + { + // Exceptions + // ObjectDisposedException + // The stream has been disposed. + return this.fileStream.FlushAsync(cancellationToken); + } + + + public override object InitializeLifetimeService() + { + return this.fileStream.InitializeLifetimeService(); + } + + /// + /// When overridden in a derived class, reads a sequence of bytes from the current stream + /// and advances the position within the stream by the number of bytes read. + /// + /// + /// Byte[] - An array of bytes. When this method returns, the buffer contains the specified + /// byte array with the values between offset and (offset + count - 1) replaced by the bytes + /// read from the current source. + /// + /// Int32 - The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + /// Int32 - The maximum number of bytes to be read from the current stream. + /// + /// Int32 - The total number of bytes read into the buffer. This can be less than the number + /// of bytes requested if that many bytes are not currently available, or zero (0) if the + /// end of the stream has been reached. + /// + /// + /// Use the CanRead property to determine whether the current instance supports reading. Use + /// the ReadAsync method to read asynchronously from the current stream. + /// + /// Implementations of this method read a maximum of count bytes from the current stream and + /// store them in buffer beginning at offset. The current position within the stream is + /// advanced by the number of bytes read; however, if an exception occurs, the current + /// position within the stream remains unchanged. Implementations return the number of bytes + /// read. The implementation will block until at least one byte of data can be read, in the + /// event that no data is available. Read returns 0 only when there is no more data in the + /// stream and no more is expected (such as a closed socket or end of file). An + /// implementation is free to return fewer bytes than requested even if the end of the + /// stream has not been reached. + /// + /// Use BinaryReader for reading primitive data types. + /// + public override int Read(byte[] buffer, int offset, int count) + { + // Exceptions + // ArgumentException + // The sum of offset and count is larger than the buffer length. + // ArgumentNullException + // buffer is null. + // ArgumentOutOfRangeException + // offset or count is negative. + // IOException + // An I/O error occurs. + // NotSupportedException + // The stream does not support reading. + // ObjectDisposedException + // Methods were called after the stream was closed. + + return this.fileStream.Read(buffer, offset, count); + } + + /// + /// Asynchronously reads a sequence of bytes from the current stream and advances the + /// position within the stream by the number of bytes read. + /// + /// Byte[] - The buffer to write the data into. + /// Int32 - The byte offset in buffer at which to begin writing data from the stream. + /// Int32 - The maximum number of bytes to read. + /// CancellationToken - The token to monitor for cancellation requests. The default value is None. + /// + /// Task - A task that represents the asynchronous read operation. The value of the + /// TResult parameter contains the total number of bytes read into the buffer. The result + /// value can be less than the number of bytes requested if the number of bytes currently + /// available is less than the requested number, or it can be 0 (zero) if the end of the + /// stream has been reached. + /// + /// + /// The ReadAsync method enables you to perform resource-intensive I/O operations without + /// blocking the main thread. This performance consideration is particularly important in a + /// Windows 8.x Store app or desktop app where a time-consuming stream operation can block + /// the UI thread and make your app appear as if it is not working. The async methods are + /// used in conjunction with the async and await keywords in Visual Basic and C#. + /// + /// Use the CanRead property to determine whether the current instance supports reading. + /// + /// If the operation is canceled before it completes, the returned task contains the + /// Canceled value for the Status property. + /// + /// For an example, see the ReadAsync(Byte[], Int32, Int32) overload. + /// + public override Task ReadAsync(byte[] buffer, int offset, int count, + CancellationToken cancellationToken) + { + // Exceptions + // ArgumentNullException + // buffer is null. + // ArgumentOutOfRangeException + // offset or count is negative. + // ArgumentException + // The sum of offset and count is larger than the buffer length. + // NotSupportedException + // The stream does not support reading. + // ObjectDisposedException + // The stream has been disposed. + // InvalidOperationException + // The stream is currently in use by a previous read operation. + + return this.fileStream.ReadAsync(buffer, offset, count, cancellationToken); + } + + public override async Task> ReadAllBytesAsync() + { + Result readResult; + byte[] data = null; + + if(SystemIOWrapper.IsPathValid(this.fileStream.Name, out readResult) + && SystemIOWrapper.DoesFileExist(this.fileStream.Name, out readResult)) + { + try + { + data = new byte[this.fileStream.Length]; + await this.fileStream.ReadAsync(data, 0, (int)this.fileStream.Length); + + readResult = ResultBuilder.Success; + } + catch(Exception e) // TODO(@jackson): Handle exceptions + { + Logger.Log(LogLevel.Warning, "Unhandled error when attempting to read the file." + + $"\n.path={this.fileStream.Name}" + + $"\n.Exception:{e.Message}"); + + readResult = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeRead); + } + } + + return ResultAnd.Create(readResult, data); + } + + public override ResultAnd ReadAllBytes() + { + Result readResult; + byte[] data = null; + + if(SystemIOWrapper.IsPathValid(this.fileStream.Name, out readResult) + && SystemIOWrapper.DoesFileExist(this.fileStream.Name, out readResult)) + { + try + { + data = new byte[this.fileStream.Length]; + var pos = this.fileStream.Read(data, 0, (int)this.fileStream.Length); + + readResult = ResultBuilder.Success; + } + catch(Exception e) // TODO(@jackson): Handle exceptions + { + Logger.Log(LogLevel.Warning, "Unhandled error when attempting to read the file." + + $"\n.path={this.fileStream.Name}" + + $"\n.Exception:{e.Message}"); + + readResult = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeRead); + } + } + + return ResultAnd.Create(readResult, data); + } + + /// + /// Reads a byte from the stream and advances the position within the stream by one byte, or + /// returns -1 if at the end of the stream. + /// + /// Int32 - The unsigned byte cast to an Int32, or -1 if at the end of the stream. + /// + /// Use the CanRead property to determine whether the current instance supports reading. + /// + /// Attempts to manipulate the stream after the stream has been closed could throw an + /// ObjectDisposedException. + /// + /// - Notes to Inheritors - + /// The default implementation on Stream creates a new single-byte array and then calls + /// Read(Byte[], Int32, Int32). While this is formally correct, it is inefficient. Any + /// stream with an internal buffer should override this method and provide a much more + /// efficient version that reads the buffer directly, avoiding the extra array allocation on + /// every call. + /// + public override int ReadByte() + { + // Exceptions + // NotSupportedException + // The stream does not support reading. + // ObjectDisposedException + // Methods were called after the stream was closed. + + return this.fileStream.ReadByte(); + } + + /// When overridden in a derived class, sets the position within the current + /// stream. + /// Int64 - A byte offset relative to the origin parameter. + /// SeekOrigin - A value of type SeekOrigin indicating the reference point used to obtain the new position. + /// Int64 - The new position within the current stream. + /// + /// Use the CanSeek property to determine whether the current instance supports seeking. + /// + /// If offset is negative, the new position is required to precede the position specified by + /// origin by the number of bytes specified by offset. If offset is zero (0), the new + /// position is required to be the position specified by origin. If offset is positive, the + /// new position is required to follow the position specified by origin by the number of + /// bytes specified by offset. + /// + /// Classes derived from Stream that support seeking must override this method to provide + /// the functionality described above. + /// + /// Seeking to any location beyond the length of the stream is supported. + /// + public override long Seek(long offset, SeekOrigin origin) + { + // Exceptions + // IOException + // An I/O error occurs. + // NotSupportedException + // The stream does not support seeking, such as if the stream is constructed from a + // pipe or console output. + // ObjectDisposedException + // Methods were called after the stream was closed. + + return this.fileStream.Seek(offset, origin); + } + + /// When overridden in a derived class, sets the length of the current + /// stream. + /// Int64 - The desired length of the current stream in bytes. + /// + /// If the specified value is less than the current length of the stream, the stream is + /// truncated. If the specified value is larger than the current length of the stream, the + /// stream is expanded. If the stream is expanded, the contents of the stream between the + /// old and the new length are not defined. + /// + /// A stream must support both writing and seeking for SetLength to work. + /// + /// Use the CanWrite property to determine whether the current instance supports writing, + /// and the CanSeek property to determine whether seeking is supported. + /// + public override void SetLength(long value) + { + // Exceptions + // IOException + // An I/O error occurs. + // NotSupportedException + // The stream does not support both writing and seeking, such as if the stream is + // constructed from a pipe or console output. + // ObjectDisposedException + // Methods were called after the stream was closed. + + this.fileStream.SetLength(value); + } + + /// + /// When overridden in a derived class, writes a sequence of bytes to the current stream and + /// advances the current position within this stream by the number of bytes written. + /// + /// Byte[]- An array of bytes. This method copies count bytes from buffer to the current stream. + /// Int32- The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + /// Int32- The number of bytes to be written to the current stream. + /// + /// Use the CanWrite property to determine whether the current instance supports writing. + /// Use the WriteAsync method to write asynchronously to the current stream. + /// + /// If the write operation is successful, the position within the stream advances by the + /// number of bytes written. If an exception occurs, the position within the stream remains + /// unchanged. + /// + public override void Write(byte[] buffer, int offset, int count) + { + // Exceptions + // ArgumentException + // The sum of offset and count is greater than the buffer length. + // ArgumentNullException + // buffer is null. + // ArgumentOutOfRangeException + // offset or count is negative. + // IOException + // An I/O error occurred, such as the specified file cannot be found. + // NotSupportedException + // The stream does not support writing. + // ObjectDisposedException + // Write(Byte[], Int32, Int32) was called after the stream was closed. + + this.fileStream.Write(buffer, offset, count); + } + + /// + /// Asynchronously writes a sequence of bytes to the current stream, advances the current + /// position within this stream by the number of bytes written, and monitors cancellation + /// requests. + /// + /// Byte[] - The buffer to write data from. + /// Int32 - The zero-based byte offset in buffer from which to begin copying bytes to the stream. + /// Int32 - The maximum number of bytes to write. + /// CancellationToken - The token to monitor for cancellation requests. The default value is None. + /// Task - A task that represents the asynchronous write operation. + /// + /// The WriteAsync method enables you to perform resource-intensive I/O operations without + /// blocking the main thread. This performance consideration is particularly important in a + /// Windows 8.x Store app or desktop app where a time-consuming stream operation can block + /// the UI thread and make your app appear as if it is not working. The async methods are + /// used in conjunction with the async and await keywords in Visual Basic and C#. + /// + /// Use the CanWrite property to determine whether the current instance supports writing. + /// + /// If the operation is canceled before it completes, the returned task contains the + /// Canceled value for the Status property. + /// + /// For an example, see the WriteAsync(Byte[], Int32, Int32) overload. + /// + public override Task WriteAsync(byte[] buffer, int offset, int count, + CancellationToken cancellationToken) + { + // Exceptions + // ArgumentNullException + // buffer is null. + // ArgumentOutOfRangeException + // offset or count is negative. + // ArgumentException + // The sum of offset and count is larger than the buffer length. + // NotSupportedException + // The stream does not support writing. + // ObjectDisposedException + // The stream has been disposed. + // InvalidOperationException + // The stream is currently in use by a previous write operation. + + return this.fileStream.WriteAsync(buffer, offset, count, cancellationToken); + } + + public override async Task WriteAllBytesAsync(byte[] buffer) + { + Result writeResult; + + if(SystemIOWrapper.IsPathValid(this.fileStream.Name, out writeResult) + && SystemIOWrapper.TryCreateParentDirectory(this.fileStream.Name, out writeResult)) + { + try + { + fileStream.Seek(0, SeekOrigin.End); + await fileStream.WriteAsync(buffer, 0, buffer.Length); + + writeResult = ResultBuilder.Success; + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, + "Unhandled error when attempting to write the file." + + $"\n.path={this.fileStream.Name}" + + $"\n.Exception:{e.Message}"); + + writeResult = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeWritten); + } + } + + Logger.Log(LogLevel.Verbose, + $"Write file: {this.fileStream.Name} - Result: [{writeResult.code}]"); + + return writeResult; + } + + public override Result WriteAllBytes(byte[] buffer) + { + Result writeResult; + + if(SystemIOWrapper.IsPathValid(this.fileStream.Name, out writeResult) + && SystemIOWrapper.TryCreateParentDirectory(this.fileStream.Name, out writeResult)) + { + try + { + fileStream.Seek(0, SeekOrigin.End); + fileStream.Write(buffer, 0, buffer.Length); + + writeResult = ResultBuilder.Success; + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, + "Unhandled error when attempting to write the file." + + $"\n.path={this.fileStream.Name}" + + $"\n.Exception:{e.Message}"); + + writeResult = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeWritten); + } + } + + Logger.Log(LogLevel.Verbose, + $"Write file: {this.fileStream.Name} - Result: [{writeResult.code}]"); + + return writeResult; + } + + /// + /// Writes a byte to the current position in the stream and advances the position within the + /// stream by one byte. + /// + /// Byte - The byte to write to the stream. + /// + /// Use the CanWrite property to determine whether the current instance supports writing. + /// + /// - Notes to Inheritors - + /// The default implementation on Stream creates a new single-byte array and then calls + /// Write(Byte[], Int32, Int32). While this is formally correct, it is inefficient. Any + /// stream with an internal buffer should override this method and provide a much more + /// efficient version that writes to the buffer directly, avoiding the extra array + /// allocation on every call. + /// + public override void WriteByte(byte value) + { + // Exceptions + // IOException + // An I/O error occurs. + // NotSupportedException + // The stream does not support writing, or the stream is already closed. + // ObjectDisposedException + // Methods were called after the stream was closed. + + this.fileStream.WriteByte(value); + } + + /// + /// Releases the unmanaged resources used by the Stream and optionally releases the managed + /// resources. + /// + /// + /// Boolean - true to release both managed and unmanaged resources; false to release only + /// unmanaged resources. + /// + /// + /// You should release all resources by specifying true for disposing. When disposing is + /// true, the stream can also ensure data is flushed to the underlying buffer, and access + /// other finalizable objects. This may not be possible when called from a finalizer due a + /// lack of ordering among finalizers. + /// + /// If your stream is using an operating system handle to communicate with its source, + /// consider using a subclass of SafeHandle for this purpose. + /// + /// This method is called by the public Dispose method and the Finalize method. Dispose + /// invokes the protected Dispose method with the disposing parameter set to true. Finalize + /// invokes Dispose with disposing set to false. + /// + /// - Notes to Inheritors - + /// + /// In derived classes, do not override the Close() method, instead, put all of the Stream + /// cleanup logic in the Dispose(Boolean) method. + /// + /// Dispose() can be called multiple times by other objects. When overriding + /// Dispose(Boolean), be careful not to reference objects that have been previously disposed + /// of in an earlier call to Dispose(). For more information about how to implement + /// Dispose(Boolean), see Implementing a Dispose Method. + /// + /// For more information about Dispose() and Finalize(), see Cleaning Up Unmanaged + /// Resources. + /// + protected override void Dispose(bool disposing) + { + if(disposing) + { + this.fileStream?.Dispose(); + } + + base.Dispose(disposing); + } + + +#endregion // System.IO.Stream Interface + +#region Object Interface + + public override bool Equals(object obj) + { + return this.fileStream.Equals(obj); + } + + public override int GetHashCode() + { + return this.fileStream.GetHashCode(); + } + + public override string ToString() + { + return this.fileStream.ToString(); + } + +#endregion // Object Interface + +#pragma warning disable 0809 // Warning: override non-obsolete function with obsolete +#region Obsolete + + /// Begins an asynchronous read operation. + /// Byte[] - The buffer to read the data into. + /// Int32 - The byte offset in buffer at which to begin writing data read from the stream. + /// Int32 - The maximum number of bytes to read. + /// AsyncCallback - An optional asynchronous callback, to be called when the read is complete. + /// Object - A user-provided object that distinguishes this particular asynchronous read request from other requests. + /// IAsyncResult - An IAsyncResult that represents the asynchronous read, which could still be pending. + [Obsolete("Use ReadAsync instead.")] + public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, + AsyncCallback callback, object state) + { + /// In the .NET Framework 4 and earlier versions, you have to use methods such as + /// BeginRead and EndRead to implement asynchronous I/O operations. These methods are + /// still available in the .NET Framework 4.5 to support legacy code; however, the new + /// async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you + /// implement asynchronous I/O operations more easily. + /// + /// The default implementation of BeginRead on a stream calls the Read method + /// synchronously, which means that Read might block on some streams. However, instances + /// of classes such as FileStream and NetworkStream fully support asynchronous + /// operations if the instances have been opened asynchronously. Therefore, calls to + /// BeginRead will not block on those streams. You can override BeginRead (by using + /// async delegates, for example) to provide asynchronous behavior. + /// + /// Pass the IAsyncResult return value to the EndRead method of the stream to determine + /// how many bytes were read and to release operating system resources used for reading. + /// EndRead must be called once for every call to BeginRead. You can do this either by + /// using the same code that called BeginRead or in a callback passed to BeginRead. + /// + /// The current position in the stream is updated when the asynchronous read or write is + /// issued, not when the I/O operation completes. + /// + /// Multiple simultaneous asynchronous requests render the request completion order + /// uncertain. + /// + /// Use the CanRead property to determine whether the current instance supports reading. + /// + /// If a stream is closed or you pass an invalid argument, exceptions are thrown + /// immediately from BeginRead. Errors that occur during an asynchronous read request, + /// such as a disk failure during the I/O request, occur on the thread pool thread and + /// throw exceptions when calling EndRead. + +#if MODIO_COMPLILE_ALL && UNITY_EDITOR + throw new System.NotImplementedException("This should never be called."); +#endif + + return this.fileStream.BeginRead(buffer, offset, count, callback, state); + } + + /// Begins an asynchronous write operation. + /// Byte[] - The buffer to write data from. + /// Int32 - The byte offset in buffer from which to begin writing. + /// Int32 - The maximum number of bytes to write. + /// AsyncCallback - An optional asynchronous callback, to be called when the write is complete. + /// Object - A user-provided object that distinguishes this particular asynchronous write request from other requests. + /// IAsyncResult - An IAsyncResult that represents the asynchronous write, which could still be pending. + [Obsolete("Use WriteAsync instead.")] + public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, + AsyncCallback callback, object state) + { + /// In the .NET Framework 4 and earlier versions, you have to use methods such as + /// BeginWrite and EndWrite to implement asynchronous I/O operations. These methods are + /// still available in the .NET Framework 4.5 to support legacy code; however, the new + /// async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you + /// implement asynchronous I/O operations more easily. + /// + /// The default implementation of BeginWrite on a stream calls the Write method + /// synchronously, which means that Write might block on some streams. However, + /// instances of classes such as FileStream and NetworkStream fully support asynchronous + /// operations if the instances have been opened asynchronously. Therefore, calls to + /// BeginWrite will not block on those streams. You can override BeginWrite (by using + /// async delegates, for example) to provide asynchronous behavior. + /// + /// Pass the IAsyncResult returned by the current method to EndWrite to ensure that the + /// write completes and frees resources appropriately. EndWrite must be called once for + /// every call to BeginWrite. You can do this either by using the same code that called + /// BeginWrite or in a callback passed to BeginWrite. If an error occurs during an + /// asynchronous write, an exception will not be thrown until EndWrite is called with + /// the IAsyncResult returned by this method. + /// + /// If a stream is writable, writing at the end of the stream expands the stream. + /// + /// The current position in the stream is updated when you issue the asynchronous read + /// or write, not when the I/O operation completes. Multiple simultaneous asynchronous + /// requests render the request completion order uncertain. + /// + /// Use the CanWrite property to determine whether the current instance supports + /// writing. + /// + /// If a stream is closed or you pass an invalid argument, exceptions are thrown + /// immediately from BeginWrite. Errors that occur during an asynchronous write request, + /// such as a disk failure during the I/O request, occur on the thread pool thread and + /// throw exceptions when calling EndWrite. + +#if MODIO_COMPLILE_ALL && UNITY_EDITOR + throw new System.NotImplementedException("This should never be called."); +#endif + + return this.fileStream.BeginWrite(buffer, offset, count, callback, state); + } + + /// Waits for the pending asynchronous read to complete. + /// IAsyncResult - The reference to the pending asynchronous request to finish. + /// Int32 - The number of bytes read from the stream, between zero (0) and the + /// number of bytes you requested. Streams return zero (0) only at the end of the stream, + /// otherwise, they should block until at least one byte is available. + [Obsolete] + public override int EndRead(IAsyncResult asyncResult) + { + /// In the .NET Framework 4 and earlier versions, you have to use methods such as + /// BeginRead and EndRead to implement asynchronous I/O operations. These methods are + /// still available in the .NET Framework 4.5 to support legacy code; however, the new + /// async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you + /// implement asynchronous I/O operations more easily. + /// + /// Call EndRead to determine how many bytes were read from the stream. + /// + /// EndRead can be called once on every IAsyncResult from BeginRead. + /// + /// This method blocks until the I/O operation has completed. + +#if MODIO_COMPLILE_ALL && UNITY_EDITOR + throw new System.NotImplementedException("This should never be called."); +#endif + + return this.fileStream.EndRead(asyncResult); + } + + /// Ends an asynchronous write operation. + /// IAsyncResult - A reference to the outstanding asynchronous I/O request. + [Obsolete] + public override void EndWrite(IAsyncResult asyncResult) + { + /// In the .NET Framework 4 and earlier versions, you have to use methods such as + /// BeginWrite and EndWrite to implement asynchronous I/O operations. These methods are + /// still available in the .NET Framework 4.5 to support legacy code; however, the new + /// async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you + /// implement asynchronous I/O operations more easily. + /// + /// EndWrite must be called exactly once on every IAsyncResult from BeginWrite. + /// + /// This method blocks until the I/O operation has completed. Errors that occur during + /// an asynchronous write request, such as a disk failure during the I/O request, occur + /// on the thread pool thread and become visible upon a call to EndWrite. Exceptions + /// thrown by the thread pool thread will not be visible when calling EndWrite. + +#if MODIO_COMPLILE_ALL && UNITY_EDITOR + throw new System.NotImplementedException("This should never be called."); +#endif + + this.fileStream.EndWrite(asyncResult); + } + + /// Allocates a WaitHandle object. + [Obsolete( + "CreateWaitHandle will be removed eventually. Please use \"new ManualResetEvent(false)\" instead.")] + protected override WaitHandle CreateWaitHandle() + { + return base.CreateWaitHandle(); + } + +#endregion // Obsolete +#pragma warning restore 0809 // Warning: override non-obsolete function with obsolete + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Classes/FileStreamWrapper.cs.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/FileStreamWrapper.cs.meta new file mode 100644 index 0000000..102e4a8 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/FileStreamWrapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8fd4f8d0d1cf8604fb10dfe218a60903 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Classes/PlatformConfiguration.cs b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/PlatformConfiguration.cs new file mode 100644 index 0000000..702ddf5 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/PlatformConfiguration.cs @@ -0,0 +1,41 @@ +namespace ModIO.Implementation.Platform +{ + /// Interface for retrieving platform configurations. + internal static partial class PlatformConfiguration + { +#if false // Never compile the following template + + // NOTE(@jackson): + // The following section is the template for what the platform-specific partial + // implementation should look like. Ensure that the following functions are included as the + // class is duck-typed. + + /// Holds the value for the platform header value to use in requests. + public static string RESTAPI_HEADER = null; + + public const bool SynchronizedDataJobs = false; + + /// Creates the user data storage service. + public static async Task> CreateUserDataService( + string userProfileIdentifier, long gameId, BuildSettings settings) + { + throw new System.NotImplementedException(); + } + + /// Creates the persistent data storage service. + public static async Task> CreatePersistentDataService( + long gameId, BuildSettings settings) + { + throw new System.NotImplementedException(); + } + + /// Creates the temp data storage service. + public static async Task> CreateTempDataService( + long gameId, BuildSettings settings) + { + throw new System.NotImplementedException(); + } + +#endif // false + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Classes/PlatformConfiguration.cs.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/PlatformConfiguration.cs.meta new file mode 100644 index 0000000..a989019 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/PlatformConfiguration.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5b3ff42af5382204590deb2996c1d9ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Classes/SystemIOWrapper.cs b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/SystemIOWrapper.cs new file mode 100644 index 0000000..69444f5 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/SystemIOWrapper.cs @@ -0,0 +1,847 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Security; +using System.Threading.Tasks; +using UnityEngine; + +namespace ModIO.Implementation.Platform +{ + /// Wrapper for System.IO that handles exceptions and matches our interface. + internal static class SystemIOWrapper + { +#region Operations + //There is no native method for checking if a file is open or in use, so we need to keep + // track of the files we are opening and using manually. For now this is the simplest solve. + static HashSet currentlyOpenFiles = new HashSet(); + + /// Creates a FileStream for the purposes of reading. + public static ModIOFileStream OpenReadStream(string filePath, out Result result) + { + ModIOFileStream fileStream = null; + result = ResultBuilder.Unknown; + + if(IsPathValid(filePath, out result) + && FileExists(filePath, out result)) + { + FileStream internalStream = null; + + try + { + internalStream = File.Open(filePath, FileMode.Open); + result = ResultBuilder.Success; + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, + "Unhandled error when attempting to create read FileStream." + + $"\n.path={filePath}" + $"\n.Exception:{e.Message}"); + + internalStream = null; + result = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeRead); + } + + fileStream = new FileStreamWrapper(internalStream); + } + + Logger.Log(LogLevel.Verbose, + $"Create read FileStream: {filePath} - Result: [{result.code}]"); + + return fileStream; + } + + /// Creates a FileStream for the purposes of writing. + public static ModIOFileStream OpenWriteStream(string filePath, out Result result) + { + ModIOFileStream fileStream = null; + result = ResultBuilder.Unknown; + + if(IsPathValid(filePath, out result) + && TryCreateParentDirectory(filePath, out result)) + { + FileStream internalStream = null; + + try + { + internalStream = File.Open(filePath, FileMode.Create); + result = ResultBuilder.Success; + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, + "Unhandled error when attempting to create write FileStream." + + $"\n.path={filePath}" + $"\n.Exception:{e.Message}"); + + internalStream = null; + result = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeCreated); + } + + fileStream = new FileStreamWrapper(internalStream); + } + + Logger.Log(LogLevel.Verbose, + $"Create write FileStream: {filePath} - Result: [{result.code}]"); + + return fileStream; + } + + /// Reads a file. + public static async Task> ReadFileAsync(string filePath) + { + byte[] data = null; + Result result; + + // If the file we wish to open is already open we return + if(currentlyOpenFiles.Contains(filePath)) + { + return ResultAnd.Create(ResultBuilder.Create(ResultCode.IO_AccessDenied), data); + } + + // add this filepath to a table of all currently open files + currentlyOpenFiles.Add(filePath); + + if(IsPathValid(filePath, out result) + && DoesFileExist(filePath, out result)) + { + try + { + using(var sourceStream = File.Open(filePath, FileMode.Open)) + { + data = new byte[sourceStream.Length]; + var pos = await sourceStream.ReadAsync(data, 0, (int)sourceStream.Length); + } + + result = ResultBuilder.Success; + } + catch(Exception e) // TODO(@jackson): Handle UnauthorizedAccessException + { + Logger.Log(LogLevel.Warning, "Unhandled error when attempting to read the file." + + $"\n.path={filePath}" + + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeRead); + } + } + + Logger.Log( + LogLevel.Verbose, + $"Read file: {filePath} - Result: [{result.code}] - Data: {(data == null ? "NULL" : data.Length+"B")}"); + + // now that we are done with this file, remove it from the table of open files + currentlyOpenFiles.Remove(filePath); + + return ResultAnd.Create(result, data); + } + + /// Reads a file. + public static ResultAnd ReadFile(string filePath) + { + byte[] data = null; + + // If the file we wish to open is already open we return + if(currentlyOpenFiles.Contains(filePath)) + { + return ResultAnd.Create(ResultBuilder.Create(ResultCode.IO_AccessDenied), data); + } + + // add this filepath to a table of all currently open files + currentlyOpenFiles.Add(filePath); + + if(IsPathValid(filePath, out Result result) + && DoesFileExist(filePath, out result)) + { + try + { + using(var sourceStream = File.Open(filePath, FileMode.Open)) + { + data = new byte[sourceStream.Length]; + var pos = sourceStream.Read(data, 0, (int)sourceStream.Length); + } + + result = ResultBuilder.Success; + } + catch(Exception e) // TODO(@jackson): Handle UnauthorizedAccessException + { + Logger.Log(LogLevel.Warning, "Unhandled error when attempting to read the file." + + $"\n.path={filePath}" + + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeRead); + } + } + + Logger.Log( + LogLevel.Verbose, + $"Read file: {filePath} - Result: [{result.code}] - Data: {(data == null ? "NULL" : data.Length+"B")}"); + + // now that we are done with this file, remove it from the table of open files + currentlyOpenFiles.Remove(filePath); + + return ResultAnd.Create(result, data); + } + + /// Writes a file. + public static async Task WriteFileAsync(string filePath, byte[] data) + { + Result result = ResultBuilder.Success; + + if(data == null) + { + Logger.Log(LogLevel.Verbose, + "Was not given any data to write. Cancelling write operation." + + $"\n.path={filePath}"); + return result; + } + + // NOTE @Jackson I'm not a huge fan of this but would like to hear ideas for a better solution + // If the file we wish to open is already open we return + if(currentlyOpenFiles.Contains(filePath)) + { + return ResultBuilder.Create(ResultCode.IO_AccessDenied); + } + + // add this filepath to a table of all currently open files + currentlyOpenFiles.Add(filePath); + + if(IsPathValid(filePath, out result) + && TryCreateParentDirectory(filePath, out result)) + { + try + { + using(var fileStream = File.Open(filePath, FileMode.Create)) + { + fileStream.Seek(0, SeekOrigin.End); + await fileStream.WriteAsync(data, 0, data.Length); + } + + result = ResultBuilder.Success; + } + catch(Exception e) + { + Logger.Log(LogLevel.Error, + "Unhandled error when attempting to write the file." + + $"\n.path={filePath}" + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeWritten); + } + } + + Logger.Log(LogLevel.Verbose, $"Write file: {filePath} - Result: [{result.code}]"); + + // now that we are done with this file, remove it from the table of open files + currentlyOpenFiles.Remove(filePath); + + return result; + } + + /// Writes a file. + public static Result WriteFile(string filePath, byte[] data) + { + Result result = ResultBuilder.Success; + + if(data == null) + { + Logger.Log(LogLevel.Verbose, + "Was not given any data to write. Cancelling write operation." + + $"\n.path={filePath}"); + return result; + } + + // NOTE @Jackson I'm not a huge fan of this but would like to hear ideas for a better solution + // If the file we wish to open is already open we return + if(currentlyOpenFiles.Contains(filePath)) + { + return ResultBuilder.Create(ResultCode.IO_AccessDenied); + } + + // add this filepath to a table of all currently open files + currentlyOpenFiles.Add(filePath); + + if(IsPathValid(filePath, out result) + && TryCreateParentDirectory(filePath, out result)) + { + try + { + using(var fileStream = File.Open(filePath, FileMode.Create)) + { + fileStream.Seek(0, SeekOrigin.End); + fileStream.Write(data, 0, data.Length); + } + + result = ResultBuilder.Success; + } + catch(Exception e) + { + Logger.Log(LogLevel.Error, + "Unhandled error when attempting to write the file." + + $"\n.path={filePath}" + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_FileCouldNotBeWritten); + } + } + + Logger.Log(LogLevel.Verbose, $"Write file: {filePath} - Result: [{result.code}]"); + + // now that we are done with this file, remove it from the table of open files + currentlyOpenFiles.Remove(filePath); + + return result; + } + + /// Creates a directory. + public static Result CreateDirectory(string directoryPath) + { + Result result; + + if(IsPathValid(directoryPath, out result) + && !DirectoryExists(directoryPath)) + { + try + { + Directory.CreateDirectory(directoryPath); + result = ResultBuilder.Success; + } + catch(UnauthorizedAccessException e) + { + // UnauthorizedAccessException + // The caller does not have the required permission. + + Logger.Log(LogLevel.Verbose, + "UnauthorizedAccessException when attempting to create directory." + + $"\n.path={directoryPath}" + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_AccessDenied); + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, + "Unhandled error when attempting to create the directory." + + $"\n.path={directoryPath}" + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_DirectoryCouldNotBeCreated); + } + } + + return result; + } + + /// Deletes a directory and its contents recursively. + public static Result DeleteDirectory(string path) + { + Result result; + + if(IsPathValid(path, out result)) + { + try + { + if(Directory.Exists(path)) + { + Directory.Delete(path, true); + } + + result = ResultBuilder.Success; + } + catch(IOException e) + { + // IOException + // A file with the same name and location specified by path exists. + // -or- + // The directory specified by path is read-only, or recursive is false and path + // is not an empty directory. + // -or- + // The directory is the application's current working directory. + // -or- + // The directory contains a read-only file. + // -or- + // The directory is being used by another process. + + Logger.Log(LogLevel.Verbose, "IOException when attempting to delete directory." + + $"\n.path={path}" + + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_AccessDenied); + } + catch(UnauthorizedAccessException e) + { + // UnauthorizedAccessException + // The caller does not have the required permission. + + Logger.Log(LogLevel.Verbose, + "UnauthorizedAccessException when attempting to delete directory." + + $"\n.path={path}" + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_AccessDenied); + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, + "Unhandled error when attempting to create the directory." + + $"\n.path={path}" + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_DirectoryCouldNotBeDeleted); + } + } + + return result; + } + + public static Result MoveDirectory(string directoryPath, string newDirectoryPath) + { + Result result = default; + + try + { + Directory.Move(directoryPath, newDirectoryPath); + } + catch(IOException e) + { + // IOException + // A file with the same name and location specified by path exists. + // -or- + // The directory specified by path is read-only, or recursive is false and path + // is not an empty directory. + // -or- + // The directory is the application's current working directory. + // -or- + // The directory contains a read-only file. + // -or- + // The directory is being used by another process. + + Logger.Log(LogLevel.Verbose, "IOException when attempting to move directory." + + $"\n.path={directoryPath}" + + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_AccessDenied); + } + catch(UnauthorizedAccessException e) + { + // UnauthorizedAccessException + // The caller does not have the required permission. + + Logger.Log(LogLevel.Verbose, + "UnauthorizedAccessException when attempting to move directory." + + $"\n.path={directoryPath}" + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_AccessDenied); + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, + "Unhandled error when attempting to move directory." + + $"\n.path={directoryPath}" + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_DirectoryCouldNotBeDeleted); + } + + return result; + } + + #endregion // Operations + + #region Utility + + /// Checks that a file path is valid. + public static bool IsPathValid(string filePath, out Result result) + { + if(string.IsNullOrEmpty(filePath)) + { + result = ResultBuilder.Create(ResultCode.IO_FilePathInvalid); + return false; + } + + result = ResultBuilder.Success; + return true; + } + + /// Determines whether a file exists. + public static bool FileExists(string path, out Result result) + { + if(File.Exists(path)) + { + result = ResultBuilder.Success; + return true; + } + result = ResultBuilder.Create(ResultCode.IO_FileDoesNotExist); + return false; + } + + /// Gets the size and hash of a file. + public static ResultAnd<(long fileSize, string fileHash)> GetFileSizeAndHash( + string filePath) + { + long fileSize = -1; + string fileHash = null; + Result result; + + if(!IsPathValid(filePath, out result) + || !DoesFileExist(filePath, out result)) + { + return ResultAnd.Create(result, (fileSize, fileHash)); + } + + // get fileSize + try + { + fileSize = (new FileInfo(filePath)).Length; + } + catch(UnauthorizedAccessException e) + { + // UnauthorizedAccessException + // Access to fileName is denied. + + Logger.Log(LogLevel.Verbose, + "UnauthorizedAccessException when attempting to read file size." + + $"\n.path={filePath}" + $"\n.Exception:{e.Message}"); + + return ResultAnd.Create(ResultCode.IO_AccessDenied, (fileSize, fileHash)); + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, "Unhandled error when attempting to get file size." + + $"\n.path={filePath}" + + $"\n.Exception:{e.Message}"); + + return ResultAnd.Create(ResultCode.Unknown, (fileSize, fileHash)); + } + + // get hash + try + { + using(var stream = File.OpenRead(filePath)) + { + string hash = IOUtil.GenerateMD5(stream); + fileHash = hash; + } + } + catch(UnauthorizedAccessException e) + { + // UnauthorizedAccessException + // path specified a directory. + // -or- + // The caller does not have the required permission. + + Logger.Log(LogLevel.Verbose, + "UnauthorizedAccessException when attempting to generate MD5 Hash." + + $"\n.path={filePath}" + $"\n.Exception:{e.Message}"); + + return ResultAnd.Create(ResultCode.IO_AccessDenied, (fileSize, fileHash)); + } + catch(IOException e) + { + // IOException + // An I/O error occurred while opening the file. + + Logger.Log(LogLevel.Verbose, "IOException when attempting to generate MD5 Hash." + + $"\n.path={filePath}" + + $"\n.Exception:{e.Message}"); + + return ResultAnd.Create(ResultCode.IO_FileCouldNotBeRead, (fileSize, fileHash)); + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, "Unhandled error when attempting to get file hash." + + $"\n.path={filePath}" + + $"\n.Exception:{e.Message}"); + return ResultAnd.Create(ResultCode.Unknown, (fileSize, fileHash)); + } + + // success! + return ResultAnd.Create(ResultCode.Success, (fileSize, fileHash)); + } + + /// Checks for the existence of a directory. + public static bool DirectoryExists(string path) + { + return Directory.Exists(path); + } + + /// Determines whether a file exists. + public static bool DoesFileExist(string filePath, out Result result) + { + if(!File.Exists(filePath)) + { + result = ResultBuilder.Create(ResultCode.IO_FileDoesNotExist); + return false; + } + + result = ResultBuilder.Success; + return true; + } + + /// Attempts to create a parent directory. + public static bool TryCreateParentDirectory(string filePath, out Result result) + { + string dirToCreate = Path.GetDirectoryName(filePath); + if(Directory.Exists(dirToCreate)) + { + result = ResultBuilder.Success; + return true; + } + try + { + Directory.CreateDirectory(dirToCreate); + + result = ResultBuilder.Success; + return true; + } + catch(Exception exception) + { + Logger.Log( + LogLevel.Warning, + $"Unhandled directory creation exception was thrown.\n.dirToCreate={dirToCreate}\n.exception={exception.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_DirectoryCouldNotBeCreated); + return false; + } + } + + /// Lists all the files in the given directory recursively. + public static ResultAnd> ListAllFiles(string directoryPath) + { + const string AllFilesFilter = "*"; + + if(!Directory.Exists(directoryPath)) + { + return ResultAnd.Create>(ResultCode.IO_DirectoryDoesNotExist, null); + } + + try + { + // TODO(@jackson): Protect from infinite loops + // https://docs.microsoft.com/en-us/dotnet/api/system.io.searchoption?view=net-5.0#remarks + List fileList = new List(); + + foreach(string filePath in Directory.EnumerateFiles(directoryPath, AllFilesFilter, + SearchOption.AllDirectories)) + { + fileList.Add(filePath); + } + + return ResultAnd.Create(ResultCode.Success, fileList); + } + catch(PathTooLongException e) + { + // PathTooLongException + // The specified path, file name, or combined exceed the system-defined maximum + // length. + + Logger.Log(LogLevel.Error, + "PathTooLongException when attempting to list directory contents." + + $"\n.directoryPath={directoryPath}" + $"\n.Exception:{e.Message}"); + + return ResultAnd.Create>(ResultCode.IO_FilePathInvalid, null); + } + catch(SecurityException e) + { + // SecurityException + // The caller does not have the required permission. + + Logger.Log(LogLevel.Error, + "SecurityException when attempting to list directory contents." + + $"\n.directoryPath={directoryPath}" + $"\n.Exception:{e.Message}"); + + return ResultAnd.Create>(ResultCode.IO_AccessDenied, null); + } + catch(UnauthorizedAccessException e) + { + // UnauthorizedAccessException + // The caller does not have the required permission. + + Logger.Log(LogLevel.Error, + "UnauthorizedAccessException when attempting to list directory contents." + + $"\n.directoryPath={directoryPath}" + $"\n.Exception:{e.Message}"); + + return ResultAnd.Create>(ResultCode.IO_AccessDenied, null); + } + catch(Exception e) + { + // ArgumentException + // .NET Framework and .NET Core versions older than 2.1: path is a zero-length + // string, contains only white space, or contains invalid characters. You can query + // for invalid characters by using the GetInvalidPathChars() method. -or- + // searchPattern does not contain a valid pattern. + + // ArgumentNullException + // path is null. + // -or- + // searchPattern is null. + + // ArgumentOutOfRangeException + // searchOption is not a valid SearchOption value. + + // DirectoryNotFoundException + // path is invalid, such as referring to an unmapped drive. + + // IOException + // path is a file name. + + Logger.Log(LogLevel.Error, + "Unhandled Exception when attempting to list directory contents." + + $"\n.directoryPath={directoryPath}" + $"\n.Exception:{e.Message}"); + + return ResultAnd.Create>(ResultCode.IO_AccessDenied, null); + } + } + + #endregion // Utility + + #region Legacy + + // --- File Management --- + /// Deletes a file. + public static Result DeleteFileGetResult(string path) + { + return DeleteFile(path) + ? ResultBuilder.Success + : new Result() { code = ResultCode.IO_FileCouldNotBeDeleted }; + } + + public static bool DeleteFile(string path) + { + try + { + if(File.Exists(path)) + { + File.Delete(path); + } + + return true; + } + catch(Exception e) + { + string warningInfo = $"[mod.io] Failed to delete file.\nFile: {path}\n\n" + + $"Exception: {e}\n\n"; + + return false; + } + } + + /// Moves a file. + public static bool MoveFile(string source, string destination) + { + if(string.IsNullOrEmpty(source)) + { + Debug.Log("[mod.io] Failed to move file. source is NullOrEmpty."); + return false; + } + + if(string.IsNullOrEmpty(destination)) + { + Debug.Log("[mod.io] Failed to move file. destination is NullOrEmpty."); + return false; + } + + if(!DeleteFile(destination)) + { + return false; + } + + try + { + File.Move(source, destination); + + return true; + } + catch(Exception e) + { + string warningInfo = "Failed to move file." + "\nSource File: {source}" + + $"\nDestination: {destination}\n\n" + + $"Exception: {e}\n\n"; + // Debug.LogWarning(warningInfo + Utility.GenerateExceptionDebugString(e)); + + return false; + } + } + + /// Gets the size of a file. + public static Int64 GetFileSize(string path) + { + if(!File.Exists(path)) + { + return -1; + } + + try + { + var fileInfo = new FileInfo(path); + + return fileInfo.Length; + } + catch(Exception e) + { + string warningInfo = $"[mod.io] Failed to get file size.\nFile: {path}\n\nException {e}\n\n"; + // Debug.LogWarning(warningInfo + Utility.GenerateExceptionDebugString(e)); + + return -1; + } + } + + /// Gets the files at a location. + public static IList GetFiles(string path, string nameFilter, + bool recurseSubdirectories) + { + if(!Directory.Exists(path)) + { + return null; + } + + var searchOption = (recurseSubdirectories ? SearchOption.AllDirectories + : SearchOption.TopDirectoryOnly); + + if(nameFilter == null) + { + nameFilter = "*"; + } + + return Directory.GetFiles(path, nameFilter, searchOption); + } + + // --- Directory Management --- + /// Moves a directory. + // public static bool MoveDirectory(string source, string destination) + // { + // try + // { + // Directory.Move(source, destination); + // + // return true; + // } + // catch(Exception e) + // { + // string warningInfo = "[mod.io] Failed to move directory." + "\nSource Directory: " + // + $"{source}\nDestination: {destination}\n\n" + // + $"Exception: {e}"; + // // + Utility.GenerateExceptionDebugString(e)); + // // Debug.LogWarning(warningInfo + Utility.GenerateExceptionDebugString(e)); + // + // return false; + // } + // } + + /// Gets the sub-directories at a location. + public static IList GetDirectories(string path) + { + if(!Directory.Exists(path)) + { + return null; + } + + try + { + return Directory.GetDirectories(path); + } + catch(Exception e) + { + string warningInfo = + $"[mod.io] Failed to get directories.\nDirectory: {path}\n\n" + + $"Exception: {e}\n\n"; + + // Debug.LogWarning(warningInfo + Utility.GenerateExceptionDebugString(e)); + + return null; + } + } + +#endregion // Legacy + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Classes/SystemIOWrapper.cs.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/SystemIOWrapper.cs.meta new file mode 100644 index 0000000..493123b --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Classes/SystemIOWrapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 21611fcb13deb3e46a60df82e4bfc8b4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces.meta new file mode 100644 index 0000000..db0ba9a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8a54e4436820ddf47a8d7de741ed94ff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IDataService.cs b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IDataService.cs new file mode 100644 index 0000000..b23db0e --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IDataService.cs @@ -0,0 +1,61 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace ModIO.Implementation.Platform +{ + /// Interface for the platform data service. + internal interface IDataService + { + // --- Data --- + /// Root directory for the data service. + string RootDirectory { get; } + + // --- I/O Operations --- + /// Opens a file stream for reading. + ModIOFileStream OpenReadStream(string filePath, out Result result); + + /// Opens a file stream for writing. + ModIOFileStream OpenWriteStream(string filePath, out Result result); + + /// Reads an entire file asynchronously. + Task> ReadFileAsync(string filePath); + + /// Reads an entire file synchronously. + ResultAnd ReadFile(string filePath); + + /// Writes an entire file asynchronously. + Task WriteFileAsync(string filePath, byte[] data); + + /// Writes an entire file synchronously. + Result WriteFile(string filePath, byte[] data); + + // Task DeleteFileAsync(string filePath); + + /// Deletes a directory and its contents recursively. + Result DeleteDirectory(string directoryPath); + + /// Deletes a file at the given path. + Result DeleteFile(string filePath); + + /// Moves a directory to a new filepath (Can also be used to rename) + Result MoveDirectory(string directoryPath, string newDirectoryPath); + + bool TryCreateParentDirectory(string directoryPath); + + // --- Utility --- + /// Determines whether a file exists. + bool FileExists(string filePath); + + /// Gets the size and hash of a file. + ResultAnd<(long fileSize, string fileHash)> GetFileSizeAndHash(string filePath); + + /// Determines whether a directory exists. + bool DirectoryExists(string directoryPath); + + /// Lists all the files in the given directory recursively. + ResultAnd> ListAllFiles(string directoryPath); + + /// Gets the remaining amount of space available to write for this data service + Task IsThereEnoughDiskSpaceFor(long numberOfBytes); + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IDataService.cs.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IDataService.cs.meta new file mode 100644 index 0000000..06f11cd --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IDataService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da73494bb08aad040b427636962b3b11 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IPersistentDataService.cs b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IPersistentDataService.cs new file mode 100644 index 0000000..17cc920 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IPersistentDataService.cs @@ -0,0 +1,10 @@ +using System.Threading.Tasks; + +namespace ModIO.Implementation.Platform +{ + /// Interface for the persistent data operations. + internal interface IPersistentDataService : IDataService + { + Result Initialize(long gameId, BuildSettings settings); + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IPersistentDataService.cs.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IPersistentDataService.cs.meta new file mode 100644 index 0000000..bd0e6ae --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IPersistentDataService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6f011c63b98327547a6b568a5fc30275 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ITempDataService.cs b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ITempDataService.cs new file mode 100644 index 0000000..69fa34b --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ITempDataService.cs @@ -0,0 +1,10 @@ +using System.Threading.Tasks; + +namespace ModIO.Implementation.Platform +{ + /// Interface for the temp data operations. + internal interface ITempDataService : IDataService + { + Result Initialize(long gameId, BuildSettings settings); + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ITempDataService.cs.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ITempDataService.cs.meta new file mode 100644 index 0000000..ff975d3 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ITempDataService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b86e68c554b0f2a43b887950ed468464 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IUserDataService.cs b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IUserDataService.cs new file mode 100644 index 0000000..2ca9d76 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IUserDataService.cs @@ -0,0 +1,11 @@ +using System.Threading.Tasks; + +namespace ModIO.Implementation.Platform +{ + /// Interface for the user data operations. + internal interface IUserDataService : IDataService + { + Result Initialize(string userProfileIdentifier, long gameId, + BuildSettings settings); + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IUserDataService.cs.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IUserDataService.cs.meta new file mode 100644 index 0000000..c1b989a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/IUserDataService.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 910872d6e943384439c76849d99dd5fe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ModIOFileStream.cs b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ModIOFileStream.cs new file mode 100644 index 0000000..90a6c33 --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ModIOFileStream.cs @@ -0,0 +1,16 @@ +using System.Threading.Tasks; + +namespace ModIO.Implementation +{ + /// Stream implementation used in ModIO. + internal abstract class ModIOFileStream : System.IO.Stream + { + /// Gets the absolute path of the file opened in the stream. + public abstract string FilePath { get; } + + public abstract Task> ReadAllBytesAsync(); + public abstract ResultAnd ReadAllBytes(); + public abstract Task WriteAllBytesAsync(byte[] buffer); + public abstract Result WriteAllBytes(byte[] buffer); + } +} diff --git a/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ModIOFileStream.cs.meta b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ModIOFileStream.cs.meta new file mode 100644 index 0000000..e39c56a --- /dev/null +++ b/Runtime/ModIO.Implementation/Implementation.Platform/Interfaces/ModIOFileStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 50de2ad8a2082ca4f872c622a0a3b957 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Interfaces.meta b/Runtime/ModIO.Implementation/Interfaces.meta new file mode 100644 index 0000000..94b9903 --- /dev/null +++ b/Runtime/ModIO.Implementation/Interfaces.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb6622843b6d346a18292c516c7e7658 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Interfaces/IModIOZipOperation.cs b/Runtime/ModIO.Implementation/Interfaces/IModIOZipOperation.cs new file mode 100644 index 0000000..98b5507 --- /dev/null +++ b/Runtime/ModIO.Implementation/Interfaces/IModIOZipOperation.cs @@ -0,0 +1,11 @@ +using System; +using System.Threading.Tasks; + +namespace ModIO.Implementation +{ + internal interface IModIOZipOperation : IDisposable + { + Task GetOperation(); + void Cancel(); + } +} diff --git a/Runtime/ModIO.Implementation/Interfaces/IModIOZipOperation.cs.meta b/Runtime/ModIO.Implementation/Interfaces/IModIOZipOperation.cs.meta new file mode 100644 index 0000000..a75f9c4 --- /dev/null +++ b/Runtime/ModIO.Implementation/Interfaces/IModIOZipOperation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 26439b5e9a5364e72a4de144fd7bc335 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Statics.meta b/Runtime/ModIO.Implementation/Statics.meta new file mode 100644 index 0000000..65a8941 --- /dev/null +++ b/Runtime/ModIO.Implementation/Statics.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f66a732ae1901fa46b5d078bb27be1b4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Statics/DataStorage.cs b/Runtime/ModIO.Implementation/Statics/DataStorage.cs new file mode 100644 index 0000000..669c070 --- /dev/null +++ b/Runtime/ModIO.Implementation/Statics/DataStorage.cs @@ -0,0 +1,551 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using ModIO.Implementation.API.Objects; +using ModIO.Implementation.Platform; +using ModIO.Util; +using UnityEngine; + +namespace ModIO.Implementation +{ + /// Static interface for reading and writing files. + internal static class DataStorage + { + // TODO Revisit this later, as most of it's benefits are now met with the mutex. Maybe expand this to more generic tasks or for ModManagement + internal static TaskQueueRunner taskRunner = new TaskQueueRunner(1, true, PlatformConfiguration.SynchronizedDataJobs); + + static Mutex FileWriteMutex = new Mutex(); + + public static Mutex GetFileWriteMutex() => FileWriteMutex; + +#region Data Services + + /// Persistent data storage service. + public static IPersistentDataService persistent; + + /// User data storage service. + public static IUserDataService user; + + /// Temporary data storage service. + public static ITempDataService temp; + +#endregion // Data Services + +#region User IO + + const string UserDataFilePath = "user.json"; + + /// Writes the user data to disk. + public static async Task SaveUserDataAsync() + { + byte[] userDataJSON = IOUtil.GenerateUTF8JSONData(UserData.instance); + + return await user.WriteFileAsync($@"{user.RootDirectory}/{UserDataFilePath}", userDataJSON); + } + + /// Writes the user data to disk. + public static Result SaveUserData() + { + byte[] userDataJSON = IOUtil.GenerateUTF8JSONData(UserData.instance); + + return user.WriteFile($@"{user.RootDirectory}/{UserDataFilePath}", userDataJSON); + } + + /// Reads the user data from disk. + public static async Task LoadUserDataAsync() + { + var userDataReadTask = + await user.ReadFileAsync($@"{user.RootDirectory}/{UserDataFilePath}"); + Result result = userDataReadTask.result; + + if(result.Succeeded() + && IOUtil.TryParseUTF8JSONData(userDataReadTask.value, out UserData userData, out result)) + { + UserData.instance = userData; + } + + return result; + } + + /// Reads the user data from disk. + public static Result LoadUserData() + { + var userDataRead = user.ReadFile($@"{user.RootDirectory}/{UserDataFilePath}"); + + if(userDataRead.result.Succeeded() + && IOUtil.TryParseUTF8JSONData(userDataRead.value, out UserData userData, out userDataRead.result)) + { + UserData.instance = userData; + } + + return userDataRead.result; + } + +#endregion // User IO + +#region Mod Browsing + + /// Generates the file path for an image URL. + public static string GenerateImageCacheFilePath(string imageURL) + { + if(string.IsNullOrEmpty(imageURL)) + { + Logger.Log( + LogLevel.Verbose, + ":INTERNAL: Attempted to generate a file path for a NULL/Empty image URL."); + return null; + } + + // NOTE(@jackson): According to the following Blog post, the expected number of URLs + // required to generate a collision is 2^64 (2^37 is 137 billion) so MD5 seems totally + // fine. + // URL: https://blog.codinghorror.com/url-shortening-hashes-in-practice/ + + string filename = IOUtil.GenerateMD5(imageURL); + return $@"{temp.RootDirectory}/images/{filename}.png"; + } + + /// Stores an image to the temporary cache. + public static async Task StoreImage(string imageURL, Texture2D texture) + { + // - generate file path - + string filePath = GenerateImageCacheFilePath(imageURL); + if(filePath == null) + { + return ResultBuilder.Create(ResultCode.Internal_InvalidParameter); + } + + // - process image - + byte[] pngData = IOUtil.GeneratePNGData(texture); + if(pngData == null) + { + return ResultBuilder.Create(ResultCode.Internal_InvalidParameter); + } + + // - store - + Result result = await taskRunner.AddTask(TaskPriority.HIGH, 1, + async () => await temp.WriteFileAsync(filePath, pngData)); + + return result; + } + + /// Stores an image to the temporary cache. + public static Result DeleteStoredImage(string imageURL) + { + // - generate file path - + string filePath = GenerateImageCacheFilePath(imageURL); + if(filePath == null) + { + return ResultBuilder.Create(ResultCode.Internal_InvalidParameter); + } + + Result result = temp.DeleteFile(imageURL); + + return result; + } + + public static ResultAnd GetImageFileReadStream(string imageURL) + { + ModIOFileStream stream = temp.OpenReadStream(GenerateImageCacheFilePath(imageURL), out Result result); + return ResultAnd.Create(result, stream); + } + + public static ResultAnd GetImageFileWriteStream(string imageURL) + { + ModIOFileStream stream = temp.OpenWriteStream(GenerateImageCacheFilePath(imageURL), out Result result); + return ResultAnd.Create(result, stream); + } + + /// Attempts to retrieve an image from the temporary cache. + public static async Task> TryRetrieveImage(string imageURL) + { + // - generate file path - + string filePath = GenerateImageCacheFilePath(imageURL); + if(filePath == null) + { + return ResultAnd.Create(ResultCode.Internal_InvalidParameter, null); + } + + // - read - + ResultAnd readResult = await taskRunner.AddTask(TaskPriority.HIGH, 1, + async () => await temp.ReadFileAsync(filePath)); + + if(!readResult.result.Succeeded()) + { + return ResultAnd.Create(readResult.result, null); + } + + // - parse - + Result parseResult; + Texture2D texture; + + if(!IOUtil.TryParseImageData(readResult.value, out texture, out parseResult)) + { + return ResultAnd.Create(parseResult, null); + } + + // - success - + return ResultAnd.Create(ResultCode.Success, texture); + } + + /// Attempts to retrieve an image from the temporary cache. + public static async Task> TryRetrieveImageBytes(string imageURL) + { + // - generate file path - + string filePath = GenerateImageCacheFilePath(imageURL); + if(filePath == null) + { + return ResultAnd.Create(ResultCode.Internal_InvalidParameter, null); + } + + // - read - + ResultAnd readResult = await taskRunner.AddTask(TaskPriority.HIGH, 1, + async () => await temp.ReadFileAsync(filePath)); + + if(!readResult.result.Succeeded()) + { + return ResultAnd.Create(readResult.result, null); + } + + // - success - + return ResultAnd.Create(ResultCode.Success, readResult.value); + } + + #endregion // Mod Browsing + +#region Mod Management + + /// Generates the path for the extraction directory. + public static string GenerateExtractionDirectoryPath() + { + return $@"{persistent.RootDirectory}/installation"; + } + + /// Generates the path for an installation directory. + public static string GenerateInstallationDirectoryPath(long modId, long modfileId) + { + return $@"{persistent.RootDirectory}/mods/{modId}_{modfileId}"; + } + + // REVIEW @Jackson TODO Please implement (if this is how you'd use it) + /// Generates the path for an installation directory. + public static string GenerateModfileDetailsDirectoryPath(string directory) + { + Logger.Log(LogLevel.Verbose, "Not Implemented Yet"); + return directory; + } + + /// Generates the path for a modfile archive. + public static string GenerateModfileArchiveFilePath(long modId, long modfileId) + { + return $@"{temp.RootDirectory}/{modId}_{modfileId}.zip"; + } + + /// Tests if a mod installation directory exists. + public static bool TryGetInstallationDirectory(long modId, long modfileId, + out string directoryPath) + { + directoryPath = GenerateInstallationDirectoryPath(modId, modfileId); + return persistent.DirectoryExists(directoryPath); + } + + // REVIEW @Jackson TODO Please implement + /// Tests if a modfile details directory exists. + public static bool TryGetModfileDetailsDirectory(string directoryPath, + out string properDirectory) + { + properDirectory = GenerateModfileDetailsDirectoryPath(directoryPath); + return persistent.DirectoryExists(directoryPath); + } + + /// Tests to see if a modfile archive exists. + public static bool TryGetModfileArchive(long modId, long modfileId, out string filePath) + { + filePath = GenerateModfileArchiveFilePath(modId, modfileId); + return temp.FileExists(filePath); + } + + /// Attempts to delete a modfile archive. + public static bool TryDeleteModfileArchive(long modId, long modfileId, out Result result) + { + result = ResultBuilder.Success; + //path is a path to a file + var filePath = GenerateModfileArchiveFilePath(modId, modfileId); + if(temp.FileExists(filePath)) + { + result = temp.DeleteFile(filePath); + return result.Succeeded(); + } + + return true; + } + + /// Deletes the installation directory matching the given mod-modfile + /// pair. + public static bool TryDeleteInstalledMod(long modId, long modfileId, out Result result) + { + string directory = GenerateInstallationDirectoryPath(modId, modfileId); + + result = persistent.DeleteDirectory(directory); + + return (result.Succeeded()); + } + + /// Deletes the extraction directory. + public static void DeleteExtractionDirectory() + { + persistent.DeleteDirectory(GenerateExtractionDirectoryPath()); + } + + /// Moves extraction directory to the given installation location. + public static Result MakeInstallationFromExtractionDirectory(long modId, long modfileId) + { + string extractionDirPath = GenerateExtractionDirectoryPath(); + string installDirPath = GenerateInstallationDirectoryPath(modId, modfileId); + Result result; + + try + { + result = persistent.DeleteDirectory(installDirPath); + + if(result.Succeeded() + && persistent.TryCreateParentDirectory(installDirPath)) + { + result = persistent.MoveDirectory(extractionDirPath, installDirPath); + + if(!result.Succeeded()) + { + Logger.Log(LogLevel.Error, + "Failed to move the extracted files into the proper directory." + + $"\n.src={extractionDirPath}" + $"\n.dest={installDirPath}"); + } + else + { + Logger.Log(LogLevel.Verbose, + "Moved the extracted files into the proper directory." + + $"\n.src={extractionDirPath}" + $"\n.dest={installDirPath}"); + } + } + } + catch(Exception e) + { + Logger.Log(LogLevel.Warning, + "Unhandled error when attempting to rename the extraction directory." + + $"\n.src={extractionDirPath}" + $"\n.dest={installDirPath}" + + $"\n.Exception:{e.Message}"); + + result = ResultBuilder.Create(ResultCode.IO_DirectoryCouldNotBeMoved); + } + + return result; + } + + /// Tests to see if a modfile archive exists and matches the given info. + public static ResultAnd GetModfileArchivePathIfValid( + long modId, long modfileId, long expectedSize, string expectedHash) + { + string filePath = GenerateModfileArchiveFilePath(modId, modfileId); + + ResultAnd<(long fileSize, string fileHash)> sizeAndHashResult = + temp.GetFileSizeAndHash(filePath); + + if(!sizeAndHashResult.result.Succeeded()) + { + return ResultAnd.Create(sizeAndHashResult.result, null); + } + + if(expectedSize != sizeAndHashResult.value.fileSize) + { + return ResultAnd.Create(ResultCode.Internal_FileSizeMismatch, null); + } + + if(expectedHash != sizeAndHashResult.value.fileHash) + { + return ResultAnd.Create(ResultCode.Internal_FileHashMismatch, null); + } + + return ResultAnd.Create(ResultBuilder.Success, filePath); + } + + /// Generates the system registry path. + public static string GenerateSystemRegistryFilePath() + { + return $@"{persistent.RootDirectory}/state.json"; + } + + /// Writes the ModCollectionRegistry to disk. + public static async Task SaveSystemRegistry(ModCollectionRegistry registry) + { + // TODO For some platform implementations, check build settings, and create a cooldown/batching feature if required + string filePath = GenerateSystemRegistryFilePath(); + byte[] data = IOUtil.GenerateUTF8JSONData(registry); + + return await taskRunner.AddTask(TaskPriority.HIGH, 1, + async () => await persistent.WriteFileAsync(filePath, data)); + } + + /// Reads the ModCollectionRegistry from disk. + public static async Task> LoadSystemRegistryAsync() + { + string filePath = GenerateSystemRegistryFilePath(); + + if(!persistent.FileExists(filePath)) + { + // Registry hasn't been created yet, returning new object + return ResultAnd.Create(ResultBuilder.Success, new ModCollectionRegistry()); + } + + ResultAnd readResult = await persistent.ReadFileAsync(filePath); + + Result result = readResult.result; + ModCollectionRegistry registry = null; + + if(result.Succeeded()) + { + IOUtil.TryParseUTF8JSONData(readResult.value, out registry, out result); + } + + return ResultAnd.Create(result, registry); + } + + /// Reads the ModCollectionRegistry from disk. + public static ResultAnd LoadSystemRegistry() + { + string filePath = GenerateSystemRegistryFilePath(); + + if(!persistent.FileExists(filePath)) + { + // Registry hasn't been created yet, returning new object + return ResultAnd.Create(ResultBuilder.Success, new ModCollectionRegistry()); + } + + ResultAnd readResult = persistent.ReadFile(filePath); + + Result result = readResult.result; + ModCollectionRegistry registry = null; + + if(result.Succeeded()) + { + IOUtil.TryParseUTF8JSONData(readResult.value, out registry, out result); + } + + return ResultAnd.Create(result, registry); + } + + public static async Task SaveGameTags(GameTagOptionObject[] gameTags) + { + await Task.Delay(1); + + // TODO @Jackson + Logger.Log(LogLevel.Verbose, "Not Implemented Yet"); + return ResultBuilder.Success; + } + + public static ModIOFileStream OpenArchiveReadStream(string filePath, + out Result result) + { + return temp.OpenReadStream(filePath, out result); + } + + /// Opens an archive read stream. + public static ModIOFileStream OpenArchiveReadStream(long modId, long modfileId, + out Result result) + { + string filePath = GenerateModfileArchiveFilePath(modId, modfileId); + return OpenArchiveReadStream(filePath, out result); + } + + /// Opens an archive output stream. + public static ModIOFileStream OpenArchiveEntryOutputStream(string relativePath, + out Result result) + { + string absPath = $@"{GenerateExtractionDirectoryPath()}/{relativePath}"; + return persistent.OpenWriteStream(absPath, out result); + } + + /// Creates a modfile download output stream. + public static ModIOFileStream CreateArchiveDownloadStream(string absolutePath, + out Result result) + { + return temp.OpenWriteStream(absolutePath, out result); + } + + /// + /// Recursively iterates through the directory and creates file streams for each file found. + /// + /// + /// This function creates read-only streams and cannot be used to create write streams. + /// + public static IEnumerable> IterateFilesInDirectory( + string directoryPath) + { + IDataService dataService = persistent; + +#if UNITY_EDITOR + // // Note from Steve: I dont see what the point of this is? + // EditorDataService pds = (EditorDataService)DataStorage.persistent; + // EditorDataService tds = (EditorDataService)DataStorage.temp; + // EditorDataService uds = (EditorDataService)DataStorage.user; + // + // if(pds.CanHandlePath(directoryPath)) + // { + // dataService = pds; + // } + // else if(tds.CanHandlePath(directoryPath)) + // { + // dataService = tds; + // } + // else if(uds.CanHandlePath(directoryPath)) + // { + // dataService = uds; + // } + dataService = persistent; +#elif UNITY_STANDALONE || UNITY_GAMECORE + dataService = DataStorage.persistent; +#endif // UNITY_EDITOR + + List fileList = null; + uint resultCode = (dataService != null ? ResultCode.Success + : ResultCode.IO_DataServiceForPathNotFound); + + if(resultCode == ResultCode.Success) + { + ResultAnd> filesResult = dataService.ListAllFiles(directoryPath); + resultCode = filesResult.result.code; + fileList = filesResult.value; + // Logger.Log(LogLevel.Error, $"Failed list all files. Result: + // [{filesResult.result.code};{filesResult.result.code_api}]"); + } + + if(resultCode == ResultCode.Success) + { + Result result; + foreach(string filePath in fileList) + { + ModIOFileStream stream = dataService.OpenReadStream(filePath, out result); + if(result.Succeeded()) + { + yield return ResultAnd.Create(result, stream); + } + else + { + Logger.Log( + LogLevel.Error, + $"Failed open stream. Result: [{result.code};{result.code_api}]"); + resultCode = result.code; + break; + } + } + } + + if(resultCode != ResultCode.Success) + { + yield return ResultAnd.Create( + ResultCode.IO_DataServiceForPathNotFound, null); + } + } + + +#endregion // Mod Management + } +} diff --git a/Runtime/ModIO.Implementation/Statics/DataStorage.cs.meta b/Runtime/ModIO.Implementation/Statics/DataStorage.cs.meta new file mode 100644 index 0000000..4599201 --- /dev/null +++ b/Runtime/ModIO.Implementation/Statics/DataStorage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64a6f4691705c764fabc1c11728b4d45 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Statics/FilterUtil.cs b/Runtime/ModIO.Implementation/Statics/FilterUtil.cs new file mode 100644 index 0000000..7bb2b42 --- /dev/null +++ b/Runtime/ModIO.Implementation/Statics/FilterUtil.cs @@ -0,0 +1,86 @@ +using ModIO.Implementation.API.Requests; + +namespace ModIO.Implementation +{ + /// + /// Filter Utility methods + /// + internal static class FilterUtil + { + public static string ConvertToURL(SearchFilter searchFilter) + { + // TODO change this to a StringBuilder + string url = string.Empty; + string ascendingOrDescending = + searchFilter.isSortAscending ? Filtering.Ascending : Filtering.Descending; + // Set Filtering Order + switch(searchFilter.sortBy) + { + case SortModsBy.Name: + url += $"&{ascendingOrDescending}name"; + break; + case SortModsBy.Rating: + url += $"&{ascendingOrDescending}rating"; + break; + case SortModsBy.Popular: + url += $"&{ascendingOrDescending}popular"; + break; + case SortModsBy.Downloads: + url += $"&{ascendingOrDescending}downloads"; + break; + case SortModsBy.Subscribers: + url += $"&{ascendingOrDescending}subscribers"; + break; + case SortModsBy.DateSubmitted: + url += $"&{ascendingOrDescending}id"; + break; + } + // Add Search Phrases + foreach(string phrase in searchFilter.searchPhrases) + { + if(!string.IsNullOrWhiteSpace(phrase)) + { + url += $"&{Filtering.FullTextSearch}{phrase}"; + } + } + // add tags to filter + if(searchFilter.tags.Count > 0) + { + url += "&tags="; + foreach(string tag in searchFilter.tags) + { + url += $"{tag},"; + } + url = url.Trim(','); + } + // add users we are looking for + if(searchFilter.users.Count > 0) + { + url += "&submitted_by="; + foreach(long user in searchFilter.users) + { + url += $"{user},"; + } + url = url.Trim(','); + } + + return url; + } + + public static string AddPagination(SearchFilter filter, string url) + { + // Set Pagination + int limit = 100; + int offset = filter.pageIndex * filter.pageSize; + + url += $"&{Filtering.Limit}{limit}&{Filtering.Offset}{offset}"; + + return url; + } + + public static string LastEntryPagination() + { + return $"&{Filtering.Descending}id&{Filtering.Limit}{1}&{Filtering.Offset}{0}"; + } + } +} diff --git a/Runtime/ModIO.Implementation/Statics/FilterUtil.cs.meta b/Runtime/ModIO.Implementation/Statics/FilterUtil.cs.meta new file mode 100644 index 0000000..de029d8 --- /dev/null +++ b/Runtime/ModIO.Implementation/Statics/FilterUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 84c2b84facb224d8b810215ad7787827 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/Statics/IOUtil.cs b/Runtime/ModIO.Implementation/Statics/IOUtil.cs new file mode 100644 index 0000000..b947dde --- /dev/null +++ b/Runtime/ModIO.Implementation/Statics/IOUtil.cs @@ -0,0 +1,205 @@ +using System; +using System.IO; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; + +using Texture2D = UnityEngine.Texture2D; +using ImageConversion = UnityEngine.ImageConversion; + +namespace ModIO.Implementation +{ + /// Implements utility functions for working with IO data. + internal static class IOUtil + { + /// Attempts to parse the data of a JSON file. + public static bool TryParseUTF8JSONData(byte[] data, out T jsonObject, out Result result) + { + if(data != null) + { + try + { + string dataString = Encoding.UTF8.GetString(data); + jsonObject = JsonConvert.DeserializeObject(dataString); + result = ResultBuilder.Success; + return true; + } + catch(Exception e) + { + Logger.Log(LogLevel.Error, $"Failed to deserialize: {e.Message}"); + } + } + + jsonObject = default(T); + result = ResultBuilder.Create(ResultCode.Internal_FailedToDeserializeObject); + return false; + } + + /// Generates the byte array for a JSON representation. + public static byte[] GenerateUTF8JSONData(T jsonObject) + { + byte[] data = null; + + try + { + string dataString = JsonConvert.SerializeObject(jsonObject); + data = Encoding.UTF8.GetBytes(dataString); + } + catch (Exception e) + { + Logger.Log(LogLevel.Error, $"Failed to serialize jsonObject. Exception: {e.Message}"); + data = null; + } + + return data; + } + + /// Parse PNG/JPG data as image. + public static bool TryParseImageData(byte[] data, out Texture2D texture, out Result result) + { + if(data == null || data.Length == 0) + { + result = ResultBuilder.Create(ResultCode.Internal_InvalidParameter); + texture = null; + + Logger.Log(LogLevel.Verbose, + ":INTERNAL: Attempted to parse image from NULL/0-length buffer."); + } + else + { + texture = new Texture2D(0, 0); + + bool success = ImageConversion.LoadImage(texture, data, false); + + if(success) + { + result = ResultBuilder.Success; + } + else + { + result = ResultBuilder.Create(ResultCode.Internal_InvalidParameter); + texture = null; + + Logger.Log(LogLevel.Verbose, ":INTERNAL: Failed to parse image data."); + } + } + + return (result.Succeeded()); + } + + /// Encodes the texture as PNG data. + public static byte[] GeneratePNGData(Texture2D texture) + { + byte[] data = null; + + if(texture == null) + { + data = null; + + Logger.Log(LogLevel.Verbose, + ":INTERNAL: Attempted to generate PNG data for NULL texture."); + } + else + { + data = ImageConversion.EncodeToPNG(texture); + + if(data == null) + { + Logger.Log(LogLevel.Verbose, + ":INTERNAL: Failed to encode texture as PNG data."); + } + } + + return data; + } + + /// Generates an MD5 hash for a given byte array. + public static string GenerateMD5(Stream data) + { + using(var md5 = System.Security.Cryptography.MD5.Create()) + { + byte[] hash = md5.ComputeHash(data); + return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant(); + } + } + + /// Generates an MD5 hash for a given byte array. + public static string GenerateMD5(byte[] data) + { + using(var md5 = System.Security.Cryptography.MD5.Create()) + { + byte[] hash = md5.ComputeHash(data); + return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant(); + } + } + + /// Generates an MD5 hash from a given stream. + public static string GenerateArchiveMD5(string filepath) + { + string fileHash = string.Empty; + + using(var stream = DataStorage.OpenArchiveReadStream(filepath, out Result result)) + { + if(!result.Succeeded()) + { + return string.Empty; + } + fileHash = GenerateMD5(stream); + } + return fileHash; + } + + /// Generates an MD5 hash for a given stream. + public static Result GenerateMD5(Stream stream, out string MD5) + { + using(var md5 = System.Security.Cryptography.MD5.Create()) + { + byte[] hash = md5.ComputeHash(stream); + string hashString = BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant(); + MD5 = hashString; + return ResultBuilder.Success; + } + } + + /// Generates an MD5 hash for a given string. + public static string GenerateMD5(string text) + { + return IOUtil.GenerateMD5(Encoding.UTF8.GetBytes(text)); + } + + internal static async Task GetFileHashFromFilePath_md5(string filepath) + { + byte[] bytes = await IOUtil.GetRawBytesFromFile(filepath); + + return GenerateMD5(bytes); + } + + // REVIEW @Jackson I need this function, should it go here? + /// + /// Uses an IO operation to get the raw bytes of a file and returns it as a byte[] + /// + internal static async Task GetRawBytesFromFile(string filepath) + { + await Task.Delay(1); + throw new NotImplementedException(); + } + + internal static string CleanFileNameForInvalidCharacters(string filename) + { + // replace spaces with dashes + string cleanedName = filename.Replace(" ", "-"); + + // trim - and . from ends of string + char[] invalidToTrim = {'-','.'}; + cleanedName = cleanedName.Trim(invalidToTrim); + + // completely remove any invalid characters + foreach(char c in Path.GetInvalidFileNameChars()) + { + cleanedName = cleanedName.Replace(c.ToString(), ""); + } + + return cleanedName; + } + } +} diff --git a/Runtime/ModIO.Implementation/Statics/IOUtil.cs.meta b/Runtime/ModIO.Implementation/Statics/IOUtil.cs.meta new file mode 100644 index 0000000..d366ceb --- /dev/null +++ b/Runtime/ModIO.Implementation/Statics/IOUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b042b07551ea0a45a533cbced6805bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIO.Implementation/TestAssemblyHelper.cs b/Runtime/ModIO.Implementation/TestAssemblyHelper.cs new file mode 100644 index 0000000..de44b64 --- /dev/null +++ b/Runtime/ModIO.Implementation/TestAssemblyHelper.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly:InternalsVisibleTo("Unity.ModIO.Tests")] diff --git a/Runtime/ModIO.Implementation/TestAssemblyHelper.cs.meta b/Runtime/ModIO.Implementation/TestAssemblyHelper.cs.meta new file mode 100644 index 0000000..7132601 --- /dev/null +++ b/Runtime/ModIO.Implementation/TestAssemblyHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f460ab1a245ec53468ba45f8fed05ecd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIOUnity.cs b/Runtime/ModIOUnity.cs new file mode 100644 index 0000000..3d831ae --- /dev/null +++ b/Runtime/ModIOUnity.cs @@ -0,0 +1,2140 @@ +using ModIO.Implementation; +using System; +using JetBrains.Annotations; +using UnityEngine; +using ModIO.Implementation.API.Objects; + +#pragma warning disable 4014 // Ignore warnings about calling async functions from non-async code + +namespace ModIO +{ + + /// Main interface for the mod.io Unity plugin. + public static class ModIOUnity + { +#region Initialization and Maintenance + + /// + /// You can use this to quickly identify whether or not the plugin has been initialized. + /// + /// true if the plugin is initialized + /// + /// void Example() + /// { + /// if (ModIOUnity.IsInitialized()) + /// { + /// Debug.Log("The plugin is initialized"); + /// } + /// else + /// { + /// Debug.Log("The plugin is not initialized"); + /// } + /// } + /// + public static bool IsInitialized() + { + return ModIOUnityImplementation.isInitialized; + } + + /// + /// Assigns the logging delegate the plugin uses to output log messages that otherwise go to + /// UnityEngine.Debug.Log(string) + /// + /// + /// If you don't wish to see [mod.io] logs appearing in the Unity console you can set your + /// own delegate for handling logs and ignore them or display them elsewhere. + /// + /// The delegate for receiving log messages + /// + /// + /// + /// void Example() + /// { + /// // Send logs to MyLoggingDelegate instead of Debug.Log + /// ModIOUnity.SetLoggingDelegate(MyLoggingDelegate); + /// } + /// + /// public void MyLoggingDelegate(LogLevel logLevel, string logMessage) + /// { + /// // Handle the log entry + /// if (logLevel == LogLevel.Error) + /// { + /// Debug.Log("We received an error with message: " + logMessage); + /// } + /// } + /// + public static void SetLoggingDelegate(LogMessageDelegate loggingDelegate) + { + ModIOUnityImplementation.SetLoggingDelegate(loggingDelegate); + } + + /// + /// Initializes the Plugin using the provided settings for a specified user. Loads the + /// local state of mods installed on the system as well as relevant mods to the user. Loads the + /// state of mods installed on the system as well as the set of mods the + /// specified user has installed on this device. + /// + /// Name of the directory to store the local profile's data + /// (unrelated to the authenticated user) + /// Data used by the plugin to connect with the mod.io + /// service. + /// Data used by the plugin to interact with the + /// platform. + /// Callback to invoke once the initialization is complete. + /// + /// + /// + /// + /// + /// + /// void Example() + /// { + /// // Setup a ServerSettings struct + /// ServerSettings serverSettings = new ServerSettings(); + /// serverSettings.serverURL = "https://api.test.mod.io/v1"; + /// serverSettings.gameId = 1234; + /// serverSettings.gameKey = "1234567890abcdefghijklmnop"; + /// + /// // Setup a BuildSettings struct + /// BuildSettings buildSettings = new BuildSettings(); + /// buildSettings.logLevel = LogLevel.Verbose; + /// buildSettings.userPortal = UserPortal.None; + /// buildSettings.requestCacheLimitKB = 0; // No limit + /// + /// ModIOUnity.InitializeForUser("ExampleUser", serverSettings, buildSettings, InitializationCallback); + /// } + /// + /// void InitializationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Initialized plugin"); + /// } + /// else + /// { + /// Debug.Log("Failed to initialize plugin"); + /// } + /// } + /// + public static Result InitializeForUser(string userProfileIdentifier, + ServerSettings serverSettings, + BuildSettings buildSettings) + { + return ModIOUnityImplementation.InitializeForUser(userProfileIdentifier, serverSettings, buildSettings); + } + + /// + /// Initializes the Plugin using the provided settings for a specified user. Loads the + /// local state of mods installed on the system as well as relevant mods to the user. Loads the + /// state of mods installed on the system as well as the set of mods the + /// specified user has installed on this device. + /// + /// Name of the directory to store the user's data + /// in. + /// Callback to invoke once the initialization is complete. + /// + /// + /// + /// void Example() + /// { + /// ModIOUnity.InitializeForUser("ExampleUser", InitializationCallback); + /// } + /// + /// void InitializationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Initialized plugin"); + /// } + /// else + /// { + /// Debug.Log("Failed to initialize plugin"); + /// { + /// } + /// + public static Result InitializeForUser(string userProfileIdentifier) + { + return ModIOUnityImplementation.InitializeForUser(userProfileIdentifier); + } + + /// + /// Cancels any running public operations, frees plugin resources, and invokes + /// any pending callbacks with a cancelled result code. + /// + /// + /// Callback results invoked during a shutdown operation can be checked with + /// Result.IsCancelled() + /// + /// + /// + /// void Example() + /// { + /// ModIOUnity.Shutdown(ShutdownCallback); + /// } + /// + /// void ShutdownCallback() + /// { + /// Debug.Log("Finished shutting down the ModIO Plugin"); + /// } + /// + public static void Shutdown(Action shutdownComplete) + { + ModIOUnityImplementation.Shutdown(shutdownComplete); + } + +#endregion // Initialization and Maintenance + +#region Authentication + + /// + /// Sends an email with a security code to the specified Email Address. The security code + /// is then used to Authenticate the user session using ModIOUnity.SubmitEmailSecurityCode() + /// + /// + /// The callback will return a Result object. + /// If the email is successfully sent Result.Succeeded() will equal true. + /// If you haven't Initialized the plugin then Result.IsInitializationError() will equal + /// true. If the string provided for the emailaddress is not .NET compliant + /// Result.IsAuthenticationError() will equal true. + /// + /// the Email Address to send the security code to, eg "JohnDoe@gmail.com" + /// Callback to invoke once the operation is complete + /// + /// + /// + /// + /// void Example() + /// { + /// ModIOUnity.RequestAuthenticationEmail("johndoe@gmail.com", RequestAuthenticationCallback); + /// } + /// + /// void RequestAuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Succeeded to send security code"); + /// } + /// else + /// { + /// Debug.Log("Failed to send security code to that email address"); + /// } + /// } + /// + public static void RequestAuthenticationEmail(string emailaddress, Action callback) + { + ModIOUnityImplementation.RequestEmailAuthToken(emailaddress, callback); + } + + /// + /// Attempts to Authenticate the current session by submitting a security code received by + /// email from ModIOUnity.RequestAuthenticationEmail() + /// + /// + /// It is intended that this function is used after ModIOUnity.RequestAuthenticationEmail() + /// is performed successfully. + /// + /// The security code received from an authentication email + /// Callback to invoke once the operation is complete + /// + /// + /// + /// + /// void Example(string userSecurityCode) + /// { + /// ModIOUnity.SubmitEmailSecurityCode(userSecurityCode, SubmitCodeCallback); + /// } + /// + /// void SubmitCodeCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("You have successfully authenticated the user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate the user"); + /// } + /// } + /// + public static void SubmitEmailSecurityCode(string securityCode, Action callback) + { + ModIOUnityImplementation.SubmitEmailSecurityCode(securityCode, callback); + } + + /// + /// This retrieves the terms of use text to be shown to the user to accept/deny before + /// authenticating their account via a third party provider, eg steam or google. + /// + /// + /// If the callback succeeds it will also provide a TermsOfUse struct that contains a + /// TermsHash struct which you will need to provide when calling a third party + /// authentication method such as ModIOUnity.AuthenticateUserViaSteam() + /// + /// The provider you intend to use for authentication, + /// eg steam, google etc. (You dont need to display terms of use to the user if they are + /// authenticating via email security code) + /// Callback to invoke once the operation is complete containing a + /// result and a hash code to use for authentication via third party providers. + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// void Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + public static void GetTermsOfUse(Action> callback) + { + ModIOUnityImplementation.GetTermsOfUse(callback); + } + + /// + /// Attempts to authenticate a user via the steam API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's steam token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// void GetTermsOfUse_Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// void Authenticate_Example() + /// { + /// ModIOUnity.AuthenticateUserViaSteam(steamToken, "johndoe@gmail.com", modIOTermsOfUse.hash, AuthenticationCallback); + /// } + /// + /// void AuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static void AuthenticateUserViaSteam(string steamToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser( + steamToken, AuthenticationServiceProvider.Steam, emailAddress, hash, null, null, + null, 0, callback); + } + + /// + /// Attempts to authenticate a user via the epic API. + /// + /// the user's epic token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// + public static void AuthenticateUserViaEpic(string epicToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser( + epicToken, AuthenticationServiceProvider.Epic, emailAddress, hash, null, null, + null, 0, callback); + } + + /// + /// Attempts to authenticate a user via the GOG API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's gog token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// void GetTermsOfUse_Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// void Authenticate_Example() + /// { + /// ModIOUnity.AuthenticateUserViaGOG(gogToken, "johndoe@gmail.com", modIOTermsOfUse.hash, AuthenticationCallback); + /// } + /// + /// void AuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static void AuthenticateUserViaGOG(string gogToken, [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser(gogToken, AuthenticationServiceProvider.GOG, + emailAddress, hash, null, null, null, + 0, callback); + } + + /// + /// Attempts to authenticate a user via the GOG API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's auth code + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// void GetTermsOfUse_Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// void Authenticate_Example() + /// { + /// ModIOUnity.AuthenticateUserViaPlaystation(authCode, "johndoe@gmail.com", modIOTermsOfUse.hash, PlayStationEnvironment.np, AuthenticationCallback); + /// } + /// + /// void AuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static void AuthenticateUserViaPlayStation(string authCode, [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, PlayStationEnvironment environment, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser(authCode, AuthenticationServiceProvider.PlayStation, + emailAddress, hash, null, null, null, environment, + callback); + } + + /// + /// Attempts to authenticate a user via the Itch.io API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's itch token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// void GetTermsOfUse_Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// void Authenticate_Example() + /// { + /// ModIOUnity.AuthenticateUserViaItch(itchioToken, "johndoe@gmail.com", modIOTermsOfUse.hash, AuthenticationCallback); + /// } + /// + /// void AuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static void AuthenticateUserViaItch(string itchioToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser( + itchioToken, AuthenticationServiceProvider.Itchio, emailAddress, hash, null, null, + null, 0, callback); + } + + /// + /// Attempts to authenticate a user via the Xbox API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's xbl token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// void GetTermsOfUse_Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// void Authenticate_Example() + /// { + /// ModIOUnity.AuthenticateUserViaXbox(xboxToken, "johndoe@gmail.com", modIOTermsOfUse.hash, AuthenticationCallback); + /// } + /// + /// void AuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static void AuthenticateUserViaXbox(string xboxToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser(xboxToken, AuthenticationServiceProvider.Xbox, + emailAddress, hash, null, null, null, + 0, callback); + } + + /// + /// Attempts to authenticate a user via the switch API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's switch NSA id token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// void GetTermsOfUse_Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// void Authenticate_Example() + /// { + /// ModIOUnity.AuthenticateUserViaSwitch(switchToken, "johndoe@gmail.com", modIOTermsOfUse.hash, AuthenticationCallback); + /// } + /// + /// void AuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static void AuthenticateUserViaSwitch(string SwitchNsaId, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser( + SwitchNsaId, AuthenticationServiceProvider.Switch, emailAddress, hash, null, null, + null, 0, callback); + } + + /// + /// Attempts to authenticate a user via the Discord API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's discord token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// void GetTermsOfUse_Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// void Authenticate_Example() + /// { + /// ModIOUnity.AuthenticateUserViaDiscord(discordToken, "johndoe@gmail.com", modIOTermsOfUse.hash, AuthenticationCallback); + /// } + /// + /// void AuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static void AuthenticateUserViaDiscord(string discordToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser( + discordToken, AuthenticationServiceProvider.Discord, emailAddress, hash, null, null, + null, 0, callback); + } + + /// + /// Attempts to authenticate a user via the Google API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's google token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// void GetTermsOfUse_Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// void Authenticate_Example() + /// { + /// ModIOUnity.AuthenticateUserViaGoogle(googleToken, "johndoe@gmail.com", modIOTermsOfUse.hash, AuthenticationCallback); + /// } + /// + /// void AuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static void AuthenticateUserViaGoogle(string googleToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser( + googleToken, AuthenticationServiceProvider.Google, emailAddress, hash, null, null, + null, 0, callback); + } + + /// + /// Attempts to authenticate a user via the Oculus API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the device your authenticating on + /// the nonce + /// the user's oculus token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// Callback to be invoked when the operation completes + /// + /// + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// void GetTermsOfUse_Example() + /// { + /// ModIOUnity.GetTermsOfUse(GetTermsOfUseCallback); + /// } + /// + /// void GetTermsOfUseCallback(ResultAnd<TermsOfUse> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// void Authenticate_Example() + /// { + /// ModIOUnity.AuthenticateUserViaOculus(oculusDevice.Quest, + /// nonce, + /// userId, + /// oculusToken, + /// "johndoe@gmail.com", + /// modIOTermsOfUse.hash, AuthenticationCallback); + /// } + /// + /// void AuthenticationCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static void AuthenticateUserViaOculus(OculusDevice oculusDevice, string nonce, + long userId, string oculusToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + Action callback) + { + ModIOUnityImplementation.AuthenticateUser( + oculusToken, AuthenticationServiceProvider.Oculus, emailAddress, hash, nonce, + oculusDevice, userId.ToString(), 0, callback); + } + + // TODO @Steve and @Jackson: Discuss whether to make this synchronous or not + /// + /// Informs you if the current user session is authenticated or not. + /// + /// + /// + /// + /// + /// void Example() + /// { + /// ModIOUnity.IsAuthenticated(IsAuthenticatedCallback); + /// } + /// + /// void IsAuthenticatedCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("current session is authenticated"); + /// } + /// else + /// { + /// Debug.Log("current session is not authenticated"); + /// } + /// } + /// + public static void IsAuthenticated(Action callback) + { + ModIOUnityImplementation.IsAuthenticated(callback); + } + + /// + /// De-authenticates the current Mod.io user for the current session and clears all + /// user-specific data stored on the current device. Installed mods that do not have + /// other local users subscribed will be uninstalled if ModIOUnity.EnableModManagement() has + /// been used to enable the mod management system. + /// (If ModManagement is enabled). + /// + /// + /// If you dont want to erase a user be sure to use ModIOUnity.Shutdown() instead. + /// If you re-initialize the plugin after a shutdown the user will still be authenticated. + /// + /// + /// + /// + /// //static async void Example() + ///{ + /// Result result = await ModIOUnity.LogOutCurrentUser(); + /// + /// if(result.Succeeded()) + /// { + /// Debug.Log("The current user has been logged and their local data removed"); + /// } + /// else + /// { + /// Debug.Log("Failed to log out the current user"); + /// } + ///} + /// + public static Result LogOutCurrentUser() + { + return ModIOUnityImplementation.RemoveUserData(); + } + + #endregion // Authentication + +#region Mod Browsing + + /// + /// Gets the existing tags for the current game Id that can be used when searching/filtering + /// mods. + /// + /// + /// Tags come in category groups, eg "Color" could be the name of the category and the tags + /// themselves could be { "Red", "Blue", "Green" } + /// + /// the callback with the result and tags retrieved + /// + /// + /// + /// + /// + /// void Example() + /// { + /// ModIOUnity.GetTagCategories(GetTagsCallback); + /// } + /// + /// void GetTagsCallback(ResultAnd<TagCategory[]> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// foreach(TagCategory category in response.value) + /// { + /// foreach(Tag tag in category.tags) + /// { + /// Debug.Log(tag.name + " tag is in the " + category.name + "category"); + /// } + /// } + /// } + /// else + /// { + /// Debug.Log("failed to get game tags"); + /// } + /// } + /// + public static void GetTagCategories(Action> callback) + { + ModIOUnityImplementation.GetGameTags(callback); + } + + /// + /// Uses a SearchFilter to retrieve a specific Mod Page and returns the ModProfiles and + /// total number of mods based on the Search Filter. + /// + /// + /// A ModPage contains a group of mods based on the pagination filters in SearchFilter. + /// eg, if you use SearchFilter.SetPageIndex(0) and SearchFilter.SetPageSize(100) then + /// ModPage.mods will contain mods from 1 to 100. But if you set SearchFilter.SetPageIndex(1) + /// then it will have mods from 101 to 200, if that many exist. + /// (note that 100 is the maximum page size). + /// + /// The filter to apply when searching through mods (also contains + /// pagination parameters) + /// callback invoked with the Result and ModPage + /// + /// + /// + /// + /// + /// void Example() + /// { + /// SearchFilter filter = new SearchFilter(); + /// filter.SetPageIndex(0); + /// filter.SetPageSize(10); + /// ModIOUnity.GetMods(filter, GetModsCallback); + /// } + /// + /// void GetModsCallback(Result result, ModPage modPage) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("ModPage has " + modPage.modProfiles.Length + " mods"); + /// } + /// else + /// { + /// Debug.Log("failed to get mods"); + /// } + /// } + /// + public static void GetMods(SearchFilter filter, Action> callback) + { + ModIOUnityImplementation.GetMods(filter, callback); + } + + /// + /// Requests a single ModProfile from the mod.io server by its ModId. + /// + /// + /// If there is a specific mod that you want to retrieve from the mod.io database you can + /// use this method to get it. + /// + /// the ModId of the ModProfile to get + /// callback with the Result and ModProfile + /// + /// + /// + /// + /// + /// void Example() + /// { + /// ModId modId = new ModId(1234); + /// ModIOUnity.GetMod(modId, GetModCallback); + /// } + /// + /// void GetModCallback(ResultAnd<ModProfile> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("retrieved mod " + response.value.name); + /// } + /// else + /// { + /// Debug.Log("failed to get mod"); + /// } + /// } + /// + public static void GetMod(ModId modId, Action> callback) + { + ModIOUnityImplementation.GetMod(modId.id, callback); + } + + /// + /// Retrieves a list of ModDependenciesObjects that represent mods that depend on a mod. + /// + /// + /// This function returns only immediate mod dependencies, meaning that if you need the dependencies for the dependent + /// mods, you will have to make multiple calls and watch for circular dependencies. + /// + /// the ModId of the mod to get dependencies + /// callback with the Result and an array of ModDependenciesObjects + /// + /// + /// + /// void Example() + /// { + /// ModId modId = new ModId(1234); + /// ModIOUnity.GetModDependencies(modId, GetModCallback); + /// } + /// + /// void GetModCallback(ResultAnd<ModDependenciesObject[]> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// ModDependenciesObject[] modDependenciesObjects = response.value; + /// Debug.Log("retrieved mods dependencies"); + /// } + /// else + /// { + /// Debug.Log("failed to get mod dependencies"); + /// } + /// } + /// + public static void GetModDependencies(ModId modId, Action> callback) + { + ModIOUnityImplementation.GetModDependencies(modId, callback); + } + + /// + /// Get all mod rating's submitted by the authenticated user. Successful request will return an array of Rating Objects. + /// + /// callback with the Result and an array of RatingObject + /// + /// + /// + /// + /// void Example() + /// { + /// ModIOUnity.GetCurrentUserRatings(GetCurrentUserRatingsCallback); + /// } + /// + /// void GetCurrentUserRatingsCallback(ResultAnd<Rating[]> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// foreach(var ratingObject in response.value) + /// { + /// Debug.Log($"retrieved rating '{ratingObject.rating}' for {ratingObject.modId}"); + /// } + /// } + /// else + /// { + /// Debug.Log("failed to get ratings"); + /// } + /// } + /// + public static void GetCurrentUserRatings(Action> callback) + { + ModIOUnityImplementation.GetCurrentUserRatings(callback); + } + + /// + /// Gets the rating that the current user has given for a specified mod. You must have an + /// authenticated session for this to be successful. + /// + /// Note that the rating can be 'None' + /// the id of the mod to check for a rating + /// callback with the result and rating of the specified mod + /// + /// + /// + /// + /// void Example() + /// { + /// ModId modId = new ModId(1234); + /// ModIOUnity.GetCurrentUserRatingFor(modId, GetRatingCallback); + /// } + /// + /// void GetRatingCallback(ResultAnd<ModRating> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log($"retrieved rating: {response.value}"); + /// } + /// else + /// { + /// Debug.Log("failed to get rating"); + /// } + /// } + /// + public static void GetCurrentUserRatingFor(ModId modId, Action> callback) + { + ModIOUnityImplementation.GetCurrentUserRatingFor(modId, callback); + } + +#endregion // Mod Browsing + +#region User Management + + /// + /// Used to submit a rating for a specified mod. + /// + /// + /// This can be used to change/overwrite previous ratings of the current user. + /// + /// the m=ModId of the mod being rated + /// the rating to give the mod. Allowed values include ModRating.Positive, ModRating.Negative, ModRating.None + /// callback with the result of the request + /// + /// + /// + /// + /// + /// + /// ModProfile mod; + /// + /// void Example() + /// { + /// ModIOUnity.RateMod(mod.id, ModRating.Positive, RateModCallback); + /// } + /// + /// void RateModCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully rated mod"); + /// } + /// else + /// { + /// Debug.Log("Failed to rate mod"); + /// } + /// } + /// + public static void RateMod(ModId modId, ModRating rating, Action callback) + { + ModIOUnityImplementation.AddModRating(modId, rating, callback); + } + + /// + /// Adds the specified mod to the current user's subscriptions. + /// + /// + /// If mod management has been enabled via ModIOUnity.EnableModManagement() then the mod + /// will be downloaded and installed. + /// + /// ModId of the mod you want to subscribe to + /// callback with the result of the request + /// + /// + /// + /// + /// + /// + /// + /// ModProfile mod; + /// + /// void Example() + /// { + /// ModIOUnity.SubscribeToMod(mod.id, SubscribeCallback); + /// } + /// + /// void SubscribeCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully subscribed to mod"); + /// } + /// else + /// { + /// Debug.Log("Failed to subscribe to mod"); + /// } + /// } + /// + public static void SubscribeToMod(ModId modId, Action callback) + { + ModIOUnityImplementation.SubscribeTo(modId, callback); + } + + /// + /// Removes the specified mod from the current user's subscriptions. + /// + /// + /// If mod management has been enabled via ModIOUnity.EnableModManagement() then the mod + /// will be uninstalled at the next opportunity. + /// + /// ModId of the mod you want to unsubscribe from + /// callback with the result of the request + /// + /// + /// + /// + /// + /// + /// + /// ModProfile mod; + /// + /// void Example() + /// { + /// ModIOUnity.UnsubscribeFromMod(mod.id, UnsubscribeCallback); + /// } + /// + /// void UnsubscribeCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully unsubscribed from mod"); + /// } + /// else + /// { + /// Debug.Log("Failed to unsubscribe from mod"); + /// } + /// } + /// + public static void UnsubscribeFromMod(ModId modId, Action callback) + { + ModIOUnityImplementation.UnsubscribeFrom(modId, callback); + } + + /// + /// Retrieves all of the subscribed mods for the current user. + /// + /// + /// Note that these are not installed mods only mods the user has opted as 'subscribed'. + /// Also, ensure you have called ModIOUnity.FetchUpdates() at least once during this session + /// in order to have an accurate collection of the user's subscriptions. + /// + /// an out parameter for whether or not the method succeeded + /// + /// + /// + /// an array of the user's subscribed mods + /// + /// void Example() + /// { + /// SubscribedMod[] mods = ModIOUnity.GetSubscribedMods(out Result result); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("use has " + mods.Length + " subscribed mods"); + /// } + /// else + /// { + /// Debug.Log("failed to get user mods"); + /// } + /// } + /// + public static SubscribedMod[] GetSubscribedMods(out Result result) + { + return ModIOUnityImplementation.GetSubscribedMods(out result); + } + + /// + /// Gets the current user's UserProfile struct. Containing their mod.io username, user id, + /// language, timezone and download references for their avatar. + /// + /// + /// This requires the current session to have an authenticated user, otherwise + /// Result.IsAuthenticationError() from the Result will equal true. + /// + /// callback with the Result and the UserProfile + /// + /// + /// + /// + /// + /// void Example() + /// { + /// ModIOUnity.GetCurrentUser(GetUserCallback); + /// } + /// + /// void GetUserCallback(ResultAnd<UserProfile> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Got user: " + response.value.username); + /// } + /// else + /// { + /// Debug.Log("failed to get user"); + /// } + /// } + /// + public static void GetCurrentUser(Action> callback) + { + ModIOUnityImplementation.GetCurrentUser(callback); + } + + /// + /// Mutes a user which effectively hides any content from that specified user + /// + /// The userId can be found from the UserProfile. Such as ModProfile.creator.userId + /// The id of the user to be muted + /// callback with the Result of the request + /// + public static void MuteUser(long userId, Action callback) + { + ModIOUnityImplementation.MuteUser(userId, callback); + } + + /// + /// Un-mutes a user which effectively reveals previously hidden content from that user + /// + /// The userId can be found from the UserProfile. Such as ModProfile.creator.userId + /// The id of the user to be muted + /// callback with the Result of the request + /// + public static void UnmuteUser(long userId, Action callback) + { + ModIOUnityImplementation.UnmuteUser(userId, callback); + } + +#endregion + +#region Mod Management + + /// + /// This retrieves the user's subscriptions from the mod.io server and synchronises it with + /// our local instance of the user's subscription data. If mod management has been enabled + /// via ModIOUnity.EnableModManagement() then it may begin to install/uninstall mods. + /// + /// + /// This requires the current session to have an authenticated user, otherwise + /// Result.IsAuthenticationError() from the Result will equal true. + /// + /// callback with the Result of the operation + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// void Example() + /// { + /// ModIOUnity.FetchUpdates(FetchUpdatesCallback); + /// } + /// + /// void FetchUpdatesCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("updated user subscriptions"); + /// } + /// else + /// { + /// Debug.Log("failed to get user subscriptions"); + /// } + /// } + /// + public static void FetchUpdates(Action callback) + { + ModIOUnityImplementation.FetchUpdates(callback); + } + + /// + /// Enables the mod management system. When enabled it will automatically download, install, + /// update and delete mods according to the authenticated user's subscriptions. + /// + /// + /// This requires the current session to have an authenticated user, otherwise + /// Result.IsAuthenticationError() from the Result will equal true. + /// + /// A delegate that gets called everytime the ModManagement system runs an event (can be null) + /// A Result for whether or not mod management was enabled + /// + /// + /// + /// + /// void Example() + /// { + /// Result result = ModIOUnity.EnableModManagement(ModManagementDelegate); + /// } + /// + /// void ModManagementDelegate(ModManagementEventType eventType, ModId modId) + /// { + /// Debug.Log("a mod management event of type " + eventType.ToString() + " has been invoked"); + /// } + /// + public static Result EnableModManagement( + [CanBeNull] ModManagementEventDelegate modManagementEventDelegate) + { + return ModIOUnityImplementation.EnableModManagement(modManagementEventDelegate); + } + + /// + /// Disables the mod management system and cancels any ongoing jobs for downloading or + /// installing mods. + /// + /// + /// void Example() + /// { + /// Result result = ModIOUnity.DisableModManagement(); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("disabled mod management"); + /// } + /// else + /// { + /// Debug.Log("failed to disable mod management"); + /// } + /// } + /// + public static Result DisableModManagement() + { + return ModIOUnityImplementation.DisableModManagement(); + } + + /// + /// Returns a ProgressHandle with information on the current mod management operation. + /// + /// + /// Optional ProgressHandle object containing information regarding the progress of + /// the operation. Null if no operation is running + /// + /// + /// + /// + /// void Example() + /// { + /// ProgressHandle handle = ModIOUnity.GetCurrentModManagementOperation(); + /// + /// if (handle != null) + /// { + /// Debug.Log("current mod management operation is " + handle.OperationType.ToString()); + /// } + /// else + /// { + /// Debug.Log("no current mod management operation"); + /// } + /// } + /// + public static ProgressHandle GetCurrentModManagementOperation() + { + return ModIOUnityImplementation.GetCurrentModManagementOperation(); + } + + /// + /// Gets an array of mods that are installed on the current device. + /// + /// + /// Note that these will not be subscribed by the current user. If you wish to get all + /// of the current user's installed mods use ModIOUnity.GetSubscribedMods() and check the + /// SubscribedMod.status equals SubscribedModStatus.Installed. + /// + /// an out Result to inform whether or not it was able to get installed mods + /// + /// + /// an array of InstalledMod for each existing mod installed on the current device (and not subscribed by the current user) + /// + /// void Example() + /// { + /// InstalledMod[] mods = ModIOUnity.GetSystemInstalledMods(out Result result); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("found " + mods.Length.ToString() + " mods installed"); + /// } + /// else + /// { + /// Debug.Log("failed to get installed mods"); + /// } + /// } + /// + public static InstalledMod[] GetSystemInstalledMods(out Result result) + { + return ModIOUnityImplementation.GetInstalledMods(out result); + } + + /// + /// Gets an array of mods that are installed for the current user. + /// + /// an out Result to inform whether or not it was able to get installed mods + /// + /// + /// an array of InstalledModUser for each existing mod installed for the user + /// + /// void Example() + /// { + /// InstalledModUser[] mods = ModIOUnity.GetSystemInstalledModsUser(out Result result); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("found " + mods.Length.ToString() + " mods installed"); + /// } + /// else + /// { + /// Debug.Log("failed to get installed mods"); + /// } + /// } + /// + public static UserInstalledMod[] GetInstalledModsForUser(out Result result, bool includeDisabledMods = false) + { + return ModIOUnityImplementation.GetInstalledModsForUser(out result, includeDisabledMods); + } + + /// + /// This informs the mod management system that this mod should be uninstalled if not + /// subscribed by the current user. (such as a mod installed by a different user not + /// currently active). + /// + /// + /// Normally if you wish to uninstall a mod you should unsubscribe and use + /// ModIOUnity.EnableModManagement() and the process will be handled automatically. However, + /// if you want to uninstall a mod that is subscribed to a different user session this + /// method will mark the mod to be uninstalled to free up disk space. + /// Alternatively you can use ModIOUnity.RemoveUserData() to remove a user from the + /// local registry. If no other users are subscribed to the same mod it will be uninstalled + /// automatically. + /// + /// The ModId of the mod to uninstall + /// + /// + /// + /// + /// + /// + /// + /// ModProfile mod; + /// + /// void Example() + /// { + /// Result result = ModIOUnity.ForceUninstallMod(mod.id); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("mod marked for uninstall"); + /// } + /// else + /// { + /// Debug.Log("failed to mark mod for uninstall"); + /// } + /// } + /// + public static Result ForceUninstallMod(ModId modId) + { + return ModIOUnityImplementation.ForceUninstallMod(modId); + } + + /// + /// Checks if the automatic management process is currently awake and performing a mod + /// management operation, such as installing, downloading, uninstalling, updating. + /// + /// True if automatic mod management is currently performing an operation. + /// + /// + /// + /// + /// void Example() + /// { + /// if (ModIOUnity.IsModManagementBusy()) + /// { + /// Debug.Log("mod management is busy"); + /// } + /// else + /// { + /// Debug.Log("mod management is not busy"); + /// } + /// } + /// + public static bool IsModManagementBusy() + { + return ModIOUnityImplementation.IsModManagementBusy(); + } + + public static bool EnableMod(ModId modId) + { + return ModIOUnityImplementation.EnableMod(modId); + } + + public static bool DisableMod(ModId modId) + { + return ModIOUnityImplementation.DisableMod(modId); + } + + +#endregion // Mod Management + +#region Mod Uploading + + /// + /// Gets a token that can be used to create a new mod profile on the mod.io server. + /// + /// a CreationToken used in ModIOUnity.CreateModProfile() + /// + /// + /// + /// + /// + /// + /// + /// void Example() + /// { + /// CreationToken token = ModIOUnity.GenerateCreationToken(); + /// } + /// + public static CreationToken GenerateCreationToken() + { + return ModIOUnityImplementation.GenerateCreationToken(); + } + + /// + /// Creates a new mod profile on the mod.io server based on the details provided from the + /// ModProfileDetails object provided. Note that you must have a logo, name and summary + /// assigned in ModProfileDetails in order for this to work. + /// + /// + /// Note that this will create a new profile on the server and can be viewed online through + /// a browser. + /// + /// the token allowing a new unique profile to be created from ModIOUnity.GenerateCreationToken() + /// the mod profile details to apply to the mod profile being created + /// a callback with the Result of the operation and the ModId of the newly created mod profile (if successful) + /// + /// + /// + /// + /// + /// + /// + /// ModId newMod; + /// Texture2D logo; + /// CreationToken token; + /// + /// void Example() + /// { + /// token = ModIOUnity.GenerateCreationToken(); + /// + /// ModProfileDetails profile = new ModProfileDetails(); + /// profile.name = "mod name"; + /// profile.summary = "a brief summary about this mod being submitted" + /// profile.logo = logo; + /// + /// ModIOUnity.CreateModProfile(token, profile, CreateProfileCallback); + /// } + /// + /// void CreateProfileCallback(ResultAnd<ModId> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// newMod = response.value; + /// Debug.Log("created new mod profile with id " + response.value.ToString()); + /// } + /// else + /// { + /// Debug.Log("failed to create new mod profile"); + /// } + /// } + /// + public static void CreateModProfile(CreationToken token, + ModProfileDetails modProfileDetails, + Action> callback) + { + ModIOUnityImplementation.CreateModProfile(token, modProfileDetails, callback); + } + + /// + /// This is used to edit or change data (except images) in an existing mod profile on the + /// mod.io server. If you want to add or edit images, use UploadModMedia. + /// + /// + /// You need to assign the ModId of the mod you want to edit inside of the ModProfileDetails + /// object included in the parameters + /// + /// the mod profile details to apply to the mod profile being created + /// a callback with the Result of the operation and the ModId of the newly created mod profile (if successful) + /// + /// + /// + /// + /// ModId modId; + /// + /// void Example() + /// { + /// ModProfileDetails profile = new ModProfileDetails(); + /// profile.modId = modId; + /// profile.summary = "a new brief summary about this mod being edited"; + /// + /// ModIOUnity.EditModProfile(profile, EditProfileCallback); + /// } + /// + /// void EditProfileCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("edited mod profile"); + /// } + /// else + /// { + /// Debug.Log("failed to edit mod profile"); + /// } + /// } + /// + public static void EditModProfile(ModProfileDetails modProfile, Action callback) + { + ModIOUnityImplementation.EditModProfile(modProfile, callback); + } + + /// + /// This will return null if no upload operation is currently being performed. + /// + /// + /// Uploads are not handled by the mod management system, these are handled separately. + /// + /// A ProgressHandle informing the upload state and progress. Null if no upload operation is running. + /// + /// + /// + /// void Example() + /// { + /// ProgressHandle handle = ModIOUnity.GetCurrentUploadHandle(); + /// + /// if (handle != null) + /// { + /// Debug.Log("Current upload progress is: " + handle.Progress.ToString()); + /// } + /// } + /// + public static ProgressHandle GetCurrentUploadHandle() + { + return ModIOUnityImplementation.GetCurrentUploadHandle(); + } + + /// + /// Used to upload a mod file to a mod profile on the mod.io server. A mod file is the + /// actual archive of a mod. This method can be used to update a mod to a newer version + /// (you can include changelog information in ModfileDetails). + /// + /// + /// If you want to upload images such as a new logo or gallery images, you can use + /// UploadModMedia instead. + /// + /// the mod file and details to upload + /// callback with the Result of the upload when the operation finishes + /// + /// + /// + /// + /// + /// + /// + /// + /// ModId modId; + /// + /// void Example() + /// { + /// ModfileDetails modfile = new ModfileDetails(); + /// modfile.modId = modId; + /// modfile.directory = "files/mods/mod_123"; + /// + /// ModIOUnity.UploadModfile(modfile, UploadModCallback); + /// } + /// + /// void UploadModCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("uploaded mod file"); + /// } + /// else + /// { + /// Debug.Log("failed to upload mod file"); + /// } + /// } + /// + public static void UploadModfile(ModfileDetails modfile, Action callback) + { + ModIOUnityImplementation.UploadModfile(modfile, callback); + } + + /// + /// This is used to update the logo of a mod or the gallery images. This works very similar + /// to EditModProfile except it only affects the images. + /// + /// this holds the reference to the images you wish to upload + /// a callback with the Result of the operation + /// + /// + /// + /// + /// + /// ModId modId; + /// Texture2D newTexture; + /// + /// void Example() + /// { + /// ModProfileDetails profile = new ModProfileDetails(); + /// profile.modId = modId; + /// profile.logo = newTexture; + /// + /// ModIOUnity.UploadModMedia(profile, UploadProfileCallback); + /// } + /// + /// void UploadProfileCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("uploaded new mod logo"); + /// } + /// else + /// { + /// Debug.Log("failed to uploaded mod logo"); + /// } + /// } + /// + public static void UploadModMedia(ModProfileDetails modProfileDetails, Action callback) + { + ModIOUnityImplementation.UploadModMedia(modProfileDetails, callback); + } + + /// + /// Removes a mod from being visible on the mod.io server. + /// + /// + /// If you want to delete a mod permanently you can do so from a web browser. + /// + /// the id of the mod to delete + /// callback with the result of the operation + /// + /// + /// + /// + /// + /// + /// ModId modId; + /// + /// void Example() + /// { + /// ModIOUnity.ArchiveModProfile(modId, ArchiveModCallback); + /// } + /// + /// void ArchiveModCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("archived mod profile"); + /// } + /// else + /// { + /// Debug.Log("failed to archive mod profile"); + /// } + /// } + /// + public static void ArchiveModProfile(ModId modId, Action callback) + { + ModIOUnityImplementation.ArchiveModProfile(modId, callback); + } + + /// + /// Get all mods the authenticated user added or is a team member of. + /// Successful request will return an array of Mod Objects. We + /// recommended reading the filtering documentation to return only + /// the records you want. + /// + public static void GetCurrentUserCreations(SearchFilter filter, Action> callback) + { + ModIOUnityImplementation.GetCurrentUserCreations(filter, callback); + } + + /// + /// Adds the provided tags to the specified mod id. In order for this to work the + /// authenticated user must have permission to edit the specified mod. Only existing tags + /// as part of the game Id will be added. + /// + /// Id of the mod to add tags to + /// array of tags to be added + /// callback with the result of the operation + /// + /// + /// + /// + /// + /// ModId modId; + /// string[] tags; + /// + /// void Example() + /// { + /// ModIOUnity.AddTags(modId, tags, AddTagsCallback); + /// } + /// + /// void AddTagsCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("added tags"); + /// } + /// else + /// { + /// Debug.Log("failed to add tags"); + /// } + /// } + /// + public static void AddTags(ModId modId, string[] tags, Action callback) + { + ModIOUnityImplementation.AddTags(modId, tags, callback); + } + + /// + /// Deletes the specified tags from the mod. In order for this to work the + /// authenticated user must have permission to edit the specified mod. + /// + /// the id of the mod for deleting tags + /// array of tags to be deleted + /// callback with the result of the operation + /// + /// + /// + /// + /// + /// ModId modId; + /// string[] tags; + /// + /// void Example() + /// { + /// ModIOUnity.DeleteTags(modId, tags, DeleteTagsCallback); + /// } + /// + /// void DeleteTagsCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("deleted tags"); + /// } + /// else + /// { + /// Debug.Log("failed to delete tags"); + /// } + /// } + /// + public static void DeleteTags(ModId modId, string[] tags, Action callback) + { + ModIOUnityImplementation.DeleteTags(modId, tags, callback); + } +#endregion // Mod Uploading + +#region Media Download + + /// + /// Downloads a texture based on the specified download reference. + /// + /// + /// You can get download references from UserProfiles and ModProfiles + /// + /// download reference for the texture (eg UserObject.avatar_100x100) + /// callback with the Result and Texture2D from the download + /// + /// + /// + /// + /// + /// + /// ModProfile mod; + /// + /// void Example() + /// { + /// ModIOUnity.DownloadTexture(mod.logoImage_320x180, DownloadTextureCallback); + /// } + /// + /// void DownloadTextureCallback(ResultAnd<Texture2D> response) + /// { + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("downloaded the mod logo texture"); + /// } + /// else + /// { + /// Debug.Log("failed to download the mod logo texture"); + /// } + /// } + /// + public static void DownloadTexture(DownloadReference downloadReference, + Action> callback) + { + ModIOUnityImplementation.DownloadTexture(downloadReference, callback); + } + + public static void DownloadImage(DownloadReference downloadReference, + Action> callback) + { + ModIOUnityImplementation.DownloadImage(downloadReference, callback); + } + +#endregion // Media Download + +#region Reporting + + /// + /// Reports a specified mod to mod.io. + /// + /// the object containing all of the details of the report you are sending + /// callback with the Result of the report + /// + /// + /// + /// + /// void Example() + /// { + /// Report report = new Report(new ModId(123), + /// ReportType.Generic, + /// "reporting this mod for a generic reason", + /// "JohnDoe", + /// "johndoe@mod.io"); + /// + /// ModIOUnity.Report(report, ReportCallback); + /// } + /// + /// void ReportCallback(Result result) + /// { + /// if (result.Succeeded()) + /// { + /// Debug.Log("successfully sent a report"); + /// } + /// else + /// { + /// Debug.Log("failed to send a report"); + /// } + /// } + /// + public static void Report(Report report, Action callback) + { + ModIOUnityImplementation.Report(report, callback); + } + +#endregion // Reporting + } +} + +#pragma warning restore 4014 // Restore warnings about calling async functions from non-async code diff --git a/Runtime/ModIOUnity.cs.meta b/Runtime/ModIOUnity.cs.meta new file mode 100644 index 0000000..8b78404 --- /dev/null +++ b/Runtime/ModIOUnity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64b0515f75c50e448aa7ee71d932c907 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/ModIOUnityAsync.cs b/Runtime/ModIOUnityAsync.cs new file mode 100644 index 0000000..23225b9 --- /dev/null +++ b/Runtime/ModIOUnityAsync.cs @@ -0,0 +1,1425 @@ +using ModIO.Implementation; +using System; +using JetBrains.Annotations; +using UnityEngine; +using System.Threading.Tasks; +using ModIO.Implementation.API.Objects; + +#pragma warning disable 4014 // Ignore warnings about calling async functions from non-async code + +namespace ModIO +{ + /// + /// Main async interface for the mod.io Unity plugin. Every method within + /// ModIOUnity.cs that has a callback can also be found in ModIOUnityAsync with an asynchronous + /// alternative method (if you'd rather not use callbacks). + /// + /// + public static class ModIOUnityAsync + { +#region Initialization and Maintenance + + /// + /// Cancels any running public operations, frees plugin resources, and invokes + /// any pending callbacks with a cancelled result code. + /// + /// + /// pending operations during a shutdown can be checked with + /// Result.IsCancelled() + /// + /// + /// + /// async void Example() + /// { + /// await ModIOUnityAsync.Shutdown(); + /// Debug.Log("Finished shutting down the ModIO Plugin"); + /// } + /// + public static async Task Shutdown() + { + await ModIOUnityImplementation.Shutdown(() => { }); + } + +#endregion // Initialization and Maintenance + +#region Authentication + + /// + /// Sends an email with a security code to the specified Email Address. The security code + /// is then used to Authenticate the user session using ModIOUnity.SubmitEmailSecurityCode() + /// + /// + /// The operation will return a Result object. + /// If the email is successfully sent Result.Succeeded() will equal true. + /// If you haven't Initialized the plugin then Result.IsInitializationError() will equal + /// true. If the string provided for the emailaddress is not .NET compliant + /// Result.IsAuthenticationError() will equal true. + /// + /// the Email Address to send the security code to, eg "JohnDoe@gmail.com" + /// + /// + /// + /// async void Example() + /// { + /// Result result = await ModIOUnityAsync.RequestAuthenticationEmail("johndoe@gmail.com"); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Succeeded to send security code"); + /// } + /// else + /// { + /// Debug.Log("Failed to send security code to that email address"); + /// } + /// } + /// + public static async Task RequestAuthenticationEmail(string emailaddress) + { + return await ModIOUnityImplementation.RequestEmailAuthToken(emailaddress); + } + + /// + /// Attempts to Authenticate the current session by submitting a security code received by + /// email from ModIOUnity.RequestAuthenticationEmail() + /// + /// + /// It is intended that this function is used after ModIOUnity.RequestAuthenticationEmail() + /// is performed successfully. + /// + /// The security code received from an authentication email + /// + /// + /// + /// async void Example(string userSecurityCode) + /// { + /// Result result = await ModIOUnityAsync.SubmitEmailSecurityCode(userSecurityCode); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("You have successfully authenticated the user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate the user"); + /// } + /// } + /// + public static async Task SubmitEmailSecurityCode(string securityCode) + { + return await ModIOUnityImplementation.SubmitEmailSecurityCode(securityCode); + } +/// + /// This retrieves the terms of use text to be shown to the user to accept/deny before + /// authenticating their account via a third party provider, eg steam or google. + /// + /// + /// If the operation succeeds it will also provide a TermsOfUse struct that contains a + /// TermsHash struct which you will need to provide when calling a third party + /// authentication method such as ModIOUnity.AuthenticateUserViaSteam() + /// + /// The provider you intend to use for authentication, + /// eg steam, google etc. (You dont need to display terms of use to the user if they are + /// authenticating via email security code) + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// async void Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + public static async Task> GetTermsOfUse() + { + return await ModIOUnityImplementation.GetTermsOfUse(); + } + + /// + /// Attempts to authenticate a user via the steam API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's steam token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// async void GetTermsOfUse_Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// async void Authenticate_Example() + /// { + /// Result result = await ModIOUnityAsync.AuthenticateUserViaSteam(steamToken, "johndoe@gmail.com", modIOTermsOfUse.hash); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static async Task AuthenticateUserViaSteam(string steamToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash) + { + return await ModIOUnityImplementation.AuthenticateUser( + steamToken, AuthenticationServiceProvider.Steam, emailAddress, hash, null, null, + null, 0); + } + + /// + /// Attempts to authenticate a user via the epic API. + /// + /// the user's epic token + /// the user's email address + /// + public static async Task AuthenticateUserViaEpic(string epicToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash) + { + return await ModIOUnityImplementation.AuthenticateUser( + epicToken, AuthenticationServiceProvider.Steam, emailAddress, hash, null, null, + null, 0); + } + + /// + /// Attempts to authenticate a user via the steam API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's authcode token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// async void GetTermsOfUse_Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// async void Authenticate_Example() + /// { + /// Result result = await ModIOUnityAsync.AuthenticateUserViaPlayStation(authCode, "johndoe@gmail.com", modIOTermsOfUse.hash, PlayStationEnvironment.np); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static async Task AuthenticateUserViaPlayStation(string authCode, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash, + PlayStationEnvironment environment) + { + return await ModIOUnityImplementation.AuthenticateUser( + authCode, AuthenticationServiceProvider.PlayStation, emailAddress, hash, null, null, + null, environment); + } + + /// + /// Attempts to authenticate a user via the GOG API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's steam token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// async void GetTermsOfUse_Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// async void Authenticate_Example() + /// { + /// Result result = await ModIOUnityAsync.AuthenticateUserViaGOG(gogToken, "johndoe@gmail.com", modIOTermsOfUse.hash); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static async Task AuthenticateUserViaGOG(string gogToken, [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash) + { + return await ModIOUnityImplementation.AuthenticateUser(gogToken, AuthenticationServiceProvider.GOG, + emailAddress, hash, null, null, null, 0); + } + + /// + /// Attempts to authenticate a user via the Itch.io API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's steam token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// async void GetTermsOfUse_Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// async void Authenticate_Example() + /// { + /// Result result = await ModIOUnityAsync.AuthenticateUserViaItch(itchioToken, "johndoe@gmail.com", modIOTermsOfUse.hash); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static async Task AuthenticateUserViaItch(string itchioToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash) + { + return await ModIOUnityImplementation.AuthenticateUser( + itchioToken, AuthenticationServiceProvider.Itchio, emailAddress, hash, null, null, + null, 0); + } + + /// + /// Attempts to authenticate a user via the Xbox API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's steam token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// async void GetTermsOfUse_Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// async void Authenticate_Example() + /// { + /// Result result = await ModIOUnityAsync.AuthenticateUserViaItch(xboxToken, "johndoe@gmail.com", modIOTermsOfUse.hash); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static async Task AuthenticateUserViaXbox(string xboxToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash) + { + return await ModIOUnityImplementation.AuthenticateUser(xboxToken, AuthenticationServiceProvider.Xbox, + emailAddress, hash, null, null, null, 0); + } + + /// + /// Attempts to authenticate a user via the switch API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's steam token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// async void GetTermsOfUse_Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// async void Authenticate_Example() + /// { + /// Result result = await ModIOUnityAsync.AuthenticateUserViaItch(switchToken, "johndoe@gmail.com", modIOTermsOfUse.hash); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static async Task AuthenticateUserViaSwitch(string switchToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash) + { + return await ModIOUnityImplementation.AuthenticateUser( + switchToken, AuthenticationServiceProvider.Switch, emailAddress, hash, null, null, + null, 0); + } + + /// + /// Attempts to authenticate a user via the discord API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's steam token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// async void GetTermsOfUse_Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// async void Authenticate_Example() + /// { + /// Result result = await ModIOUnityAsync.AuthenticateUserViaDiscord(discordToken, "johndoe@gmail.com", modIOTermsOfUse.hash); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static async Task AuthenticateUserViaDiscord(string discordToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash) + { + return await ModIOUnityImplementation.AuthenticateUser( + discordToken, AuthenticationServiceProvider.Discord, emailAddress, hash, null, null, + null, 0); + } + + /// + /// Attempts to authenticate a user via the google API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's steam token + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// async void GetTermsOfUse_Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// async void Authenticate_Example() + /// { + /// Result result = await ModIOUnityAsync.AuthenticateUserViaGoogle(googleToken, "johndoe@gmail.com", modIOTermsOfUse.hash); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static async Task AuthenticateUserViaGoogle(string googleToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash) + { + return await ModIOUnityImplementation.AuthenticateUser( + googleToken, AuthenticationServiceProvider.Google, emailAddress, hash, null, null, + null, 0); + } + + /// + /// Attempts to authenticate a user via the oculus API. + /// + /// + /// You will first need to get the terms of use and hash from the ModIOUnity.GetTermsOfUse() + /// method. + /// + /// the user's oculus token + /// the device you're authenticating on + /// the nonce + /// the user id + /// the user's email address + /// the TermsHash retrieved from ModIOUnity.GetTermsOfUse() + /// + /// + /// // First we get the Terms of Use to display to the user and cache the hash + /// async void GetTermsOfUse_Example() + /// { + /// ResultAnd<TermsOfUser> response = await ModIOUnityAsync.GetTermsOfUse(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Successfully retrieved the terms of use: " + response.value.termsOfUse); + /// + /// // Cache the terms of use (which has the hash for when we attempt to authenticate) + /// modIOTermsOfUse = response.value; + /// } + /// else + /// { + /// Debug.Log("Failed to retrieve the terms of use"); + /// } + /// } + /// + /// // Once we have the Terms of Use and hash we can attempt to authenticate + /// async void Authenticate_Example() + /// { + /// Result result = await ModIOUnityAsync.AuthenticateUserViaOculus(OculusDevice.Quest, + /// nonce, + /// userId, + /// oculusToken, + /// "johndoe@gmail.com", + /// modIOTermsOfUse.hash); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully authenticated user"); + /// } + /// else + /// { + /// Debug.Log("Failed to authenticate"); + /// } + /// } + /// + public static async Task AuthenticateUserViaOculus(OculusDevice oculusDevice, string nonce, + long userId, string oculusToken, + [CanBeNull] string emailAddress, + [CanBeNull] TermsHash? hash) + { + return await ModIOUnityImplementation.AuthenticateUser( + oculusToken, AuthenticationServiceProvider.Oculus, emailAddress, hash, nonce, + oculusDevice, userId.ToString(), 0); + } + + /// + /// Informs you if the current user session is authenticated or not. + /// + /// + /// + /// async void Example() + /// { + /// Result result = await ModIOUnityAsync.IsAuthenticated(); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("current session is authenticated"); + /// } + /// else + /// { + /// Debug.Log("current session is not authenticated"); + /// } + /// } + /// + public static async Task IsAuthenticated() + { + return await ModIOUnityImplementation.IsAuthenticated(); + } + +#endregion // Authentication + +#region Mod Browsing + + /// + /// Gets the existing tags for the current game Id that can be used when searching/filtering + /// mods. + /// + /// + /// Tags come in category groups, eg "Color" could be the name of the category and the tags + /// themselves could be { "Red", "Blue", "Green" } + /// + /// + /// + /// + /// + /// async void Example() + /// { + /// ResultAnd<TagCategory[]> response = await ModIOUnityAsync.GetTagCategories(); + /// + /// if (response.result.Succeeded()) + /// { + /// foreach(TagCategory category in response.value) + /// { + /// foreach(Tag tag in category.tags) + /// { + /// Debug.Log(tag.name + " tag is in the " + category.name + "category"); + /// } + /// } + /// } + /// else + /// { + /// Debug.Log("failed to get game tags"); + /// } + /// } + /// + public static async Task> GetTagCategories() + { + return await ModIOUnityImplementation.GetGameTags(); + } + + /// + /// Uses a SearchFilter to retrieve a specific Mod Page and returns the ModProfiles and + /// total number of mods based on the Search Filter. + /// + /// + /// A ModPage contains a group of mods based on the pagination filters in SearchFilter. + /// eg, if you use SearchFilter.SetPageIndex(0) and SearchFilter.SetPageSize(100) then + /// ModPage.mods will contain mods from 1 to 100. But if you set SearchFilter.SetPageIndex(1) + /// then it will have mods from 101 to 200, if that many exist. + /// (note that 100 is the maximum page size). + /// + /// The filter to apply when searching through mods (also contains + /// pagination parameters) + /// + /// + /// + /// + /// async void Example() + /// { + /// SearchFilter filter = new SearchFilter(); + /// filter.SetPageIndex(0); + /// filter.SetPageSize(10); + /// ResultAnd<ModPage> response = await ModIOUnityAsync.GetMods(filter); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("ModPage has " + response.value.modProfiles.Length + " mods"); + /// } + /// else + /// { + /// Debug.Log("failed to get mods"); + /// } + /// } + /// + public static async Task> GetMods(SearchFilter filter) + { + return await ModIOUnityImplementation.GetMods(filter); + } + + /// + /// Requests a single ModProfile from the mod.io server by its ModId. + /// + /// + /// If there is a specific mod that you want to retrieve from the mod.io database you can + /// use this method to get it. + /// + /// the ModId of the ModProfile to get + /// + /// + /// + /// + /// async void Example() + /// { + /// ModId modId = new ModId(1234); + /// ResultAnd<ModProfile> response = await ModIOUnityAsync.GetMod(modId); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("retrieved mod " + response.value.name); + /// } + /// else + /// { + /// Debug.Log("failed to get mod"); + /// } + /// } + /// + public static async Task> GetMod(ModId modId) + { + return await ModIOUnityImplementation.GetMod(modId.id); + } + + /// + /// + /// + public static async Task> GetModDependencies(ModId modId) + { + return await ModIOUnityImplementation.GetModDependencies(modId); + } + + /// + /// Get all mod rating's submitted by the authenticated user. Successful request will return an array of Rating Objects. + /// + /// the ModId of the ModProfile to get + /// + /// + /// + /// + /// async void Example() + /// { + /// ResultAnd<Rating[]> response = await ModIOUnityAsync.GetCurrentUserRatings(); + /// + /// if (response.result.Succeeded()) + /// { + /// foreach(var ratingObject in response.value) + /// { + /// Debug.Log($"retrieved rating {ratingObject.rating} for {ratingObject.modId}"); + /// } + /// } + /// else + /// { + /// Debug.Log("failed to get ratings"); + /// } + /// } + /// + public static async Task> GetCurrentUserRatings() + { + return await ModIOUnityImplementation.GetCurrentUserRatings(); + } + + + /// + /// Gets the rating that the current user has given for a specified mod. You must have an + /// authenticated session for this to be successful. + /// + /// Note that the rating can be 'None' + /// the id of the mod to check for a rating + /// + /// + /// + /// + /// async void Example() + /// { + /// ModId modId = new ModId(1234); + /// ResultAnd<ModRating> response = await ModIOUnityAsync.GetCurrentUserRatingFor(modId); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log($"retrieved rating: {response.value}"); + /// } + /// else + /// { + /// Debug.Log("failed to get rating"); + /// } + /// } + /// + public static async Task> GetCurrentUserRatingFor(ModId modId) + { + return await ModIOUnityImplementation.GetCurrentUserRatingFor(modId); + } + +#endregion // Mod Browsing + +#region User Management + /// + /// Used to submit a rating for a specified mod. + /// + /// + /// This can be used to change/overwrite previous ratings of the current user. + /// + /// the m=ModId of the mod being rated + /// the rating to give the mod. Allowed values include ModRating.Positive, ModRating.Negative, ModRating.None + /// + /// + /// + /// + /// + /// ModProfile mod; + /// + /// async void Example() + /// { + /// Result result = await ModIOUnityAsync.RateMod(mod.id, ModRating.Positive); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully rated mod"); + /// } + /// else + /// { + /// Debug.Log("Failed to rate mod"); + /// } + /// } + /// + public static async Task RateMod(ModId modId, ModRating rating) + { + return await ModIOUnityImplementation.AddModRating(modId, rating); + } + + /// + /// Adds the specified mod to the current user's subscriptions. + /// + /// + /// If mod management has been enabled via ModIOUnity.EnableModManagement() then the mod + /// will be downloaded and installed. + /// + /// ModId of the mod you want to subscribe to + /// + /// + /// + /// + /// + /// + /// ModProfile mod; + /// + /// async void Example() + /// { + /// Result result = await ModIOUnityAsync.SubscribeToMod(mod.id); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully subscribed to mod"); + /// } + /// else + /// { + /// Debug.Log("Failed to subscribe to mod"); + /// } + /// } + /// + public static async Task SubscribeToMod(ModId modId) + { + return await ModIOUnityImplementation.SubscribeTo(modId); + } + + /// + /// Removes the specified mod from the current user's subscriptions. + /// + /// + /// If mod management has been enabled via ModIOUnity.EnableModManagement() then the mod + /// will be uninstalled at the next opportunity. + /// + /// ModId of the mod you want to unsubscribe from + /// + /// + /// + /// + /// + /// + /// ModProfile mod; + /// + /// async void Example() + /// { + /// Result result = await ModIOUnityAsync.UnsubscribeFromMod(mod.id); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("Successfully unsubscribed from mod"); + /// } + /// else + /// { + /// Debug.Log("Failed to unsubscribe from mod"); + /// } + /// } + /// + public static async Task UnsubscribeFromMod(ModId modId) + { + return await ModIOUnityImplementation.UnsubscribeFrom(modId); + } + + /// + /// Gets the current user's UserProfile struct. Containing their mod.io username, user id, + /// language, timezone and download references for their avatar. + /// + /// + /// This requires the current session to have an authenticated user, otherwise + /// Result.IsAuthenticationError() from the Result will equal true. + /// + /// + /// + /// + /// + /// async void Example() + /// { + /// ResultAnd<UserProfile> response = await ModIOUnityAsync.GetCurrentUser(); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("Got user: " + response.value.username); + /// } + /// else + /// { + /// Debug.Log("failed to get user"); + /// } + /// } + /// + public static async Task> GetCurrentUser() + { + return await ModIOUnityImplementation.GetCurrentUser(); + } + + /// + /// Mutes a user which effectively hides any content from that specified user + /// + /// The userId can be found from the UserProfile. Such as ModProfile.creator.userId + /// The id of the user to be muted + /// + public static void MuteUser(long userId) + { + ModIOUnityImplementation.MuteUser(userId); + } + + /// + /// Un-mutes a user which effectively reveals previously hidden content from that user + /// + /// The userId can be found from the UserProfile. Such as ModProfile.creator.userId + /// The id of the user to be muted + /// + public static void UnmuteUser(long userId) + { + ModIOUnityImplementation.UnmuteUser(userId); + } +#endregion + +#region Mod Management + + /// + /// This retrieves the user's subscriptions from the mod.io server and synchronises it with + /// our local instance of the user's subscription data. If mod management has been enabled + /// via ModIOUnity.EnableModManagement() then it may begin to install/uninstall mods. + /// + /// + /// This requires the current session to have an authenticated user, otherwise + /// Result.IsAuthenticationError() from the Result will equal true. + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// async void Example() + /// { + /// Result result = await ModIOUnityAsync.FetchUpdates(); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("updated user subscriptions"); + /// } + /// else + /// { + /// Debug.Log("failed to get user subscriptions"); + /// } + /// } + /// + public static async Task FetchUpdates() + { + return await ModIOUnityImplementation.FetchUpdates(); + } + +#endregion // Mod Management + +#region Mod Uploading + /// + /// Creates a new mod profile on the mod.io server based on the details provided from the + /// ModProfileDetails object provided. Note that you must have a logo, name and summary + /// assigned in ModProfileDetails in order for this to work. + /// + /// + /// Note that this will create a new profile on the server and can be viewed online through + /// a browser. + /// + /// the token allowing a new unique profile to be created from ModIOUnity.GenerateCreationToken() + /// the mod profile details to apply to the mod profile being created + /// + /// + /// + /// + /// + /// + /// ModId newMod; + /// Texture2D logo; + /// CreationToken token; + /// + /// async void Example() + /// { + /// token = ModIOUnity.GenerateCreationToken(); + /// + /// ModProfileDetails profile = new ModProfileDetails(); + /// profile.name = "mod name"; + /// profile.summary = "a brief summary about this mod being submitted" + /// profile.logo = logo; + /// + /// ResultAnd<ModId> response = await ModIOUnityAsync.CreateModProfile(token, profile); + /// + /// if (response.result.Succeeded()) + /// { + /// newMod = response.value; + /// Debug.Log("created new mod profile with id " + response.value.ToString()); + /// } + /// else + /// { + /// Debug.Log("failed to create new mod profile"); + /// } + /// } + /// + public static async Task> CreateModProfile(CreationToken token, + ModProfileDetails modProfileDetails) + { + return await ModIOUnityImplementation.CreateModProfile(token, modProfileDetails); + } + + /// + /// This is used to edit or change data in an existing mod profile on the mod.io server. + /// + /// + /// You need to assign the ModId of the mod you want to edit inside of the ModProfileDetails + /// object included in the parameters + /// + /// the mod profile details to apply to the mod profile being created + /// + /// + /// + /// ModId modId; + /// + /// async void Example() + /// { + /// ModProfileDetails profile = new ModProfileDetails(); + /// profile.modId = modId; + /// profile.summary = "a new brief summary about this mod being edited" + /// + /// Result result = await ModIOUnityAsync.EditModProfile(profile); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("edited mod profile"); + /// } + /// else + /// { + /// Debug.Log("failed to edit mod profile"); + /// } + /// } + /// + public static async Task EditModProfile(ModProfileDetails modprofile) + { + return await ModIOUnityImplementation.EditModProfile(modprofile); + } + + /// + /// Used to upload a mod file to a mod profile on the mod.io server. A mod file is the + /// actual archive of a mod. This method can be used to update a mod to a newer version + /// (you can include changelog information in ModfileDetails). + /// + /// the mod file and details to upload + /// + /// + /// + /// + /// + /// + /// ModId modId; + /// + /// async void Example() + /// { + /// ModfileDetails modfile = new ModfileDetails(); + /// modfile.modId = modId; + /// modfile.directory = "files/mods/mod_123"; + /// + /// Result result = await ModIOUnityAsync.UploadModfile(modfile); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("uploaded mod file"); + /// } + /// else + /// { + /// Debug.Log("failed to upload mod file"); + /// } + /// } + /// + public static async Task UploadModfile(ModfileDetails modfile) + { + return await ModIOUnityImplementation.UploadModfile(modfile); + } + + + + /// + /// This is used to update the logo of a mod or the gallery images. This works very similar + /// to EditModProfile except it only affects the images. + /// + /// this holds the reference to the images you wish to upload + /// + /// + /// + /// + /// ModId modId; + /// Texture2D newTexture; + /// + /// async void Example() + /// { + /// ModProfileDetails profile = new ModProfileDetails(); + /// profile.modId = modId; + /// profile.logo = newTexture; + /// + /// Result result = await ModIOUnityAsync.UploadModMedia(profile); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("uploaded new mod logo"); + /// } + /// else + /// { + /// Debug.Log("failed to uploaded mod logo"); + /// } + /// } + /// + public static async Task UploadModMedia(ModProfileDetails modProfileDetails) + { + return await ModIOUnityImplementation.UploadModMedia(modProfileDetails); + } + + /// + /// Removes a mod from being visible on the mod.io server. + /// + /// + /// If you want to delete a mod permanently you can do so from a web browser. + /// + /// the id of the mod to delete + /// + /// + /// + /// + /// + /// ModId modId; + /// + /// async void Example() + /// { + /// Result result = await ModIOUnityAsync.ArchiveModProfile(modId); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("archived mod profile"); + /// } + /// else + /// { + /// Debug.Log("failed to archive mod profile"); + /// } + /// } + /// + public static async Task ArchiveModProfile(ModId modId) + { + return await ModIOUnityImplementation.ArchiveModProfile(modId); + } + + /// + /// Get all mods the authenticated user added or is a team member of. + /// Successful request will return an array of Mod Objects. We + /// recommended reading the filtering documentation to return only + /// the records you want. + /// + public static async Task> GetCurrentUserCreations(SearchFilter filter) + { + return await ModIOUnityImplementation.GetCurrentUserCreations(filter); + } + + /// + /// Adds the provided tags to the specified mod id. In order for this to work the + /// authenticated user must have permission to edit the specified mod. Only existing tags + /// as part of the game Id will be added. + /// + /// Id of the mod to add tags to + /// array of tags to be added + /// + /// + /// + /// + /// + /// ModId modId; + /// string[] tags; + /// + /// void Example() + /// { + /// Result result = await ModIOUnity.AddTags(modId, tags); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("added tags"); + /// } + /// else + /// { + /// Debug.Log("failed to add tags"); + /// } + /// } + /// + public static async Task AddTags(ModId modId, string[] tags) + { + return await ModIOUnityImplementation.AddTags(modId, tags); + } + + /// + /// Deletes the specified tags from the mod. In order for this to work the + /// authenticated user must have permission to edit the specified mod. + /// + /// the id of the mod for deleting tags + /// array of tags to be deleted + /// + /// + /// + /// + /// + /// ModId modId; + /// string[] tags; + /// + /// async void Example() + /// { + /// Result result = await ModIOUnity.DeleteTags(modId, tags); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("deleted tags"); + /// } + /// else + /// { + /// Debug.Log("failed to delete tags"); + /// } + /// } + /// + public static async Task DeleteTags(ModId modId, string[] tags) + { + return await ModIOUnityImplementation.DeleteTags(modId, tags); + } +#endregion // Mod Uploading + +#region Media Download + + /// + /// Downloads a texture based on the specified download reference. + /// + /// + /// You can get download references from UserProfiles and ModProfiles + /// + /// download reference for the texture (eg UserObject.avatar_100x100) + /// + /// + /// + /// + /// + /// ModProfile mod; + /// + /// async void Example() + /// { + /// ResultAnd<Texture2D> response = await ModIOUnityAsync.DownloadTexture(mod.logoImage_320x180); + /// + /// if (response.result.Succeeded()) + /// { + /// Debug.Log("downloaded the mod logo texture"); + /// } + /// else + /// { + /// Debug.Log("failed to download the mod logo texture"); + /// } + /// } + /// + public static async Task> DownloadTexture(DownloadReference downloadReference) + { + return await ModIOUnityImplementation.DownloadTexture(downloadReference); + } + + public static async Task> DownloadImage(DownloadReference downloadReference) + { + return await ModIOUnityImplementation.GetImage(downloadReference); + } + +#endregion // Media Download + +#region Reporting + + /// + /// Reports a specified mod to mod.io. + /// + /// the object containing all of the details of the report you are sending + /// + /// + /// + /// async void Example() + /// { + /// Report report = new Report(new ModId(123), + /// ReportType.Generic, + /// "reporting this mod for a generic reason", + /// "JohnDoe", + /// "johndoe@mod.io"); + /// + /// Result result = await ModIOUnityAsync.Report(report); + /// + /// if (result.Succeeded()) + /// { + /// Debug.Log("successfully sent a report"); + /// } + /// else + /// { + /// Debug.Log("failed to send a report"); + /// } + /// } + /// + public static async Task Report(Report report) + { + return await ModIOUnityImplementation.Report(report); + } + +#endregion // Reporting + } +} + +#pragma warning restore 4014 // Restore warnings about calling async functions from non-async code diff --git a/Runtime/ModIOUnityAsync.cs.meta b/Runtime/ModIOUnityAsync.cs.meta new file mode 100644 index 0000000..4945a83 --- /dev/null +++ b/Runtime/ModIOUnityAsync.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f59d4c61266df11459a0b647a8014872 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs.meta b/Runtime/Structs.meta new file mode 100644 index 0000000..c5a9f3e --- /dev/null +++ b/Runtime/Structs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 05d3dc4911edecd4e827e5b66beed9c0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/BuildSettings.cs b/Runtime/Structs/BuildSettings.cs new file mode 100644 index 0000000..f88939a --- /dev/null +++ b/Runtime/Structs/BuildSettings.cs @@ -0,0 +1,32 @@ +namespace ModIO +{ + /// + /// Build-specific configuration values. This can be setup directly from the inspector when + /// editing the config settings file, or you can instantiate and use this at runtime with the + /// Initialize method + /// + /// + /// + /// + [System.Serializable] + public class BuildSettings + { + public BuildSettings() { } + public BuildSettings(BuildSettings buildSettings) + { + this.logLevel = buildSettings.logLevel; + this.userPortal = buildSettings.userPortal; + this.requestCacheLimitKB = buildSettings.requestCacheLimitKB; + } + + /// Level to log at. + public LogLevel logLevel; + + /// Portal the game will be launched through. + public UserPortal userPortal; + + // TODO Needs to be implemented alongside RequestCache.cs + /// Size limit for the request cache. + public uint requestCacheLimitKB; + } +} diff --git a/Runtime/Structs/BuildSettings.cs.meta b/Runtime/Structs/BuildSettings.cs.meta new file mode 100644 index 0000000..c1624ad --- /dev/null +++ b/Runtime/Structs/BuildSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dffbd84609699fa488be926071a1aea8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/DownloadReference.cs b/Runtime/Structs/DownloadReference.cs new file mode 100644 index 0000000..6091a68 --- /dev/null +++ b/Runtime/Structs/DownloadReference.cs @@ -0,0 +1,28 @@ +namespace ModIO +{ + /// + /// Used in ModIOUnity.DownloadTexture() to get the Texture. + /// (DownloadReference is serializable with Unity's JsonUtility) + /// + /// + /// + [System.Serializable] + public struct DownloadReference + { + public ModId modId; + public string url; + public string filename; + + /// + /// Check if there is a valid url for this image. You may want to check this before using + /// the ModIOUnity.DownloadTexture method. + /// + /// + /// + /// true if the url isn't null + public bool IsValid() + { + return !string.IsNullOrWhiteSpace(url); + } + } +} diff --git a/Runtime/Structs/DownloadReference.cs.meta b/Runtime/Structs/DownloadReference.cs.meta new file mode 100644 index 0000000..4f3c128 --- /dev/null +++ b/Runtime/Structs/DownloadReference.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0f47b9f11eae8084dadf4d2c9350bc01 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/InstalledMod.cs b/Runtime/Structs/InstalledMod.cs new file mode 100644 index 0000000..1e1a5cc --- /dev/null +++ b/Runtime/Structs/InstalledMod.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; + +namespace ModIO +{ + /// + /// Struct used to represent a mod that already exists on the current device. You can view the + /// subscribed users to this mod as well as the directory and modprofile associated to it. + /// + /// + /// + public struct InstalledMod + { + /// + /// The usernames of all the known users on this device that are subscribed to this mod + /// + public List subscribedUsers; + + /// + /// Whether or not the mod has been marked for an update + /// + public bool updatePending; + + /// + /// the directory of where this mod is installed + /// + public string directory; + + /// + /// The metadata for the version of the mod that is currently installed (Not to be mistaken + /// with the metadata located inside of ModProfile.cs) + /// + public string metadata; + + /// + /// the version of this installed mod + /// + public string version; + + /// + /// the change log for this version of the installed mod + /// + public string changeLog; + + /// + /// The date that this version of the mod was submitted to mod.io + /// + public DateTime dateAdded; + + /// + /// The profile of this mod, including the summary and name + /// + public ModProfile modProfile; + + /// + /// Whether the mod has been marked as enabled or disabled by the user + /// + /// + /// + public bool enabled; + } +} diff --git a/Runtime/Structs/InstalledMod.cs.meta b/Runtime/Structs/InstalledMod.cs.meta new file mode 100644 index 0000000..5dcc28a --- /dev/null +++ b/Runtime/Structs/InstalledMod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c854fb1ffc2846dcaa40516b3469413 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/InstalledModExtensions.cs b/Runtime/Structs/InstalledModExtensions.cs new file mode 100644 index 0000000..d0ccd02 --- /dev/null +++ b/Runtime/Structs/InstalledModExtensions.cs @@ -0,0 +1,26 @@ + +namespace ModIO.Implementation +{ + static class InstalledModExtensions + { + public static UserInstalledMod AsInstalledModsUser(this InstalledMod mod, long userId) + { + if(mod.subscribedUsers.Contains(userId)) + { + return new UserInstalledMod() + { + updatePending = mod.updatePending, + directory = mod.directory, + modProfile = mod.modProfile, + metadata = mod.metadata, + version = mod.version, + changeLog = mod.changeLog, + dateAdded = mod.dateAdded, + enabled = mod.enabled, + }; + } + + return default; + } + } +} diff --git a/Runtime/Structs/InstalledModExtensions.cs.meta b/Runtime/Structs/InstalledModExtensions.cs.meta new file mode 100644 index 0000000..ac1b357 --- /dev/null +++ b/Runtime/Structs/InstalledModExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9494d9787138e7c4496b4a14277a7a05 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/ModDependencies.cs b/Runtime/Structs/ModDependencies.cs new file mode 100644 index 0000000..fb3b4a1 --- /dev/null +++ b/Runtime/Structs/ModDependencies.cs @@ -0,0 +1,18 @@ +using System; + +namespace ModIO.Implementation.API.Objects +{ + /// + /// A struct representing all of the information available for a Mod's Dependencies. + /// + /// + /// + /// + [Serializable] + public struct ModDependencies + { + public ModId modId; + public string modName; + public DateTime dateAdded; + } +} diff --git a/Runtime/Structs/ModDependencies.cs.meta b/Runtime/Structs/ModDependencies.cs.meta new file mode 100644 index 0000000..1a59205 --- /dev/null +++ b/Runtime/Structs/ModDependencies.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 50a3948bb386be24087c38a34db0ddb3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/ModDependenciesObject.cs b/Runtime/Structs/ModDependenciesObject.cs new file mode 100644 index 0000000..9699f26 --- /dev/null +++ b/Runtime/Structs/ModDependenciesObject.cs @@ -0,0 +1,18 @@ +namespace ModIO.Implementation.API.Objects +{ + /// + /// A struct representing all of the information available for a ModDependenciesObject. + /// + /// + /// + [System.Serializable] + public struct ModDependenciesObject + { + //Unique id of the mod that is the dependency. + public int mod_id; + //The name of the dependency (mod name). + public string mod_name; + //Unix timestamp of date the dependency was added. + public int date_added; + } +} diff --git a/Runtime/Structs/ModDependenciesObject.cs.meta b/Runtime/Structs/ModDependenciesObject.cs.meta new file mode 100644 index 0000000..1a2fb90 --- /dev/null +++ b/Runtime/Structs/ModDependenciesObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9b60e1e8ab7a443686c10a736d55c00 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/ModID.cs b/Runtime/Structs/ModID.cs new file mode 100644 index 0000000..093b8c1 --- /dev/null +++ b/Runtime/Structs/ModID.cs @@ -0,0 +1,31 @@ +using System.ComponentModel; +using UnityEngine; + +namespace ModIO +{ + /// + /// A struct representing the globally unique identifier for a specific mod profile. + /// + [System.Serializable, TypeConverter(typeof(ModIdConverter))] + public struct ModId + { + public static readonly ModId Null = new ModId(0L); + + private long _id; + + public long id { get { return _id; } + set { + Debug.Log($"id is changed to {value}"); + _id = value; + } + } + + public ModId(long id) + { + _id = id; + } + + public static implicit operator long(ModId id) => id.id; + public static explicit operator ModId(long id) => new ModId(id); + } +} diff --git a/Runtime/Structs/ModID.cs.meta b/Runtime/Structs/ModID.cs.meta new file mode 100644 index 0000000..277a777 --- /dev/null +++ b/Runtime/Structs/ModID.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4e50875bc32674a4786c64ed053455d9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/ModPage.cs b/Runtime/Structs/ModPage.cs new file mode 100644 index 0000000..c9f75d8 --- /dev/null +++ b/Runtime/Structs/ModPage.cs @@ -0,0 +1,31 @@ +namespace ModIO +{ + /// + /// A struct containing the ModProfiles and total number of remaining results that can be + /// acquired with the SearchFilter used in the GetMods request. + /// + /// + /// + [System.Serializable] + public struct ModPage + { + /// + /// The mod profiles retrieved from this pagination request + /// + /// + /// + public ModProfile[] modProfiles; + + /// + /// the total results that could be found. eg there may be a total of 1,000 mod profiles but + /// this ModPage may only contain the first 100, depending on the SearchFilter pagination + /// settings. + /// + /// + /// + /// + /// + /// + public long totalSearchResultsFound; + } +} diff --git a/Runtime/Structs/ModPage.cs.meta b/Runtime/Structs/ModPage.cs.meta new file mode 100644 index 0000000..6c82e90 --- /dev/null +++ b/Runtime/Structs/ModPage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2654e73aea1b346da8f6c194f824e0df +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/ModProfile.cs b/Runtime/Structs/ModProfile.cs new file mode 100644 index 0000000..7168686 --- /dev/null +++ b/Runtime/Structs/ModProfile.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; + +namespace ModIO +{ + /// + /// A struct representing all of the information available for a ModProfile. + /// + /// + /// + [Serializable] + public struct ModProfile + { + public ModId id; + public string[] tags; + public ModStatus status; + public bool visible; + public string name; + public string summary; + public string description; + public string homePageUrl; + public ContentWarnings contentWarnings; + public DateTime dateAdded; + public DateTime dateUpdated; + public DateTime dateLive; + public DownloadReference[] galleryImages_Original; + public DownloadReference[] galleryImages_320x180; + public DownloadReference[] galleryImages_640x360; + public DownloadReference logoImage_320x180; + public DownloadReference logoImage_640x360; + public DownloadReference logoImage_1280x720; + public DownloadReference logoImage_Original; + public UserProfile creator; + public DownloadReference creatorAvatar_50x50; + public DownloadReference creatorAvatar_100x100; + public DownloadReference creatorAvatar_Original; + + /// + /// The meta data for this mod, not to be confused with the meta data of the specific version + /// + /// + public string metadata; + + /// + /// The most recent version of the mod that exists + /// + public string latestVersion; + + /// + /// the change log for the most recent version of this mod + /// + public string latestChangelog; + + /// + /// the date for when the most recent mod file was uploaded + /// + public DateTime latestDateFileAdded; + + /// + /// the KVP meta data for this mod profile. Not to be confused with the meta data blob or + /// the meta data for the installed version of the mod + /// + public KeyValuePair[] metadataKeyValuePairs; + + public ModStats stats; + public long archiveFileSize; + } +} diff --git a/Runtime/Structs/ModProfile.cs.meta b/Runtime/Structs/ModProfile.cs.meta new file mode 100644 index 0000000..f6464cd --- /dev/null +++ b/Runtime/Structs/ModProfile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2b5c531136656499f83a40c8afe3ad77 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/ModStats.cs b/Runtime/Structs/ModStats.cs new file mode 100644 index 0000000..9b62553 --- /dev/null +++ b/Runtime/Structs/ModStats.cs @@ -0,0 +1,22 @@ +namespace ModIO +{ + /// + /// Detailed stats about a Mod's ratings, downloads, subscribers, popularity etc + /// + [System.Serializable] + public struct ModStats + { + public ModId modId; + public long popularityRankPosition; + public long popularityRankTotalMods; + public long downloadsToday; + public long downloadsTotal; + public long subscriberTotal; + public long ratingsTotal; + public long ratingsPositive; + public long ratingsNegative; + public long ratingsPercentagePositive; + public float ratingsWeightedAggregate; + public string ratingsDisplayText; + } +} diff --git a/Runtime/Structs/ModStats.cs.meta b/Runtime/Structs/ModStats.cs.meta new file mode 100644 index 0000000..bf35f0d --- /dev/null +++ b/Runtime/Structs/ModStats.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 92a14467bc7b9a84589b5ffd98b209f9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/Rating.cs b/Runtime/Structs/Rating.cs new file mode 100644 index 0000000..1c00ac8 --- /dev/null +++ b/Runtime/Structs/Rating.cs @@ -0,0 +1,18 @@ +using System; + +namespace ModIO.Implementation.API.Objects +{ + /// + /// A struct representing all of the information available for a Rating. + /// + /// + /// + /// + [Serializable] + public struct Rating + { + public ModId modId; + public ModRating rating; + public DateTime dateAdded; + } +} diff --git a/Runtime/Structs/Rating.cs.meta b/Runtime/Structs/Rating.cs.meta new file mode 100644 index 0000000..877da1a --- /dev/null +++ b/Runtime/Structs/Rating.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 687b4ebb0dfa11d4e82be49f9c5d1d91 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/RatingObject.cs b/Runtime/Structs/RatingObject.cs new file mode 100644 index 0000000..fdc58b0 --- /dev/null +++ b/Runtime/Structs/RatingObject.cs @@ -0,0 +1,16 @@ +namespace ModIO.Implementation.API.Objects +{ + /// + /// A struct representing all of the information available for a ModDependenciesObject. + /// + /// + /// + [System.Serializable] + public struct RatingObject + { + public uint game_id;//Unique id of the parent game. + public long mod_id;//Unique id of the mod. + public int rating;//Type of rating applied: -1 = Negative Rating or 1 = Positive Rating + public long date_added;//Unix timestamp of date rating was submitted. + } +} diff --git a/Runtime/Structs/RatingObject.cs.meta b/Runtime/Structs/RatingObject.cs.meta new file mode 100644 index 0000000..69d3f41 --- /dev/null +++ b/Runtime/Structs/RatingObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd8ad97f5cfea2b4baf4c921ce1345fb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/Result.cs b/Runtime/Structs/Result.cs new file mode 100644 index 0000000..956ee66 --- /dev/null +++ b/Runtime/Structs/Result.cs @@ -0,0 +1,88 @@ +using ResultCode = ModIO.Implementation.ResultCode; + +namespace ModIO +{ + /// + /// Struct returned from ModIO callbacks to inform the caller if the operation succeeded. + /// + public struct Result + { +#region Internal Implementation + + /// Internal value of the result object. + internal uint code; + internal uint code_api; + +#endregion // Internal Implementation + + /// + /// A string message explaining the result error code in more detail (If one exists). + /// + public string message => ResultCode.GetErrorCodeMeaning(code); + + /// + /// The error code for the result. + /// 0 = Success + /// + public uint errorCode => code; + + public bool Succeeded() + { + return code == ResultCode.Success; + } + + public bool IsCancelled() + { + return code == ResultCode.Internal_OperationCancelled; + } + + public bool IsInitializationError() + { + return code == ResultCode.Init_NotYetInitialized + || code == ResultCode.Init_FailedToLoadConfig; + } + + public bool IsAuthenticationError() + { + return code == ResultCode.User_NotAuthenticated || code == ResultCode.User_InvalidToken + || code == ResultCode.User_InvalidEmailAddress + || code == ResultCode.User_AlreadyAuthenticated + || code_api == ResultCode.RESTAPI_OAuthTokenExpired; + } + + public bool IsInvalidSecurityCode() + { + return code_api == ResultCode.RESTAPI_11012 || code_api == ResultCode.RESTAPI_11014; + } + + public bool IsInvalidEmailAddress() + { + return code == ResultCode.User_InvalidEmailAddress; + } + + public bool IsPermissionError() + { + return this.code == 403 + || this.code_api == ResultCode.RESTAPI_InsufficientWritePermission + || this.code_api == ResultCode.RESTAPI_InsufficientReadPermission + || this.code_api == ResultCode.RESTAPI_InsufficientCreatePermission + || this.code_api == ResultCode.RESTAPI_InsufficientDeletePermission; + } + + /// + /// Checks if the result failed due to no internet connection + /// + /// true if the result failed due to no internet connection + public bool IsNetworkError() + { + return this.code == ResultCode.API_FailedToConnect; + } + + public bool IsStorageSpaceInsufficient() + { + return this.code == ResultCode.IO_InsufficientStorage; + } + + + } +} diff --git a/Runtime/Structs/Result.cs.meta b/Runtime/Structs/Result.cs.meta new file mode 100644 index 0000000..50171de --- /dev/null +++ b/Runtime/Structs/Result.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65a6c6e4e04c34f598c2a90b4458ea73 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/ServerSettings.cs b/Runtime/Structs/ServerSettings.cs new file mode 100644 index 0000000..07d05c4 --- /dev/null +++ b/Runtime/Structs/ServerSettings.cs @@ -0,0 +1,41 @@ +namespace ModIO +{ + /// + /// Describes the server settings to use for the ModIO Plugin. + /// This can be setup directly from the inspector when editing the config settings file, or you + /// can instantiate and use this at runtime with the Initialize method + /// + /// + /// + /// + [System.Serializable] + public struct ServerSettings + { + public ServerSettings(ServerSettings serverSettings) + { + this.serverURL = serverSettings.serverURL; + this.gameId = serverSettings.gameId; + this.gameKey = serverSettings.gameKey; + this.disableUploads = serverSettings.disableUploads; + this.languageCode = serverSettings.languageCode; + } + + /// URL for the mod.io server to connect to. + public string serverURL; + + /// Game Id as can be found on mod.io Web UI. + public uint gameId; + + /// mod.io Service API Key used by your game to connect. + public string gameKey; + + /// + /// Language code for the localizing message responses. + /// See https://docs.mod.io/#localization for possible values. + /// + public string languageCode; + + /// Disables uploading mods and modfiles for this build. + public bool disableUploads; + } +} diff --git a/Runtime/Structs/ServerSettings.cs.meta b/Runtime/Structs/ServerSettings.cs.meta new file mode 100644 index 0000000..25f168c --- /dev/null +++ b/Runtime/Structs/ServerSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd52071a5b9e07c4eb9be8c8a242502a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/SubscribedMod.cs b/Runtime/Structs/SubscribedMod.cs new file mode 100644 index 0000000..da0bf12 --- /dev/null +++ b/Runtime/Structs/SubscribedMod.cs @@ -0,0 +1,26 @@ +namespace ModIO +{ + /// + /// Represents the ModProfile of a mod the current user has subscribed to. Contains the status + /// and a directory (if installed) and the associated ModProfile. + /// + /// Note this is not necessarily an installed mod. You will need to check + /// the status to see whether or not it is installed. + /// + /// + /// + /// + public struct SubscribedMod + { + public SubscribedModStatus status; + public string directory; + public ModProfile modProfile; + + /// + /// Whether the mod has been marked as enabled or disabled by the user + /// + /// + /// + public bool enabled; + } +} diff --git a/Runtime/Structs/SubscribedMod.cs.meta b/Runtime/Structs/SubscribedMod.cs.meta new file mode 100644 index 0000000..6a9b2cd --- /dev/null +++ b/Runtime/Structs/SubscribedMod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b11a427a653b65f4082c5bc03c1e65cd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/Tag.cs b/Runtime/Structs/Tag.cs new file mode 100644 index 0000000..6e116bd --- /dev/null +++ b/Runtime/Structs/Tag.cs @@ -0,0 +1,16 @@ + +namespace ModIO +{ + /// + /// Represents a Tag that can be assigned to a mod. + /// + /// + /// + /// + [System.Serializable] + public struct Tag + { + public string name; + public int totalUses; + } +} diff --git a/Runtime/Structs/Tag.cs.meta b/Runtime/Structs/Tag.cs.meta new file mode 100644 index 0000000..06b2cda --- /dev/null +++ b/Runtime/Structs/Tag.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e39933ea93b4af84e93fc864446a462a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/TagCategory.cs b/Runtime/Structs/TagCategory.cs new file mode 100644 index 0000000..e5c2a37 --- /dev/null +++ b/Runtime/Structs/TagCategory.cs @@ -0,0 +1,19 @@ + +namespace ModIO +{ + /// + /// Represents a particular category of tags. + /// + /// + /// + /// + [System.Serializable] + public struct TagCategory + { + public string name; + public Tag[] tags; + public bool multiSelect; + public bool hidden; + public bool locked; + } +} diff --git a/Runtime/Structs/TagCategory.cs.meta b/Runtime/Structs/TagCategory.cs.meta new file mode 100644 index 0000000..f79808e --- /dev/null +++ b/Runtime/Structs/TagCategory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 139312facb8dba640b5a03f229f33b60 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/TermsHash.cs b/Runtime/Structs/TermsHash.cs new file mode 100644 index 0000000..ef7de17 --- /dev/null +++ b/Runtime/Structs/TermsHash.cs @@ -0,0 +1,18 @@ + +using System; + +namespace ModIO +{ + /// + /// This is the hash that identifies the TOS. Used to validate the TOS requirement when + /// attempting to authenticate a user. + /// + /// + /// + /// + [Serializable] + public struct TermsHash + { + public string md5hash; + } +} diff --git a/Runtime/Structs/TermsHash.cs.meta b/Runtime/Structs/TermsHash.cs.meta new file mode 100644 index 0000000..f586a04 --- /dev/null +++ b/Runtime/Structs/TermsHash.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de1e47af8b0b54629811af299a69dde8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/TermsOfUse.cs b/Runtime/Structs/TermsOfUse.cs new file mode 100644 index 0000000..cb816a6 --- /dev/null +++ b/Runtime/Structs/TermsOfUse.cs @@ -0,0 +1,25 @@ +namespace ModIO +{ + /// + /// TOS object received from a successful use of ModIOUnity.GetTermsOfUse + /// This is used when attempting to authenticate via a third party. You must retrieve the TOS + /// and input it along with an authentication request. + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + [System.Serializable] + public struct TermsOfUse + { + public string termsOfUse; + public TermsOfUseLink[] links; + public TermsHash hash; + } +} diff --git a/Runtime/Structs/TermsOfUse.cs.meta b/Runtime/Structs/TermsOfUse.cs.meta new file mode 100644 index 0000000..ebc7b5d --- /dev/null +++ b/Runtime/Structs/TermsOfUse.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9af2638a312224f28ad47b5d3b2ccacd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/TermsOfUseLink.cs b/Runtime/Structs/TermsOfUseLink.cs new file mode 100644 index 0000000..275ba12 --- /dev/null +++ b/Runtime/Structs/TermsOfUseLink.cs @@ -0,0 +1,16 @@ +using System; + +namespace ModIO +{ + /// + /// Represents a url as part of the TOS. The 'required' field can be used to determine whether or + /// not it is a TOS requirement to be displayed to the end user when viewing the TOS text. + /// + [Serializable] + public struct TermsOfUseLink + { + public string name; + public string url; + public bool required; + } +} diff --git a/Runtime/Structs/TermsOfUseLink.cs.meta b/Runtime/Structs/TermsOfUseLink.cs.meta new file mode 100644 index 0000000..bdafc66 --- /dev/null +++ b/Runtime/Structs/TermsOfUseLink.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3510ac2fcfa4416eb829eda5b31da66 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/UserInstalledMod.cs b/Runtime/Structs/UserInstalledMod.cs new file mode 100644 index 0000000..24a4477 --- /dev/null +++ b/Runtime/Structs/UserInstalledMod.cs @@ -0,0 +1,54 @@ +using System; + +namespace ModIO +{ + /// + /// Struct used to represent a mod that already exists on the current device. You can view the + /// subscribed users to this mod as well as the directory and modprofile associated to it. + /// + public struct UserInstalledMod + { + /// + /// Whether or not the mod has been marked for an update + /// + public bool updatePending; + + /// + /// the directory of where this mod is installed + /// + public string directory; + + /// + /// The metadata for the version of the mod that is currently installed (Not to be mistaken + /// with the metadata located inside of ModProfile.cs) + /// + public string metadata; + + /// + /// the version of this installed mod + /// + public string version; + + /// + /// the change log for this version of the installed mod + /// + public string changeLog; + + /// + /// The date that this version of the mod was submitted to mod.io + /// + public DateTime dateAdded; + + /// + /// The profile of this mod, including the summary and name + /// + public ModProfile modProfile; + + /// + /// Whether the mod has been marked as enabled or disabled by the user + /// + /// + /// + public bool enabled; + } +} diff --git a/Runtime/Structs/UserInstalledMod.cs.meta b/Runtime/Structs/UserInstalledMod.cs.meta new file mode 100644 index 0000000..1915d4b --- /dev/null +++ b/Runtime/Structs/UserInstalledMod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7e50d5af9ad18ac45b02f3a6f99720b9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Structs/UserProfile.cs b/Runtime/Structs/UserProfile.cs new file mode 100644 index 0000000..0267c51 --- /dev/null +++ b/Runtime/Structs/UserProfile.cs @@ -0,0 +1,32 @@ +namespace ModIO +{ + /// + /// Represents a particular mod.io user with their username, DownloadReferences for getting + /// their avatar, as well as their language and timezone. + /// + [System.Serializable] + public struct UserProfile + { + /// + /// The display name of the user's mod.io account + /// + public string username; + + /// + /// This is the unique Id of the user. + /// + public long userId; + + /// + /// The display name of the user's account they authenticated with. Eg if they authenticated + /// with Steam it would be their Steam username. + /// + public string portal_username; + + public DownloadReference avatar_original; + public DownloadReference avatar_50x50; + public DownloadReference avatar_100x100; + public string timezone; + public string language; + } +} diff --git a/Runtime/Structs/UserProfile.cs.meta b/Runtime/Structs/UserProfile.cs.meta new file mode 100644 index 0000000..8981321 --- /dev/null +++ b/Runtime/Structs/UserProfile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9ae83329018862a4db77098469402a65 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility.meta b/Runtime/Utility.meta new file mode 100644 index 0000000..b1fd95b --- /dev/null +++ b/Runtime/Utility.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d3cced8b213c834488678b2241cc9a37 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/CoroutineRunner.cs b/Runtime/Utility/CoroutineRunner.cs new file mode 100644 index 0000000..dc93714 --- /dev/null +++ b/Runtime/Utility/CoroutineRunner.cs @@ -0,0 +1,11 @@ +using System.Collections; +using ModIO.Util; +using UnityEngine; + +namespace Plugins.mod.io.Runtime.Utility +{ + class CoroutineRunner : SelfInstancingMonoSingleton + { + public Coroutine Run(IEnumerator coroutine) => this.StartCoroutine(coroutine); + } +} diff --git a/Runtime/Utility/CoroutineRunner.cs.meta b/Runtime/Utility/CoroutineRunner.cs.meta new file mode 100644 index 0000000..1a81137 --- /dev/null +++ b/Runtime/Utility/CoroutineRunner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5d81137ffc220fd488fe0464074c302d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/MonoDispatcher.cs b/Runtime/Utility/MonoDispatcher.cs new file mode 100644 index 0000000..eb1bb73 --- /dev/null +++ b/Runtime/Utility/MonoDispatcher.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Concurrent; +using System.Threading; +using System.Threading.Tasks; +using UnityEngine; + +namespace ModIO.Util +{ + public class MonoDispatcher : SelfInstancingMonoSingleton + { + Thread mainThread; + readonly ConcurrentQueue actions = new ConcurrentQueue(); + + protected override void Awake() + { + base.Awake(); + mainThread = Thread.CurrentThread; + } + + public bool MainThread() => Thread.CurrentThread == mainThread; + + public void Run(Action action) + { + if(MainThread()) + { + action(); + } + else + { + actions.Enqueue(action); + } + } + + void Update() + { + while(actions.Count > 0) + { + if(actions.TryDequeue(out var result)) + { + result(); + } + else + { + throw new Exception("Failed to dequeue action!"); + } + } + } + + //This may lock Unity + public Task EnqueueAsync(Action action) + { + try + { + var tcs = new TaskCompletionSource(); + + actions.Enqueue(() => + { + try + { + action(); + tcs.SetResult(true); + } + catch(Exception e) + { + tcs.SetException(e); + } + tcs.SetResult(true); + }); + + return tcs.Task; + + } + catch(Exception ex) + { + + Debug.Log("Exception in EnqueueAsync: " + ex.Message); + throw; + } + } + } +} diff --git a/Runtime/Utility/MonoDispatcher.cs.meta b/Runtime/Utility/MonoDispatcher.cs.meta new file mode 100644 index 0000000..09dba2d --- /dev/null +++ b/Runtime/Utility/MonoDispatcher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c84c4c7c37e9f534d9fab8b4adcebf4c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/MonoSingleton.cs b/Runtime/Utility/MonoSingleton.cs new file mode 100644 index 0000000..351e655 --- /dev/null +++ b/Runtime/Utility/MonoSingleton.cs @@ -0,0 +1,55 @@ +using UnityEngine; + +namespace ModIO.Util +{ + public class MonoSingleton : MonoBehaviour, ISimpleMonoSingleton where T : MonoBehaviour + { + protected static T _instance; + public static T Instance + { + get { + if(_instance == null) + { + throw new UnityException("This singleton is not instanced. Maybe you need to initiate this code, perhaps via a prefab?"); + } + + return _instance; + } + + private set { + _instance = value; + } + } + + protected virtual void Awake() + { + SetupSingleton(); + } + + public void SetupSingleton() + { + if(_instance != null && _instance != this) + { + Debug.Log($"Instance of {gameObject.name} already exists on awake, killing."); + Destroy(_instance.gameObject); + _instance = null; + } + + _instance = this as T; + _instance.name = this.ToString(); + } + + protected virtual void OnDestroy() + { + _instance = null; + } + + protected virtual void OnApplicationQuit() + { + Destroy(gameObject); + _instance = null; + } + + public static bool SingletonIsInstantiated() => _instance != null; + } +} diff --git a/Runtime/Utility/MonoSingleton.cs.meta b/Runtime/Utility/MonoSingleton.cs.meta new file mode 100644 index 0000000..6603ed8 --- /dev/null +++ b/Runtime/Utility/MonoSingleton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a315e15ae2a45cf439bf956f5222476e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/Mutex.cs b/Runtime/Utility/Mutex.cs new file mode 100644 index 0000000..99c2022 --- /dev/null +++ b/Runtime/Utility/Mutex.cs @@ -0,0 +1,9 @@ +namespace ModIO.Util +{ + /// + /// This serves only as an abstract handle for using lock(mutex) to synchronize IO operations + /// + public class Mutex + { + } +} diff --git a/Runtime/Utility/Mutex.cs.meta b/Runtime/Utility/Mutex.cs.meta new file mode 100644 index 0000000..e1dde57 --- /dev/null +++ b/Runtime/Utility/Mutex.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e94f09a6c1f87ba4984bd4945e9cc1f1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/PrefabPool.cs b/Runtime/Utility/PrefabPool.cs new file mode 100644 index 0000000..1574a6d --- /dev/null +++ b/Runtime/Utility/PrefabPool.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using UnityEngine; + +namespace ModIO.Util +{ + internal class PrefabPool : SelfInstancingMonoSingleton + { + public Dictionary> pool = new Dictionary>(); + public List pooledItems = new List(); //can find by name here + + public T Load(string name) where T : MonoBehaviour + { + //TODO! Turn the pooled items into a dictionary if it grows beyond 10 elements or so + //as the lookup time starts to matter + var prefab = pooledItems.FirstOrDefault(x => x.name == name); + if(prefab == null) + { + Debug.LogWarning($"Unable to find {name}"); + return null; + } + + var go = GameObject.Instantiate(prefab); + go.name = name; + + return go.GetComponent(); + } + + /// + /// Fetch an item from the pool. + /// This creates a new pool for said item if it doesn't already exists. + /// + public T Get(string name) where T : MonoBehaviour + { + if(pool.TryGetValue(name, out var list)) + { + if(list.Count > 0) + { + var obj = list.First() as T; + list.RemoveAt(0); + obj.gameObject.SetActive(true); + + return obj; + } + } + else + { + pool.Add(name, new List()); + } + + T item = Load(name); + return item; + } + + /// + /// Return an item to its pool. + /// + public void Return(string name, T item) where T : MonoBehaviour + { + item.transform.SetParent(null); + item.gameObject.SetActive(false); + + try + { + pool[name].Add(item); + } + catch(Exception ex) + { + Debug.Log($"Error return item {name} exception {ex}"); + } + } + } +} diff --git a/Runtime/Utility/PrefabPool.cs.meta b/Runtime/Utility/PrefabPool.cs.meta new file mode 100644 index 0000000..9f42be4 --- /dev/null +++ b/Runtime/Utility/PrefabPool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e0295fdc9dc2ae743b1b2365ba9a2df9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/SelfInstancingMonoSingleton.cs b/Runtime/Utility/SelfInstancingMonoSingleton.cs new file mode 100644 index 0000000..4ae47d9 --- /dev/null +++ b/Runtime/Utility/SelfInstancingMonoSingleton.cs @@ -0,0 +1,68 @@ +using UnityEngine; + +namespace ModIO.Util +{ + public interface ISimpleMonoSingleton + { + void SetupSingleton(); + } + + public class SelfInstancingMonoSingleton : MonoBehaviour, ISimpleMonoSingleton where T : MonoBehaviour + { + protected static T _instance; + public static T Instance + { + get { + if(_instance == null) + { + _instance = (T)FindObjectOfType(typeof(T)); + + if(_instance != null) + { + return _instance; + } + var go = new GameObject(); + _instance = go.AddComponent(); + go.name = _instance.ToString(); + } + + return _instance; + } + + private set { + _instance = value; + } + } + + protected virtual void Awake() + { + SetupSingleton(); + } + + public void SetupSingleton() + { + if(_instance != null && _instance != this) + { + Debug.Log($"Instance of {gameObject.name} already exists on awake, killing."); + Destroy(_instance.gameObject); + _instance = null; + } + + _instance = this as T; + _instance.name = this.ToString(); + } + + protected virtual void OnDestroy() + { + _instance = null; + } + + protected virtual void OnApplicationQuit() + { + Destroy(gameObject); + _instance = null; + } + + public static bool SingletonIsInstantiated() => _instance != null; + } +} diff --git a/Runtime/Utility/SelfInstancingMonoSingleton.cs.meta b/Runtime/Utility/SelfInstancingMonoSingleton.cs.meta new file mode 100644 index 0000000..dae3413 --- /dev/null +++ b/Runtime/Utility/SelfInstancingMonoSingleton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8ad15b863cdd4d544aa89abf4fdbfe46 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/SimpleMessageHub.cs b/Runtime/Utility/SimpleMessageHub.cs new file mode 100644 index 0000000..5c43ecf --- /dev/null +++ b/Runtime/Utility/SimpleMessageHub.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; + +namespace ModIO.Util +{ + + //Any message that will be propagated throughout the Simple Message Hub + //needs to inherit from this interface + public interface ISimpleMessage { } + + public class SimpleMessageHub : SelfInstancingMonoSingleton + { + private readonly Dictionary>> dictionary = + new Dictionary>>(); + + private List threadSafeMessages = new List(); + + + /* Here's the general idea: + * to publish a message, you can write: + * SimpleMessageHub.Instance.Publish(new MessageLeavingModDetails()); + * + * Anything that needs to listen to this, will simply subscribe: + * SimpleMessageHub.Instance.Subscribe(x => { + * HideMyself(x); + * }); + * to subscribe to a message + * + * If you at any point you figure you'd need to unsubscribe, you could just do: + * var token = SimpleMessageHub.Instance.Subscribe(x => { + * HideMyself(x); + * }); + * token.Unsubscribe(); + * + * I have made an attempt to also make this "Unity" thread safe, ie: + * SimpleMessageHub.Instance.PublishThreadSafe(new MessageLeavingModDetails()); + * + * All this does is simply run the code on the Unity thread + * There may be a caveat here where I'm not sure where the publish message resides, + * which may have consequences. I'll test for this and cover that up. + * + */ + + public SimpleMessageUnsubscribeToken Subscribe(Action subscription) where T : class, ISimpleMessage + { + var t = typeof(T); + if(!dictionary.ContainsKey(t)) + { + dictionary.Add(t, new List>()); + } + + //This wraps the action so that we can store it, while making sure that + //the original message type of the subscription is used as intended + Action actionWrapper = x => subscription(x as T); + dictionary[t].Add(actionWrapper); + + return new SimpleMessageUnsubscribeToken(() => + { + if(dictionary.ContainsKey(t)) + { + dictionary[t].Remove(actionWrapper); + } + }); + } + + public void Publish(T message) where T : class, ISimpleMessage + { + var t = typeof(T); + if(dictionary.ContainsKey(t)) + { + foreach(var item in dictionary[t]) + { + item(message); + } + } + } + + public void PublishThreadSafe(T message) where T : class, ISimpleMessage + { + lock(threadSafeMessages) + { + threadSafeMessages.Add(message); + } + } + + private void Update() + { + lock(threadSafeMessages) + { + foreach(var m in threadSafeMessages) + { + Publish(m); + } + threadSafeMessages.Clear(); + } + } + + override protected void OnDestroy() + { + dictionary.Clear(); + } + + public void ClearTypeSubscriptions() + { + if(dictionary.ContainsKey(typeof(T))) + { + dictionary[typeof(T)].Clear(); + } + } + } + +} diff --git a/Runtime/Utility/SimpleMessageHub.cs.meta b/Runtime/Utility/SimpleMessageHub.cs.meta new file mode 100644 index 0000000..31ca7ea --- /dev/null +++ b/Runtime/Utility/SimpleMessageHub.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 83b6a765277eb7944b052f7ba0a699bf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/SimpleMessageHubTester.cs b/Runtime/Utility/SimpleMessageHubTester.cs new file mode 100644 index 0000000..c61f854 --- /dev/null +++ b/Runtime/Utility/SimpleMessageHubTester.cs @@ -0,0 +1,45 @@ +using System.Collections; +using UnityEngine; + +namespace ModIO.Util +{ + internal class MessagePoke : ISimpleMessage + { + public int number; + } + + internal class SimpleMessageHubTester : SelfInstancingMonoSingleton + { + SimpleMessageUnsubscribeToken subToken; + + public void RunTest() + { + subToken = SimpleMessageHub.Instance.Subscribe(x => + { + Debug.Log($"I got a message! {x.number}"); + }); + + StartCoroutine(PokeMessages()); + } + + IEnumerator PokeMessages() + { + for(int i = 0; i < 10; i++) + { + SimpleMessageHub.Instance.Publish(new MessagePoke() + { + number = i + }); + yield return new WaitForSeconds(0.5f); + } + + Debug.Log("Unsubscribing!"); + subToken.Unsubscribe(); + + SimpleMessageHub.Instance.Publish(new MessagePoke() + { + number = 99 + }); + } + } +} diff --git a/Runtime/Utility/SimpleMessageHubTester.cs.meta b/Runtime/Utility/SimpleMessageHubTester.cs.meta new file mode 100644 index 0000000..e8d65b3 --- /dev/null +++ b/Runtime/Utility/SimpleMessageHubTester.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6806ba94769104d45a3187eabf6b18f8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/SimpleMessageUnsubscribeToken.cs b/Runtime/Utility/SimpleMessageUnsubscribeToken.cs new file mode 100644 index 0000000..9706563 --- /dev/null +++ b/Runtime/Utility/SimpleMessageUnsubscribeToken.cs @@ -0,0 +1,18 @@ +using System; + +namespace ModIO.Util +{ + public class SimpleMessageUnsubscribeToken + { + public SimpleMessageUnsubscribeToken(Action unsub) + { + unsubAction = unsub; + } + + private Action unsubAction; + public void Unsubscribe() + { + unsubAction(); + } + } +} diff --git a/Runtime/Utility/SimpleMessageUnsubscribeToken.cs.meta b/Runtime/Utility/SimpleMessageUnsubscribeToken.cs.meta new file mode 100644 index 0000000..201493b --- /dev/null +++ b/Runtime/Utility/SimpleMessageUnsubscribeToken.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 98b846dad0015bc43b2a1275b0f14568 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/SimpleSingleton.cs b/Runtime/Utility/SimpleSingleton.cs new file mode 100644 index 0000000..7aa6c8c --- /dev/null +++ b/Runtime/Utility/SimpleSingleton.cs @@ -0,0 +1,30 @@ +using System; + +namespace ModIO.Util +{ + public class SimpleSingleton where T : new() + { + private static T _instance; + + public static T Instance + { + get { + if(_instance == null) + { + _instance = new T(); + } + + return _instance; + } + + set { + if(_instance != null) + { + throw new NotImplementedException(); + } + + _instance = value; + } + } + } +} diff --git a/Runtime/Utility/SimpleSingleton.cs.meta b/Runtime/Utility/SimpleSingleton.cs.meta new file mode 100644 index 0000000..6d53647 --- /dev/null +++ b/Runtime/Utility/SimpleSingleton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 52c0150a5715e6448ac2037449566f32 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Utility/Utility.cs b/Runtime/Utility/Utility.cs new file mode 100644 index 0000000..7cd0555 --- /dev/null +++ b/Runtime/Utility/Utility.cs @@ -0,0 +1,163 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using ModIOBrowser.Implementation; + +namespace ModIO.Util +{ + public static class Utility + { + /// + /// changes an int64 number into something more human readable such as "12.6K" + /// + /// the long to convert to readable string + /// + public static string GenerateHumanReadableNumber(long number) + { + if(number >= 1000000) + { + float divided = number / 1000000f; + return divided.ToString("0.0") + "M"; + } + if(number >= 1000) + { + float divided = number / 1000f; + return divided.ToString("0.0") + "K"; + } + return number.ToString(); + } + + public static string GenerateHumanReadableTimeStringFromSeconds(int seconds) + { + if(seconds < 60f) + { + return seconds.ToString() + " seconds"; + } + else if(seconds < 3600) + { + int minutes = seconds / 60; + int remainingSeconds = seconds % 60; + + return $"{minutes}:{remainingSeconds:00}"; + } + else + { + int hours = seconds / 3600; + int minutes = seconds % 3600 / 60; + int remainingSeconds = seconds % 3600 % 60; + + return $"{hours}:{minutes:00}:{remainingSeconds:00}"; + } + } + + public static string GenerateHumanReadableStringForBytes(long bytes) + { + if(bytes > 1048576) + { + return (bytes / 1048576f).ToString("0.0") + "MB"; + } + else + { + return (bytes / 1024).ToString("0.0") + "KB"; + } + } + + + #region Get a mod status in string format + + public static string GetModStatusAsString(ProgressHandle handle) + { + switch(handle.OperationType) + { + case ModManagementOperationType.None_AlreadyInstalled: + return "Installed"; + case ModManagementOperationType.None_ErrorOcurred: + return "Problem occurred"; + case ModManagementOperationType.Install: + return $"Installing {(int)(handle.Progress * 100)}%"; + case ModManagementOperationType.Download: + return $"Downloading {(int)(handle.Progress * 100)}%"; + case ModManagementOperationType.Uninstall: + return "Uninstalling"; + case ModManagementOperationType.Update: + return $"Updating {(int)(handle.Progress * 100)}%"; + } + return ""; + } + + public static string GetModStatusAsString(SubscribedMod mod) + { + switch(mod.status) + { + case SubscribedModStatus.Installed: + return "Installed"; + case SubscribedModStatus.WaitingToDownload: + return "Waiting to download"; + case SubscribedModStatus.WaitingToInstall: + return "Waiting to install"; + case SubscribedModStatus.WaitingToUpdate: + return "Waiting to Update"; + case SubscribedModStatus.Downloading: + return "Downloading"; + case SubscribedModStatus.Installing: + return "Installing"; + case SubscribedModStatus.Uninstalling: + return "Deleting"; + case SubscribedModStatus.Updating: + return "Updating"; + case SubscribedModStatus.ProblemOccurred: + return "Problem occurred"; + default: + return ""; + } + } + #endregion + + /// + /// You can use this to convert your byte[] steam app ticket into a trimmed base64 encoded + /// string to be used for the steam authentication. + /// + /// the byte[] steam app ticket data + /// the desired length of the ticket to be trimmed to + /// + /// base 64 encoded string from the provided steam app ticket + public static string EncodeEncryptedSteamAppTicket(byte[] ticketData, uint ticketSize) + { + //------------------------------- Trim the app ticket --------------------------------// + byte[] trimmedTicket = new byte[ticketSize]; + Array.Copy(ticketData, trimmedTicket, ticketSize); + + string base64Ticket = null; + try + { + base64Ticket = Convert.ToBase64String(trimmedTicket); + } + catch(Exception exception) + { + Debug.LogError($"[mod.io Browser] Unable to convert the app ticket to a " + + $"base64 string, caught exception: {exception.Message} - " + + $"{exception.InnerException?.Message}"); + } + + return base64Ticket; + } + + + /// + /// Finds everything in a loaded scene. Slow. + /// + public static List FindEverythingInScene() where T : Component + { + List results = new List(); + T[] components = Resources.FindObjectsOfTypeAll(); + foreach(T component in components) + { + if(component.gameObject.scene.isLoaded) + { + results.Add(component); + } + } + return results; + } + } +} diff --git a/Runtime/Utility/Utility.cs.meta b/Runtime/Utility/Utility.cs.meta new file mode 100644 index 0000000..631584f --- /dev/null +++ b/Runtime/Utility/Utility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2699d2ea5046d5843ac70881276938e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Swedish.txt b/Swedish.txt new file mode 100644 index 0000000..ca75ae2 --- /dev/null +++ b/Swedish.txt @@ -0,0 +1,577 @@ +# Modio Swedish translation. +# +msgid "" +msgstr "" + +msgid "Build Info" +msgstr "" +"Project-Id-Version: Modio\n" +"POT-Creation-Date: 2022-10-25 03:01\n" +"PO-Revision-Date: 2022-10-25 03:01\n" +"Language-Team: \n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Play" +msgstr "Spela" + +msgid "Mods" +msgstr "Moddar" + +msgid "Quit" +msgstr "Avsluta" + +msgid "Back" +msgstr "Backa" + +msgid "Featured mods" +msgstr "Presenterade mods" + +msgid "Trending" +msgstr "Trendar" + +msgid "Highest rated" +msgstr "Högsta betyg" + +msgid "BROWSE" +msgstr "BLÄDDRA" + +msgid "COLLECTION" +msgstr "SAMLINGAR" + +msgid "Search & filter" +msgstr "Sök & filtrera" + +msgid "More options" +msgstr "Fler val" + +msgid "Collection" +msgstr "Samling" + +msgid "Enter keyword" +msgstr "Skriv in nyckelord" + +msgid "Check for updates" +msgstr "Kolla efter uppdateringar" + +msgid "Filter by:" +msgstr "Filtrera med:" + +msgid "Subscribed" +msgstr "Prenumererade" + +msgid "Refine filter" +msgstr "Refinera filter" + +msgid "Mods matching:" +msgstr "Mods matchande:" + +msgid "Date submitted" +msgstr "Datum angivet" + +msgid "No results found" +msgstr "Inga resultat funna" + +msgid "Unfortunately we couldn't find any mods matching your search. Let's try different keywords or tags." +msgstr "Tyvärr så kan vi inte hitta några moddar som matchade din sökning. Försök med andra nyckelord eller taggar." + +msgid "Let's refine your search if you haven't found what you were looking for." +msgstr "Förfina din sökning om du inte har funnit vad du letat efter." + +msgid "Mod support by" +msgstr "Mod stöd via" + +msgid "Search results" +msgstr "Sökresultat" + +msgid "Full description" +msgstr "Full beskrivning" + +msgid "Created by:" +msgstr "Skapad av:" + +msgid "Other categories" +msgstr "Andra kategorier" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Log out from mod.io" +msgstr "Logga ut från mod.io" + +msgid "Unsubscribe" +msgstr "Avprenumerera" + +msgid "Waiting for response..." +msgstr "Väntar på svar..." + +msgid "Submit" +msgstr "Ange" + +msgid "Report content violating the sites Terms of Use or submit a DMCA complaint using the form below. Make sure you include all relevant information and links. If you'd like to report Copyright infringement and are the copyright holder, select 'DMCA' below." +msgstr "Rapportera innehåll som bryter mot webbplatsens användarvillkor eller skicka in ett DMCA-klagomål med hjälp av formuläret nedan. Se till att du inkluderar all relevant information och länkar. Om du vill rapportera upphovsrättsintrång och är upphovsrättsinnehavaren väljer du "DMCA"nedan." + +msgid "Email address" +msgstr "Email adress" + +msgid "Reason for reporting:" +msgstr "Skäl för rapportering:" + +msgid "Report a problem" +msgstr "Rapportera ett problem" + +msgid "Your email" +msgstr "Din email" + +msgid "Downloading..." +msgstr "Laddar ner..." + +msgid "No mods are pending downloads." +msgstr "Inga moddar ska laddas ned." + +msgid "No mods are pending download." +msgstr "Inga moddar ska laddas ned" + +msgid "Are you sure you would like to uninstall?" +msgstr "Är du säker på att du vill avinstallera?" + +msgid "No" +msgstr "Nej" + +msgid "Yes" +msgstr "Ja" + +msgid "Describe the report..." +msgstr "Beskriv din rapport..." + +msgid "Generic" +msgstr "Generisk" + +msgid "DMCA" +msgstr "DMCA" + +msgid "Rude content" +msgstr "Oförskämt material." + +msgid "Not working" +msgstr "Fungerar inte" + +msgid "Illegal content" +msgstr "Olagligt innehåll" + +msgid "Stolen content" +msgstr "Stulet innehåll" + +msgid "False information" +msgstr "Falsk information" + +msgid "Other" +msgstr "Annat" + +msgid "Next" +msgstr "Nästa" + +msgid "Done" +msgstr "Klar" + +msgid "Notification" +msgstr "Notifiering" + +msgid "Failed to subscribe" +msgstr "Kunde inte prenumerera." + +msgid "{GetModNameFromId} has been added to the download queue" +msgstr "{GetModNameFromId} är tillagd till nerladdningskön." + +msgid "Unable to subscribe to '{GetModNameFromId}'" +msgstr "Kunde inte prenumerera på '{GetModNameFromId}'" + +msgid "Unsubscribed" +msgstr "Avprenumerera" + +msgid "{GetNameFromModId} has been removed from your collection" +msgstr "{GetNameFromModId} är borttagen från din samling." + +msgid "Rating added" +msgstr "Betyg tillagd" + +msgid "Your rating has been added for {Mod}" +msgstr "Ditt betyg är tillagt för {Mod}" + +msgid "Failed to add rating" +msgstr "Misslyckades med att lägga till betyg." + +msgid "Failed to submit your rating for {Mod}" +msgstr "Misslyckades med att lägga till ditt betyg för {Mod}" + +msgid "Vote up" +msgstr "Upprösta" + +msgid "Vote down" +msgstr "Nedrösta" + +msgid "Report" +msgstr "Rapportera" + +msgid "Authentication" +msgstr "Autentisering" + +msgid "mod.io is a 3rd party utility that provides access to a mod workshop. Choose how you wish to be authenticated." +msgstr "Mod.io är ett tredjeparts verktyg som ger tillgång till en modverkstad. Välj hur du vill bli autentiserad." + +msgid "Are you sure you'd like to log out?" +msgstr "Är du säker på att du vill logga ut?" + +msgid "LogOutMessage" +msgstr "Det här kommer logga ut dig från ditt mod.io konto. Du kan fortfarande se dig omkring men du behöver logga tillbaka för att prenumerera på moddar. Allt som laddas ned eller just nu installeras kommer också avstannas.\n\nÄr du säker på att du vill fortsätta?" + +msgid "Something went wrong!" +msgstr "Något gick fel!" + +msgid "We were unable to connect to the mod.io server. Check you have a stable internet connection and try again." +msgstr "Vi kunde inte koppla upp oss till mod.io servern. Säkerställ att du har en stabil internetuppkoppling och försök igen." + +msgid "Terms of use" +msgstr "Villkor" + +msgid "Email authentication" +msgstr "Email autentisering." + +msgid "Once the email is received, enter the provided confidential code. It should be 5 characters long." +msgstr "När du har fått emailet, skriv in koden. Den bör vara 5 tecken lång." + +msgid "You are now connected to the mod.io browser. You can now subscribe to mods to use in your game and track them in your Collection." +msgstr "Du är nu ihopkopplad med mod.io webbläsaren. Du kan nu prenumerera till moddar för att använda i ditt spel, och du kan följa dem i din Samling." + +msgid "That does not appear to be a valid email. Please check your email address and try again." +msgstr "Det där verkar inte vara en valid emailadress. Säkerställ att emailadressen är funktionell." + +msgid "Invalid email address" +msgstr "Ogiltig emailadress" + +msgid "Make sure you entered a valid email address and that you are still connected to the internet before trying again." +msgstr "Säkerställ att du har skrivit in en valid emailadress och att du fortfarande är uppkopplad till internet." + +msgid "Unable to connect to the mod.io server. Please check your internet connection before retrying." +msgstr "Kan inte koppla till mod.ios server. Säkerställ att din uppkoppling fungerar innan du försöker igen." + +msgid "Something went wrong" +msgstr "Något gick fel" + +msgid "Invalid code" +msgstr "Ogiltig kod." + +msgid "The code that you entered did not match the one sent to the email address you provided. Please check you entered the code correctly." +msgstr "Koden som du skrev in matchar inte den som skickades till emailadressen du skrev in. Dubbelkolla att du skrev in koden ordentligt." + +msgid "We were unable to validate your credentials with the mod.io server." +msgstr "Vi kunde inte validera dina referenser till mod.io servern." + +msgid "Installed" +msgstr "Installerad" + +msgid "Pending..." +msgstr "Väntar..." + +msgid "Checking..." +msgstr "Kollar..." + +msgid "Collection ({subscribedAndPending.Count})" +msgstr "Samling ({subscribedAndPending.Count})" + +msgid "Downloading" +msgstr "Laddar ner" + +msgid "Installing" +msgstr "Installerar" + +msgid "Log in to Subscribe" +msgstr "Logga in för att Prenumerera." + +msgid "Subscribe" +msgstr "Prenumerera" + +msgid "Installing..." +msgstr "Installerar..." + +msgid "{seconds} remaining" +msgstr "{seconds} kvar" + +msgid "{BytesPerSecond)}/s" +msgstr "{BytesPerSecond)}/s" + +msgid "{A} of {B}" +msgstr "{A} av {B}" + +msgid "Mod installed" +msgstr "Mod installerad" + +msgid "{modname} has finished installing" +msgstr "{modname} är nu installerad." + +msgid "Not enough space" +msgstr "Otillräckligt utrymme" + +msgid "{modname} failed to install" +msgstr "{modname} kunde inte installeras" + +msgid "Mod installation failed" +msgstr "Mod installation misslyckades" + +msgid "{modname} failed to download" +msgstr "{modname} kunde inte laddas hem" + +msgid "Mod download failed" +msgstr "Mod nerladdning misslyckades." + +msgid "Mod delete failed" +msgstr "Mod borttaggning misslyckades." + +msgid "{modname} failed to delete" +msgstr "{modname} misslyckades med att raderas" + +msgid "Mod updated" +msgstr "Mod uppdaterad" + +msgid "{modname} has finished updating" +msgstr "{modname} är klar med uppdateringen" + +msgid "Mod update failed" +msgstr "Mod uppdatering misslyckades" + +msgid "Report content violating the sites Terms of Use or submit a DMCA complaint using the form below. Make sure you include all relevant information and links. If you’d like to report Copyright Infringement and are the Copyright holder, select ‘DMCA’ below."; +msgstr "Rapportera innehåll som bryter mot webbplatsens användarvillkor eller skicka in ett DMCA-klagomål med hjälp av formuläret nedan. Se till att du inkluderar all relevant information och länkar. Om du vill rapportera upphovsrättsintrång och är upphovsrättsinnehavare väljer du "DMCA"här nedan."; + +msgid "Your email may be shared with moderators and the person that posted the allegedly infringing content you are reporting." +msgstr "Din email kan bli delad med moderatorer och den som postade det material som du rapporterar." + +msgid "Details of infringement" +msgstr "Överträdelsedetaljer" + +msgid "To help us process your report, please provide as much detail and evidence as possible." +msgstr "För att hjälpa oss processera er rapport bättre, ge oss så mycket bevismaterial som möjligt." + +msgid "The mod has been reported. A confirmation email will be sent to you shortly with the details and the moderators of the mod will be notified." +msgstr "Den här modden har blivit rapporterad. Ett konfirmerings email kommer bli skickad till dig, tillsammans med ärendedetaljer, och moderatorerna av modden kommer bli notifierade." + +msgid "Something went wrong when trying to send your report." +msgstr "Något gick fel när din rapport skulle skickas." + +msgid "and {number} other tags" +msgstr "och {number} andra taggar" + +msgid "You've gone through {number} mods" +msgstr "Du har gått igenom {number} moddar" + +msgid "{num} Mods found" +msgstr "{num} Moddar funna" + +msgid "{num} Mods found for {lastUsedSearchPhrase}" +msgstr "{num} moddar funna med {lastUsedSearchPhrase}" + +msgid "A problem occurred" +msgstr "Ett problem uppstod." + +msgid "Error" +msgstr "Fel" + +msgid "This textbox is unable to display the input configuration." +msgstr "Den här textlådan kan inte visa upp inmatningskonfigureringen." + +msgid "Queued" +msgstr "Köad" + +msgid "Updating" +msgstr "Updaterar" + +msgid "Problem occurred" +msgstr "Problem uppstod" + +msgid "Ready to install" +msgstr "Redo att installeras" + +msgid "Uninstalling" +msgstr "Avinstallerar" + +msgid "Uninstalled" +msgstr "Avinstallerat" + +msgid "Installing (progress}%" +msgstr "Installation (progress}%" + +msgid "Downloading {progress}%" +msgstr "Nerladdning {progress}%" + +msgid "Updating {progress}%" +msgstr "Uppdatering {progress}%" + +msgid "Waiting to download" +msgstr "Väntar på att ladda ned" + +msgid "Waiting to install" +msgstr "Väntar på att installera" + +msgid "Waiting to Update" +msgstr "Väntar på att uppdatera" + +msgid "Deleting" +msgstr "Tar bort" + +msgid "{subcount} other users" +msgstr "{subcount} andra användare" + +msgid "Full storage" +msgstr "Full förvaring" + +msgid "Subscribed mods" +msgstr "Prenumerade mods" + +msgid "Mod name" +msgstr "Modnamn" + +msgid "File size:" +msgstr "Filstorlek:" + +msgid "Last updated:" +msgstr "Senast uppdaterad:" + +msgid "Release date:" +msgstr "Utgivningsdatum:" + +msgid "Subscribers:" +msgstr "Prenumererare:" + +msgid "Search" +msgstr "Sök" + +msgid "Clear filter" +msgstr "Rensa filter" + +msgid "Log out" +msgstr "Logga ut" + +msgid "Queue" +msgstr "Köa" + +msgid "Privacy Policy" +msgstr "Integritetspolicy" + +msgid "Connect with Epic" +msgstr "Anslut med Epic" + +msgid "Connect with GOG" +msgstr "Anslut med GOG" + +msgid "Connect with Steam" +msgstr "Anslut med Steam" + +msgid "Connect with Xbox" +msgstr "Anslut med Xbox" + +msgid "Connect with Switch" +msgstr "Anslut med Switch" + +msgid "Connect with email" +msgstr "Anslut med email" + +msgid "Back" +msgstr "Backa" + +msgid "I agree" +msgstr "OK" + +msgid "Send code" +msgstr "Sänd kod" + +msgid "Continue browsing" +msgstr "Fortsätt browsa" + +msgid "Most popular" +msgstr "Populärast" + +msgid "Recently added" +msgstr "Senast tillagda" + +msgid "Updated" +msgstr "Uppdaterad" + +msgid "Obviously explicit mod" +msgstr "Uppenbarligen en lurig mod" + +msgid "Authentication completed" +msgstr "Autentisering klar" + +msgid "Settings" +msgstr "Inställningar" + +msgid "Audio" +msgstr "Ljud" + +msgid "Game Id:" +msgstr "Spel Id:" + +msgid "Api Key:" +msgstr "Api Nyckel:" + +msgid "Production Server Url" +msgstr "Produktionsserver Url" + +msgid "Test Server Url" +msgstr "Testserver Url" + +msgid "Save" +msgstr "Spara" + +msgid "Language" +msgstr "Språk" + +msgid "Please check your email {email} for your 5 digit code to verify it below." +msgstr "Kolla din mail på {email} för att se din 5-siffriga kod. Verifiera den nedan." + +msgid "Code sent" +msgstr "Kod skickad" + +msgid "Enter code" +msgstr "Ange kod" + +msgid "Sort by:" +msgstr "Sortera via:" + +msgid "Downloaded" +msgstr "Nerladdad" + +msgid "Connect with PlayStation" +msgstr "Connect with PlayStation" + +msgid "Game Id" +msgstr "Game Id" + +msgid "Api Key" +msgstr "Api Key" + +msgid "Game id: {text}" +msgstr "Game id: {text}" + +msgid "Server Url: {text}" +msgstr "Server Url: {text}" + +msgid "Failed to fetch mods" +msgstr "Misslyckades med att hämta mods" + +msgid "Retry all failed fetches" +msgstr "Försök att hämta igen." + +msgid "Failed to uninstall" +msgstr "Failed to uninstall" + +msgid "Uninstalled the mod '{name}'" +msgstr "Uninstalled the mod '{name}'" + +msgid "Failed to uninstall the mod '{name}'" +msgstr "Failed to uninstall the mod '{name}'" + +msgid "Uninstall" +msgstr "Uninstall" diff --git a/Swedish.txt.meta b/Swedish.txt.meta new file mode 100644 index 0000000..076305f --- /dev/null +++ b/Swedish.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 537b5c01e60e20244b052bb739c690b8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty.meta b/ThirdParty.meta new file mode 100644 index 0000000..737ec4f --- /dev/null +++ b/ThirdParty.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6fad783d80d1c4771ba4eb47933ec218 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip.meta b/ThirdParty/SharpZip.meta new file mode 100644 index 0000000..5bc0f77 --- /dev/null +++ b/ThirdParty/SharpZip.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bff87e348c0374c70b404b70b54b0bd9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/LICENSE.txt b/ThirdParty/SharpZip/LICENSE.txt new file mode 100644 index 0000000..f4597ac --- /dev/null +++ b/ThirdParty/SharpZip/LICENSE.txt @@ -0,0 +1,17 @@ +Copyright © 2000-2018 SharpZipLib Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/ThirdParty/SharpZip/LICENSE.txt.meta b/ThirdParty/SharpZip/LICENSE.txt.meta new file mode 100644 index 0000000..6621a54 --- /dev/null +++ b/ThirdParty/SharpZip/LICENSE.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 27de9632cbad041b8925d06c78a2d5fb +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/README.md b/ThirdParty/SharpZip/README.md new file mode 100644 index 0000000..a27570f --- /dev/null +++ b/ThirdParty/SharpZip/README.md @@ -0,0 +1,41 @@ +# SharpZipLib [![Build Status](https://github.com/icsharpcode/SharpZipLib/actions/workflows/build-test.yml/badge.svg?branch=master)](https://github.com/icsharpcode/SharpZipLib/actions/workflows/build-test.yml) [![NuGet Version](https://img.shields.io/nuget/v/SharpZipLib.svg)](https://www.nuget.org/packages/SharpZipLib/) + +Introduction +------------ + +SharpZipLib (\#ziplib, formerly NZipLib) is a compression library that supports Zip files using both stored and deflate compression methods, PKZIP 2.0 style and AES encryption, tar with GNU long filename extensions, GZip, zlib and raw deflate, as well as BZip2. Zip64 is supported while Deflate64 is not yet supported. It is implemented as an assembly (installable in the GAC), and thus can easily be incorporated into other projects (in any .NET language). The creator of SharpZipLib put it this way: "I've ported the zip library over to C\# because I needed gzip/zip compression and I didn't want to use libzip.dll or something like this. I want all in pure C\#." + +SharpZipLib was originally ported from the [GNU Classpath](http://www.gnu.org/software/classpath/) java.util.zip library for use with [SharpDevelop](http://www.icsharpcode.net/OpenSource/SD), which needed gzip/zip compression. bzip2 compression and tar archiving were added later due to popular demand. + +The [SharpZipLib homepage](http://icsharpcode.github.io/SharpZipLib/) has precompiled libraries available for download, [API documentation](https://icsharpcode.github.io/SharpZipLib/help/api/index.html), [release history](https://github.com/icsharpcode/SharpZipLib/wiki/Release-History), samples and more. + +License +------- + +This software is now released under the [MIT License](https://opensource.org/licenses/MIT). Please see [issue #103](https://github.com/icsharpcode/SharpZipLib/issues/103) for more information on the relicensing effort. + +Previous versions were released under the [GNU General Public License, version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) with an [exception](http://www.gnu.org/software/classpath/license.html) which allowed linking with non-GPL programs. + +Namespace layout +---------------- + +| Module | Namespace | +|:----------------:|:-----------------------------| +|BZip2 implementation|ICSharpCode.SharpZipLib.BZip2.\*| +|Checksum implementation|ICSharpCode.SharpZipLib.Checksum.\*| +|Core utilities / interfaces|ICSharpCode.SharpZipLib.Core.\*| +|Encryption implementation|ICSharpCode.SharpZipLib.Encryption.\*| +|GZip implementation|ICSharpCode.SharpZipLib.GZip.\*| +|LZW implementation|ICSharpCode.SharpZipLib.Lzw.\*| +|Tar implementation|ICSharpCode.SharpZipLib.Tar.\*| +|ZIP implementation|ICSharpCode.SharpZipLib.Zip.\*| +|Inflater/Deflater|ICSharpCode.SharpZipLib.Zip.Compression.\*| +|Inflater/Deflater streams|ICSharpCode.SharpZipLib.Zip.Compression.Streams.\*| + +Credits +------- + +SharpZipLib was initially developed by [Mike Krüger](http://www.icsharpcode.net/pub/relations/krueger.aspx). Past maintainers are John Reilly, David Pierson and Neil McNeight. + +And thanks to all the people that contributed features, bug fixes and issue reports. + diff --git a/ThirdParty/SharpZip/README.md.meta b/ThirdParty/SharpZip/README.md.meta new file mode 100644 index 0000000..65fef9f --- /dev/null +++ b/ThirdParty/SharpZip/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: be6a88b4579994eb4b4651abd24fe42e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src.meta b/ThirdParty/SharpZip/src.meta new file mode 100644 index 0000000..66c2497 --- /dev/null +++ b/ThirdParty/SharpZip/src.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e74fde21463924651919c89c614d255e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib.meta new file mode 100644 index 0000000..ab0eafe --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1dccf872ef71340369aab1d78a39b661 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2.meta new file mode 100644 index 0000000..1fce9dc --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17e31b23c38c34836892259b19fb93c6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2.cs new file mode 100644 index 0000000..4bd48b0 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2.cs @@ -0,0 +1,79 @@ +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.BZip2 +{ + /// + /// An example class to demonstrate compression and decompression of BZip2 streams. + /// + public static class BZip2 + { + /// + /// Decompress the input writing + /// uncompressed data to the output stream + /// + /// The readable stream containing data to decompress. + /// The output stream to receive the decompressed data. + /// Both streams are closed on completion if true. + public static void Decompress(Stream inStream, Stream outStream, bool isStreamOwner) + { + if (inStream == null) + throw new ArgumentNullException(nameof(inStream)); + + if (outStream == null) + throw new ArgumentNullException(nameof(outStream)); + + try + { + using (BZip2InputStream bzipInput = new BZip2InputStream(inStream)) + { + bzipInput.IsStreamOwner = isStreamOwner; + Core.StreamUtils.Copy(bzipInput, outStream, new byte[4096]); + } + } + finally + { + if (isStreamOwner) + { + // inStream is closed by the BZip2InputStream if stream owner + outStream.Dispose(); + } + } + } + + /// + /// Compress the input stream sending + /// result data to output stream + /// + /// The readable stream to compress. + /// The output stream to receive the compressed data. + /// Both streams are closed on completion if true. + /// Block size acts as compression level (1 to 9) with 1 giving + /// the lowest compression and 9 the highest. + public static void Compress(Stream inStream, Stream outStream, bool isStreamOwner, int level) + { + if (inStream == null) + throw new ArgumentNullException(nameof(inStream)); + + if (outStream == null) + throw new ArgumentNullException(nameof(outStream)); + + try + { + using (BZip2OutputStream bzipOutput = new BZip2OutputStream(outStream, level)) + { + bzipOutput.IsStreamOwner = isStreamOwner; + Core.StreamUtils.Copy(inStream, bzipOutput, new byte[4096]); + } + } + finally + { + if (isStreamOwner) + { + // outStream is closed by the BZip2OutputStream if stream owner + inStream.Dispose(); + } + } + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2.cs.meta new file mode 100644 index 0000000..8b2984e --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 511436aad2c9844739eb4dde2c5fea47 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs new file mode 100644 index 0000000..52fb8ad --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs @@ -0,0 +1,117 @@ +namespace ICSharpCode.SharpZipLib.BZip2 +{ + /// + /// Defines internal values for both compression and decompression + /// + internal static class BZip2Constants + { + /// + /// Random numbers used to randomise repetitive blocks + /// + public readonly static int[] RandomNumbers = { + 619, 720, 127, 481, 931, 816, 813, 233, 566, 247, + 985, 724, 205, 454, 863, 491, 741, 242, 949, 214, + 733, 859, 335, 708, 621, 574, 73, 654, 730, 472, + 419, 436, 278, 496, 867, 210, 399, 680, 480, 51, + 878, 465, 811, 169, 869, 675, 611, 697, 867, 561, + 862, 687, 507, 283, 482, 129, 807, 591, 733, 623, + 150, 238, 59, 379, 684, 877, 625, 169, 643, 105, + 170, 607, 520, 932, 727, 476, 693, 425, 174, 647, + 73, 122, 335, 530, 442, 853, 695, 249, 445, 515, + 909, 545, 703, 919, 874, 474, 882, 500, 594, 612, + 641, 801, 220, 162, 819, 984, 589, 513, 495, 799, + 161, 604, 958, 533, 221, 400, 386, 867, 600, 782, + 382, 596, 414, 171, 516, 375, 682, 485, 911, 276, + 98, 553, 163, 354, 666, 933, 424, 341, 533, 870, + 227, 730, 475, 186, 263, 647, 537, 686, 600, 224, + 469, 68, 770, 919, 190, 373, 294, 822, 808, 206, + 184, 943, 795, 384, 383, 461, 404, 758, 839, 887, + 715, 67, 618, 276, 204, 918, 873, 777, 604, 560, + 951, 160, 578, 722, 79, 804, 96, 409, 713, 940, + 652, 934, 970, 447, 318, 353, 859, 672, 112, 785, + 645, 863, 803, 350, 139, 93, 354, 99, 820, 908, + 609, 772, 154, 274, 580, 184, 79, 626, 630, 742, + 653, 282, 762, 623, 680, 81, 927, 626, 789, 125, + 411, 521, 938, 300, 821, 78, 343, 175, 128, 250, + 170, 774, 972, 275, 999, 639, 495, 78, 352, 126, + 857, 956, 358, 619, 580, 124, 737, 594, 701, 612, + 669, 112, 134, 694, 363, 992, 809, 743, 168, 974, + 944, 375, 748, 52, 600, 747, 642, 182, 862, 81, + 344, 805, 988, 739, 511, 655, 814, 334, 249, 515, + 897, 955, 664, 981, 649, 113, 974, 459, 893, 228, + 433, 837, 553, 268, 926, 240, 102, 654, 459, 51, + 686, 754, 806, 760, 493, 403, 415, 394, 687, 700, + 946, 670, 656, 610, 738, 392, 760, 799, 887, 653, + 978, 321, 576, 617, 626, 502, 894, 679, 243, 440, + 680, 879, 194, 572, 640, 724, 926, 56, 204, 700, + 707, 151, 457, 449, 797, 195, 791, 558, 945, 679, + 297, 59, 87, 824, 713, 663, 412, 693, 342, 606, + 134, 108, 571, 364, 631, 212, 174, 643, 304, 329, + 343, 97, 430, 751, 497, 314, 983, 374, 822, 928, + 140, 206, 73, 263, 980, 736, 876, 478, 430, 305, + 170, 514, 364, 692, 829, 82, 855, 953, 676, 246, + 369, 970, 294, 750, 807, 827, 150, 790, 288, 923, + 804, 378, 215, 828, 592, 281, 565, 555, 710, 82, + 896, 831, 547, 261, 524, 462, 293, 465, 502, 56, + 661, 821, 976, 991, 658, 869, 905, 758, 745, 193, + 768, 550, 608, 933, 378, 286, 215, 979, 792, 961, + 61, 688, 793, 644, 986, 403, 106, 366, 905, 644, + 372, 567, 466, 434, 645, 210, 389, 550, 919, 135, + 780, 773, 635, 389, 707, 100, 626, 958, 165, 504, + 920, 176, 193, 713, 857, 265, 203, 50, 668, 108, + 645, 990, 626, 197, 510, 357, 358, 850, 858, 364, + 936, 638 + }; + + /// + /// When multiplied by compression parameter (1-9) gives the block size for compression + /// 9 gives the best compression but uses the most memory. + /// + public const int BaseBlockSize = 100000; + + /// + /// Backend constant + /// + public const int MaximumAlphaSize = 258; + + /// + /// Backend constant + /// + public const int MaximumCodeLength = 23; + + /// + /// Backend constant + /// + public const int RunA = 0; + + /// + /// Backend constant + /// + public const int RunB = 1; + + /// + /// Backend constant + /// + public const int GroupCount = 6; + + /// + /// Backend constant + /// + public const int GroupSize = 50; + + /// + /// Backend constant + /// + public const int NumberOfIterations = 4; + + /// + /// Backend constant + /// + public const int MaximumSelectors = (2 + (900000 / GroupSize)); + + /// + /// Backend constant + /// + public const int OvershootBytes = 20; + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs.meta new file mode 100644 index 0000000..e8d3f77 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 11ed5a4b8bf0e4ef1b797d1ead19c823 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs new file mode 100644 index 0000000..111d21c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs @@ -0,0 +1,54 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib.BZip2 +{ + /// + /// BZip2Exception represents exceptions specific to BZip2 classes and code. + /// + [Serializable] + public class BZip2Exception : SharpZipBaseException + { + /// + /// Initialise a new instance of . + /// + public BZip2Exception() + { + } + + /// + /// Initialise a new instance of with its message string. + /// + /// A that describes the error. + public BZip2Exception(string message) + : base(message) + { + } + + /// + /// Initialise a new instance of . + /// + /// A that describes the error. + /// The that caused this exception. + public BZip2Exception(string message, Exception innerException) + : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the BZip2Exception class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected BZip2Exception(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs.meta new file mode 100644 index 0000000..9ee9331 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bc205139deb8f40a9a05862b4d1f0862 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs new file mode 100644 index 0000000..3948b4e --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs @@ -0,0 +1,1053 @@ +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER + #define VECTORIZE_MEMORY_MOVE +#endif + +using ICSharpCode.SharpZipLib.Checksum; +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.BZip2 +{ + /// + /// An input stream that decompresses files in the BZip2 format + /// + public class BZip2InputStream : Stream + { + #region Constants + + private const int START_BLOCK_STATE = 1; + private const int RAND_PART_A_STATE = 2; + private const int RAND_PART_B_STATE = 3; + private const int RAND_PART_C_STATE = 4; + private const int NO_RAND_PART_A_STATE = 5; + private const int NO_RAND_PART_B_STATE = 6; + private const int NO_RAND_PART_C_STATE = 7; + +#if VECTORIZE_MEMORY_MOVE + private static readonly int VectorSize = System.Numerics.Vector.Count; +#endif // VECTORIZE_MEMORY_MOVE + +#endregion Constants + + #region Instance Fields + + /*-- + index of the last char in the block, so + the block size == last + 1. + --*/ + private int last; + + /*-- + index in zptr[] of original string after sorting. + --*/ + private int origPtr; + + /*-- + always: in the range 0 .. 9. + The current block size is 100000 * this number. + --*/ + private int blockSize100k; + + private bool blockRandomised; + + private int bsBuff; + private int bsLive; + private IChecksum mCrc = new BZip2Crc(); + + private bool[] inUse = new bool[256]; + private int nInUse; + + private byte[] seqToUnseq = new byte[256]; + private byte[] unseqToSeq = new byte[256]; + + private byte[] selector = new byte[BZip2Constants.MaximumSelectors]; + private byte[] selectorMtf = new byte[BZip2Constants.MaximumSelectors]; + + private int[] tt; + private byte[] ll8; + + /*-- + freq table collected to save a pass over the data + during decompression. + --*/ + private int[] unzftab = new int[256]; + + private int[][] limit = new int[BZip2Constants.GroupCount][]; + private int[][] baseArray = new int[BZip2Constants.GroupCount][]; + private int[][] perm = new int[BZip2Constants.GroupCount][]; + private int[] minLens = new int[BZip2Constants.GroupCount]; + + private readonly Stream baseStream; + private bool streamEnd; + + private int currentChar = -1; + + private int currentState = START_BLOCK_STATE; + + private int storedBlockCRC, storedCombinedCRC; + private int computedBlockCRC; + private uint computedCombinedCRC; + + private int count, chPrev, ch2; + private int tPos; + private int rNToGo; + private int rTPos; + private int i2, j2; + private byte z; + + #endregion Instance Fields + + /// + /// Construct instance for reading from stream + /// + /// Data source + public BZip2InputStream(Stream stream) + { + if (stream == null) + throw new ArgumentNullException(nameof(stream)); + // init arrays + for (int i = 0; i < BZip2Constants.GroupCount; ++i) + { + limit[i] = new int[BZip2Constants.MaximumAlphaSize]; + baseArray[i] = new int[BZip2Constants.MaximumAlphaSize]; + perm[i] = new int[BZip2Constants.MaximumAlphaSize]; + } + + baseStream = stream; + bsLive = 0; + bsBuff = 0; + Initialize(); + InitBlock(); + SetupBlock(); + } + + /// + /// Get/set flag indicating ownership of underlying stream. + /// When the flag is true will close the underlying stream also. + /// + public bool IsStreamOwner { get; set; } = true; + + #region Stream Overrides + + /// + /// Gets a value indicating if the stream supports reading + /// + public override bool CanRead + { + get + { + return baseStream.CanRead; + } + } + + /// + /// Gets a value indicating whether the current stream supports seeking. + /// + public override bool CanSeek + { + get + { + return false; + } + } + + /// + /// Gets a value indicating whether the current stream supports writing. + /// This property always returns false + /// + public override bool CanWrite + { + get + { + return false; + } + } + + /// + /// Gets the length in bytes of the stream. + /// + public override long Length + { + get + { + return baseStream.Length; + } + } + + /// + /// Gets the current position of the stream. + /// Setting the position is not supported and will throw a NotSupportException. + /// + /// Any attempt to set the position. + public override long Position + { + get + { + return baseStream.Position; + } + set + { + throw new NotSupportedException("BZip2InputStream position cannot be set"); + } + } + + /// + /// Flushes the stream. + /// + public override void Flush() + { + baseStream.Flush(); + } + + /// + /// Set the streams position. This operation is not supported and will throw a NotSupportedException + /// + /// A byte offset relative to the parameter. + /// A value of type indicating the reference point used to obtain the new position. + /// The new position of the stream. + /// Any access + public override long Seek(long offset, SeekOrigin origin) + { + throw new NotSupportedException("BZip2InputStream Seek not supported"); + } + + /// + /// Sets the length of this stream to the given value. + /// This operation is not supported and will throw a NotSupportedExceptionortedException + /// + /// The new length for the stream. + /// Any access + public override void SetLength(long value) + { + throw new NotSupportedException("BZip2InputStream SetLength not supported"); + } + + /// + /// Writes a block of bytes to this stream using data from a buffer. + /// This operation is not supported and will throw a NotSupportedException + /// + /// The buffer to source data from. + /// The offset to start obtaining data from. + /// The number of bytes of data to write. + /// Any access + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotSupportedException("BZip2InputStream Write not supported"); + } + + /// + /// Writes a byte to the current position in the file stream. + /// This operation is not supported and will throw a NotSupportedException + /// + /// The value to write. + /// Any access + public override void WriteByte(byte value) + { + throw new NotSupportedException("BZip2InputStream WriteByte not supported"); + } + + /// + /// Read a sequence of bytes and advances the read position by one byte. + /// + /// Array of bytes to store values in + /// Offset in array to begin storing data + /// The maximum number of bytes to read + /// The total number of bytes read into the buffer. This might be less + /// than the number of bytes requested if that number of bytes are not + /// currently available or zero if the end of the stream is reached. + /// + public override int Read(byte[] buffer, int offset, int count) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + for (int i = 0; i < count; ++i) + { + int rb = ReadByte(); + if (rb == -1) + { + return i; + } + buffer[offset + i] = (byte)rb; + } + return count; + } + + /// + /// Closes the stream, releasing any associated resources. + /// + protected override void Dispose(bool disposing) + { + if (disposing && IsStreamOwner) + { + baseStream.Dispose(); + } + } + + /// + /// Read a byte from stream advancing position + /// + /// byte read or -1 on end of stream + public override int ReadByte() + { + if (streamEnd) + { + return -1; // ok + } + + int retChar = currentChar; + switch (currentState) + { + case RAND_PART_B_STATE: + SetupRandPartB(); + break; + + case RAND_PART_C_STATE: + SetupRandPartC(); + break; + + case NO_RAND_PART_B_STATE: + SetupNoRandPartB(); + break; + + case NO_RAND_PART_C_STATE: + SetupNoRandPartC(); + break; + + case START_BLOCK_STATE: + case NO_RAND_PART_A_STATE: + case RAND_PART_A_STATE: + break; + } + return retChar; + } + + #endregion Stream Overrides + + private void MakeMaps() + { + nInUse = 0; + for (int i = 0; i < 256; ++i) + { + if (inUse[i]) + { + seqToUnseq[nInUse] = (byte)i; + unseqToSeq[i] = (byte)nInUse; + nInUse++; + } + } + } + + private void Initialize() + { + char magic1 = BsGetUChar(); + char magic2 = BsGetUChar(); + + char magic3 = BsGetUChar(); + char magic4 = BsGetUChar(); + + if (magic1 != 'B' || magic2 != 'Z' || magic3 != 'h' || magic4 < '1' || magic4 > '9') + { + streamEnd = true; + return; + } + + SetDecompressStructureSizes(magic4 - '0'); + computedCombinedCRC = 0; + } + + private void InitBlock() + { + char magic1 = BsGetUChar(); + char magic2 = BsGetUChar(); + char magic3 = BsGetUChar(); + char magic4 = BsGetUChar(); + char magic5 = BsGetUChar(); + char magic6 = BsGetUChar(); + + if (magic1 == 0x17 && magic2 == 0x72 && magic3 == 0x45 && magic4 == 0x38 && magic5 == 0x50 && magic6 == 0x90) + { + Complete(); + return; + } + + if (magic1 != 0x31 || magic2 != 0x41 || magic3 != 0x59 || magic4 != 0x26 || magic5 != 0x53 || magic6 != 0x59) + { + BadBlockHeader(); + streamEnd = true; + return; + } + + storedBlockCRC = BsGetInt32(); + + blockRandomised = (BsR(1) == 1); + + GetAndMoveToFrontDecode(); + + mCrc.Reset(); + currentState = START_BLOCK_STATE; + } + + private void EndBlock() + { + computedBlockCRC = (int)mCrc.Value; + + // -- A bad CRC is considered a fatal error. -- + if (storedBlockCRC != computedBlockCRC) + { + CrcError(); + } + + // 1528150659 + computedCombinedCRC = ((computedCombinedCRC << 1) & 0xFFFFFFFF) | (computedCombinedCRC >> 31); + computedCombinedCRC = computedCombinedCRC ^ (uint)computedBlockCRC; + } + + private void Complete() + { + storedCombinedCRC = BsGetInt32(); + if (storedCombinedCRC != (int)computedCombinedCRC) + { + CrcError(); + } + + streamEnd = true; + } + + private void FillBuffer() + { + int thech = 0; + + try + { + thech = baseStream.ReadByte(); + } + catch (Exception) + { + CompressedStreamEOF(); + } + + if (thech == -1) + { + CompressedStreamEOF(); + } + + bsBuff = (bsBuff << 8) | (thech & 0xFF); + bsLive += 8; + } + + private int BsR(int n) + { + while (bsLive < n) + { + FillBuffer(); + } + + int v = (bsBuff >> (bsLive - n)) & ((1 << n) - 1); + bsLive -= n; + return v; + } + + private char BsGetUChar() + { + return (char)BsR(8); + } + + private int BsGetIntVS(int numBits) + { + return BsR(numBits); + } + + private int BsGetInt32() + { + int result = BsR(8); + result = (result << 8) | BsR(8); + result = (result << 8) | BsR(8); + result = (result << 8) | BsR(8); + return result; + } + + private void RecvDecodingTables() + { + char[][] len = new char[BZip2Constants.GroupCount][]; + for (int i = 0; i < BZip2Constants.GroupCount; ++i) + { + len[i] = new char[BZip2Constants.MaximumAlphaSize]; + } + + bool[] inUse16 = new bool[16]; + + //--- Receive the mapping table --- + for (int i = 0; i < 16; i++) + { + inUse16[i] = (BsR(1) == 1); + } + + for (int i = 0; i < 16; i++) + { + if (inUse16[i]) + { + for (int j = 0; j < 16; j++) + { + inUse[i * 16 + j] = (BsR(1) == 1); + } + } + else + { + for (int j = 0; j < 16; j++) + { + inUse[i * 16 + j] = false; + } + } + } + + MakeMaps(); + int alphaSize = nInUse + 2; + + //--- Now the selectors --- + int nGroups = BsR(3); + int nSelectors = BsR(15); + + for (int i = 0; i < nSelectors; i++) + { + int j = 0; + while (BsR(1) == 1) + { + j++; + } + selectorMtf[i] = (byte)j; + } + + //--- Undo the MTF values for the selectors. --- + byte[] pos = new byte[BZip2Constants.GroupCount]; + for (int v = 0; v < nGroups; v++) + { + pos[v] = (byte)v; + } + + for (int i = 0; i < nSelectors; i++) + { + int v = selectorMtf[i]; + byte tmp = pos[v]; + while (v > 0) + { + pos[v] = pos[v - 1]; + v--; + } + pos[0] = tmp; + selector[i] = tmp; + } + + //--- Now the coding tables --- + for (int t = 0; t < nGroups; t++) + { + int curr = BsR(5); + for (int i = 0; i < alphaSize; i++) + { + while (BsR(1) == 1) + { + if (BsR(1) == 0) + { + curr++; + } + else + { + curr--; + } + } + len[t][i] = (char)curr; + } + } + + //--- Create the Huffman decoding tables --- + for (int t = 0; t < nGroups; t++) + { + int minLen = 32; + int maxLen = 0; + for (int i = 0; i < alphaSize; i++) + { + maxLen = Math.Max(maxLen, len[t][i]); + minLen = Math.Min(minLen, len[t][i]); + } + HbCreateDecodeTables(limit[t], baseArray[t], perm[t], len[t], minLen, maxLen, alphaSize); + minLens[t] = minLen; + } + } + + private void GetAndMoveToFrontDecode() + { + byte[] yy = new byte[256]; + int nextSym; + + int limitLast = BZip2Constants.BaseBlockSize * blockSize100k; + origPtr = BsGetIntVS(24); + + RecvDecodingTables(); + int EOB = nInUse + 1; + int groupNo = -1; + int groupPos = 0; + + /*-- + Setting up the unzftab entries here is not strictly + necessary, but it does save having to do it later + in a separate pass, and so saves a block's worth of + cache misses. + --*/ + for (int i = 0; i <= 255; i++) + { + unzftab[i] = 0; + } + + for (int i = 0; i <= 255; i++) + { + yy[i] = (byte)i; + } + + last = -1; + + if (groupPos == 0) + { + groupNo++; + groupPos = BZip2Constants.GroupSize; + } + + groupPos--; + int zt = selector[groupNo]; + int zn = minLens[zt]; + int zvec = BsR(zn); + int zj; + + while (zvec > limit[zt][zn]) + { + if (zn > 20) + { // the longest code + throw new BZip2Exception("Bzip data error"); + } + zn++; + while (bsLive < 1) + { + FillBuffer(); + } + zj = (bsBuff >> (bsLive - 1)) & 1; + bsLive--; + zvec = (zvec << 1) | zj; + } + if (zvec - baseArray[zt][zn] < 0 || zvec - baseArray[zt][zn] >= BZip2Constants.MaximumAlphaSize) + { + throw new BZip2Exception("Bzip data error"); + } + nextSym = perm[zt][zvec - baseArray[zt][zn]]; + + while (true) + { + if (nextSym == EOB) + { + break; + } + + if (nextSym == BZip2Constants.RunA || nextSym == BZip2Constants.RunB) + { + int s = -1; + int n = 1; + do + { + if (nextSym == BZip2Constants.RunA) + { + s += (0 + 1) * n; + } + else if (nextSym == BZip2Constants.RunB) + { + s += (1 + 1) * n; + } + + n <<= 1; + + if (groupPos == 0) + { + groupNo++; + groupPos = BZip2Constants.GroupSize; + } + + groupPos--; + + zt = selector[groupNo]; + zn = minLens[zt]; + zvec = BsR(zn); + + while (zvec > limit[zt][zn]) + { + zn++; + while (bsLive < 1) + { + FillBuffer(); + } + zj = (bsBuff >> (bsLive - 1)) & 1; + bsLive--; + zvec = (zvec << 1) | zj; + } + nextSym = perm[zt][zvec - baseArray[zt][zn]]; + } while (nextSym == BZip2Constants.RunA || nextSym == BZip2Constants.RunB); + + s++; + byte ch = seqToUnseq[yy[0]]; + unzftab[ch] += s; + + while (s > 0) + { + last++; + ll8[last] = ch; + s--; + } + + if (last >= limitLast) + { + BlockOverrun(); + } + continue; + } + else + { + last++; + if (last >= limitLast) + { + BlockOverrun(); + } + + byte tmp = yy[nextSym - 1]; + unzftab[seqToUnseq[tmp]]++; + ll8[last] = seqToUnseq[tmp]; + + var j = nextSym - 1; + +#if VECTORIZE_MEMORY_MOVE + // This is vectorized memory move. Going from the back, we're taking chunks of array + // and write them at the new location shifted by one. Since chunks are VectorSize long, + // at the end we have to move "tail" (or head actually) of the array using a plain loop. + // If System.Numerics.Vector API is not available, the plain loop is used to do the whole copying. + + while(j >= VectorSize) + { + var arrayPart = new System.Numerics.Vector(yy, j - VectorSize); + arrayPart.CopyTo(yy, j - VectorSize + 1); + j -= VectorSize; + } +#endif // VECTORIZE_MEMORY_MOVE + + while(j > 0) + { + yy[j] = yy[--j]; + } + + yy[0] = tmp; + + if (groupPos == 0) + { + groupNo++; + groupPos = BZip2Constants.GroupSize; + } + + groupPos--; + zt = selector[groupNo]; + zn = minLens[zt]; + zvec = BsR(zn); + while (zvec > limit[zt][zn]) + { + zn++; + while (bsLive < 1) + { + FillBuffer(); + } + zj = (bsBuff >> (bsLive - 1)) & 1; + bsLive--; + zvec = (zvec << 1) | zj; + } + nextSym = perm[zt][zvec - baseArray[zt][zn]]; + continue; + } + } + } + + private void SetupBlock() + { + int[] cftab = new int[257]; + + cftab[0] = 0; + Array.Copy(unzftab, 0, cftab, 1, 256); + + for (int i = 1; i <= 256; i++) + { + cftab[i] += cftab[i - 1]; + } + + for (int i = 0; i <= last; i++) + { + byte ch = ll8[i]; + tt[cftab[ch]] = i; + cftab[ch]++; + } + + cftab = null; + + tPos = tt[origPtr]; + + count = 0; + i2 = 0; + ch2 = 256; /*-- not a char and not EOF --*/ + + if (blockRandomised) + { + rNToGo = 0; + rTPos = 0; + SetupRandPartA(); + } + else + { + SetupNoRandPartA(); + } + } + + private void SetupRandPartA() + { + if (i2 <= last) + { + chPrev = ch2; + ch2 = ll8[tPos]; + tPos = tt[tPos]; + if (rNToGo == 0) + { + rNToGo = BZip2Constants.RandomNumbers[rTPos]; + rTPos++; + if (rTPos == 512) + { + rTPos = 0; + } + } + rNToGo--; + ch2 ^= (int)((rNToGo == 1) ? 1 : 0); + i2++; + + currentChar = ch2; + currentState = RAND_PART_B_STATE; + mCrc.Update(ch2); + } + else + { + EndBlock(); + InitBlock(); + SetupBlock(); + } + } + + private void SetupNoRandPartA() + { + if (i2 <= last) + { + chPrev = ch2; + ch2 = ll8[tPos]; + tPos = tt[tPos]; + i2++; + + currentChar = ch2; + currentState = NO_RAND_PART_B_STATE; + mCrc.Update(ch2); + } + else + { + EndBlock(); + InitBlock(); + SetupBlock(); + } + } + + private void SetupRandPartB() + { + if (ch2 != chPrev) + { + currentState = RAND_PART_A_STATE; + count = 1; + SetupRandPartA(); + } + else + { + count++; + if (count >= 4) + { + z = ll8[tPos]; + tPos = tt[tPos]; + if (rNToGo == 0) + { + rNToGo = BZip2Constants.RandomNumbers[rTPos]; + rTPos++; + if (rTPos == 512) + { + rTPos = 0; + } + } + rNToGo--; + z ^= (byte)((rNToGo == 1) ? 1 : 0); + j2 = 0; + currentState = RAND_PART_C_STATE; + SetupRandPartC(); + } + else + { + currentState = RAND_PART_A_STATE; + SetupRandPartA(); + } + } + } + + private void SetupRandPartC() + { + if (j2 < (int)z) + { + currentChar = ch2; + mCrc.Update(ch2); + j2++; + } + else + { + currentState = RAND_PART_A_STATE; + i2++; + count = 0; + SetupRandPartA(); + } + } + + private void SetupNoRandPartB() + { + if (ch2 != chPrev) + { + currentState = NO_RAND_PART_A_STATE; + count = 1; + SetupNoRandPartA(); + } + else + { + count++; + if (count >= 4) + { + z = ll8[tPos]; + tPos = tt[tPos]; + currentState = NO_RAND_PART_C_STATE; + j2 = 0; + SetupNoRandPartC(); + } + else + { + currentState = NO_RAND_PART_A_STATE; + SetupNoRandPartA(); + } + } + } + + private void SetupNoRandPartC() + { + if (j2 < (int)z) + { + currentChar = ch2; + mCrc.Update(ch2); + j2++; + } + else + { + currentState = NO_RAND_PART_A_STATE; + i2++; + count = 0; + SetupNoRandPartA(); + } + } + + private void SetDecompressStructureSizes(int newSize100k) + { + if (!(0 <= newSize100k && newSize100k <= 9 && 0 <= blockSize100k && blockSize100k <= 9)) + { + throw new BZip2Exception("Invalid block size"); + } + + blockSize100k = newSize100k; + + if (newSize100k == 0) + { + return; + } + + int n = BZip2Constants.BaseBlockSize * newSize100k; + ll8 = new byte[n]; + tt = new int[n]; + } + + private static void CompressedStreamEOF() + { + throw new EndOfStreamException("BZip2 input stream end of compressed stream"); + } + + private static void BlockOverrun() + { + throw new BZip2Exception("BZip2 input stream block overrun"); + } + + private static void BadBlockHeader() + { + throw new BZip2Exception("BZip2 input stream bad block header"); + } + + private static void CrcError() + { + throw new BZip2Exception("BZip2 input stream crc error"); + } + + private static void HbCreateDecodeTables(int[] limit, int[] baseArray, int[] perm, char[] length, int minLen, int maxLen, int alphaSize) + { + int pp = 0; + + for (int i = minLen; i <= maxLen; ++i) + { + for (int j = 0; j < alphaSize; ++j) + { + if (length[j] == i) + { + perm[pp] = j; + ++pp; + } + } + } + + for (int i = 0; i < BZip2Constants.MaximumCodeLength; i++) + { + baseArray[i] = 0; + } + + for (int i = 0; i < alphaSize; i++) + { + ++baseArray[length[i] + 1]; + } + + for (int i = 1; i < BZip2Constants.MaximumCodeLength; i++) + { + baseArray[i] += baseArray[i - 1]; + } + + for (int i = 0; i < BZip2Constants.MaximumCodeLength; i++) + { + limit[i] = 0; + } + + int vec = 0; + + for (int i = minLen; i <= maxLen; i++) + { + vec += (baseArray[i + 1] - baseArray[i]); + limit[i] = vec - 1; + vec <<= 1; + } + + for (int i = minLen + 1; i <= maxLen; i++) + { + baseArray[i] = ((limit[i - 1] + 1) << 1) - baseArray[i]; + } + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs.meta new file mode 100644 index 0000000..237b515 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c158727da40324271b1449744e4091c0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs new file mode 100644 index 0000000..f331ec6 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs @@ -0,0 +1,2033 @@ +using ICSharpCode.SharpZipLib.Checksum; +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.BZip2 +{ + /// + /// An output stream that compresses into the BZip2 format + /// including file header chars into another stream. + /// + public class BZip2OutputStream : Stream + { + #region Constants + + private const int SETMASK = (1 << 21); + private const int CLEARMASK = (~SETMASK); + private const int GREATER_ICOST = 15; + private const int LESSER_ICOST = 0; + private const int SMALL_THRESH = 20; + private const int DEPTH_THRESH = 10; + + /*-- + If you are ever unlucky/improbable enough + to get a stack overflow whilst sorting, + increase the following constant and try + again. In practice I have never seen the + stack go above 27 elems, so the following + limit seems very generous. + --*/ + private const int QSORT_STACK_SIZE = 1000; + + /*-- + Knuth's increments seem to work better + than Incerpi-Sedgewick here. Possibly + because the number of elems to sort is + usually small, typically <= 20. + --*/ + + private readonly int[] increments = { + 1, 4, 13, 40, 121, 364, 1093, 3280, + 9841, 29524, 88573, 265720, + 797161, 2391484 + }; + + #endregion Constants + + #region Instance Fields + + /*-- + index of the last char in the block, so + the block size == last + 1. + --*/ + private int last; + + /*-- + index in zptr[] of original string after sorting. + --*/ + private int origPtr; + + /*-- + always: in the range 0 .. 9. + The current block size is 100000 * this number. + --*/ + private int blockSize100k; + + private bool blockRandomised; + + private int bytesOut; + private int bsBuff; + private int bsLive; + private IChecksum mCrc = new BZip2Crc(); + + private bool[] inUse = new bool[256]; + private int nInUse; + + private char[] seqToUnseq = new char[256]; + private char[] unseqToSeq = new char[256]; + + private char[] selector = new char[BZip2Constants.MaximumSelectors]; + private char[] selectorMtf = new char[BZip2Constants.MaximumSelectors]; + + private byte[] block; + private int[] quadrant; + private int[] zptr; + private short[] szptr; + private int[] ftab; + + private int nMTF; + + private int[] mtfFreq = new int[BZip2Constants.MaximumAlphaSize]; + + /* + * Used when sorting. If too many long comparisons + * happen, we stop sorting, randomise the block + * slightly, and try again. + */ + private int workFactor; + private int workDone; + private int workLimit; + private bool firstAttempt; + private int nBlocksRandomised; + + private int currentChar = -1; + private int runLength; + private uint blockCRC, combinedCRC; + private int allowableBlockSize; + private readonly Stream baseStream; + private bool disposed_; + + #endregion Instance Fields + + /// + /// Construct a default output stream with maximum block size + /// + /// The stream to write BZip data onto. + public BZip2OutputStream(Stream stream) : this(stream, 9) + { + } + + /// + /// Initialise a new instance of the + /// for the specified stream, using the given blocksize. + /// + /// The stream to write compressed data to. + /// The block size to use. + /// + /// Valid block sizes are in the range 1..9, with 1 giving + /// the lowest compression and 9 the highest. + /// + public BZip2OutputStream(Stream stream, int blockSize) + { + if (stream == null) + throw new ArgumentNullException(nameof(stream)); + + baseStream = stream; + bsLive = 0; + bsBuff = 0; + bytesOut = 0; + + workFactor = 50; + if (blockSize > 9) + { + blockSize = 9; + } + + if (blockSize < 1) + { + blockSize = 1; + } + blockSize100k = blockSize; + AllocateCompressStructures(); + Initialize(); + InitBlock(); + } + + /// + /// Ensures that resources are freed and other cleanup operations + /// are performed when the garbage collector reclaims the BZip2OutputStream. + /// + ~BZip2OutputStream() + { + Dispose(false); + } + + /// + /// Gets or sets a flag indicating ownership of underlying stream. + /// When the flag is true will close the underlying stream also. + /// + /// The default value is true. + public bool IsStreamOwner { get; set; } = true; + + /// + /// Gets a value indicating whether the current stream supports reading + /// + public override bool CanRead + { + get + { + return false; + } + } + + /// + /// Gets a value indicating whether the current stream supports seeking + /// + public override bool CanSeek + { + get + { + return false; + } + } + + /// + /// Gets a value indicating whether the current stream supports writing + /// + public override bool CanWrite + { + get + { + return baseStream.CanWrite; + } + } + + /// + /// Gets the length in bytes of the stream + /// + public override long Length + { + get + { + return baseStream.Length; + } + } + + /// + /// Gets or sets the current position of this stream. + /// + public override long Position + { + get + { + return baseStream.Position; + } + set + { + throw new NotSupportedException("BZip2OutputStream position cannot be set"); + } + } + + /// + /// Sets the current position of this stream to the given value. + /// + /// The point relative to the offset from which to being seeking. + /// The reference point from which to begin seeking. + /// The new position in the stream. + public override long Seek(long offset, SeekOrigin origin) + { + throw new NotSupportedException("BZip2OutputStream Seek not supported"); + } + + /// + /// Sets the length of this stream to the given value. + /// + /// The new stream length. + public override void SetLength(long value) + { + throw new NotSupportedException("BZip2OutputStream SetLength not supported"); + } + + /// + /// Read a byte from the stream advancing the position. + /// + /// The byte read cast to an int; -1 if end of stream. + public override int ReadByte() + { + throw new NotSupportedException("BZip2OutputStream ReadByte not supported"); + } + + /// + /// Read a block of bytes + /// + /// The buffer to read into. + /// The offset in the buffer to start storing data at. + /// The maximum number of bytes to read. + /// The total number of bytes read. This might be less than the number of bytes + /// requested if that number of bytes are not currently available, or zero + /// if the end of the stream is reached. + public override int Read(byte[] buffer, int offset, int count) + { + throw new NotSupportedException("BZip2OutputStream Read not supported"); + } + + /// + /// Write a block of bytes to the stream + /// + /// The buffer containing data to write. + /// The offset of the first byte to write. + /// The number of bytes to write. + public override void Write(byte[] buffer, int offset, int count) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (offset < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset)); + } + + if (count < 0) + { + throw new ArgumentOutOfRangeException(nameof(count)); + } + + if (buffer.Length - offset < count) + { + throw new ArgumentException("Offset/count out of range"); + } + + for (int i = 0; i < count; ++i) + { + WriteByte(buffer[offset + i]); + } + } + + /// + /// Write a byte to the stream. + /// + /// The byte to write to the stream. + public override void WriteByte(byte value) + { + int b = (256 + value) % 256; + if (currentChar != -1) + { + if (currentChar == b) + { + runLength++; + if (runLength > 254) + { + WriteRun(); + currentChar = -1; + runLength = 0; + } + } + else + { + WriteRun(); + runLength = 1; + currentChar = b; + } + } + else + { + currentChar = b; + runLength++; + } + } + + private void MakeMaps() + { + nInUse = 0; + for (int i = 0; i < 256; i++) + { + if (inUse[i]) + { + seqToUnseq[nInUse] = (char)i; + unseqToSeq[i] = (char)nInUse; + nInUse++; + } + } + } + + /// + /// Get the number of bytes written to output. + /// + private void WriteRun() + { + if (last < allowableBlockSize) + { + inUse[currentChar] = true; + for (int i = 0; i < runLength; i++) + { + mCrc.Update(currentChar); + } + + switch (runLength) + { + case 1: + last++; + block[last + 1] = (byte)currentChar; + break; + + case 2: + last++; + block[last + 1] = (byte)currentChar; + last++; + block[last + 1] = (byte)currentChar; + break; + + case 3: + last++; + block[last + 1] = (byte)currentChar; + last++; + block[last + 1] = (byte)currentChar; + last++; + block[last + 1] = (byte)currentChar; + break; + + default: + inUse[runLength - 4] = true; + last++; + block[last + 1] = (byte)currentChar; + last++; + block[last + 1] = (byte)currentChar; + last++; + block[last + 1] = (byte)currentChar; + last++; + block[last + 1] = (byte)currentChar; + last++; + block[last + 1] = (byte)(runLength - 4); + break; + } + } + else + { + EndBlock(); + InitBlock(); + WriteRun(); + } + } + + /// + /// Get the number of bytes written to the output. + /// + public int BytesWritten + { + get { return bytesOut; } + } + + /// + /// Releases the unmanaged resources used by the and optionally releases the managed resources. + /// + /// true to release both managed and unmanaged resources; false to release only unmanaged resources. + override protected void Dispose(bool disposing) + { + try + { + try + { + base.Dispose(disposing); + if (!disposed_) + { + disposed_ = true; + + if (runLength > 0) + { + WriteRun(); + } + + currentChar = -1; + EndBlock(); + EndCompression(); + Flush(); + } + } + finally + { + if (disposing) + { + if (IsStreamOwner) + { + baseStream.Dispose(); + } + } + } + } + catch + { + } + } + + /// + /// Flush output buffers + /// + public override void Flush() + { + baseStream.Flush(); + } + + private void Initialize() + { + bytesOut = 0; + nBlocksRandomised = 0; + + /*--- Write header `magic' bytes indicating file-format == huffmanised, + followed by a digit indicating blockSize100k. + ---*/ + + BsPutUChar('B'); + BsPutUChar('Z'); + + BsPutUChar('h'); + BsPutUChar('0' + blockSize100k); + + combinedCRC = 0; + } + + private void InitBlock() + { + mCrc.Reset(); + last = -1; + + for (int i = 0; i < 256; i++) + { + inUse[i] = false; + } + + /*--- 20 is just a paranoia constant ---*/ + allowableBlockSize = BZip2Constants.BaseBlockSize * blockSize100k - 20; + } + + private void EndBlock() + { + if (last < 0) + { // dont do anything for empty files, (makes empty files compatible with original Bzip) + return; + } + + blockCRC = unchecked((uint)mCrc.Value); + combinedCRC = (combinedCRC << 1) | (combinedCRC >> 31); + combinedCRC ^= blockCRC; + + /*-- sort the block and establish position of original string --*/ + DoReversibleTransformation(); + + /*-- + A 6-byte block header, the value chosen arbitrarily + as 0x314159265359 :-). A 32 bit value does not really + give a strong enough guarantee that the value will not + appear by chance in the compressed datastream. Worst-case + probability of this event, for a 900k block, is about + 2.0e-3 for 32 bits, 1.0e-5 for 40 bits and 4.0e-8 for 48 bits. + For a compressed file of size 100Gb -- about 100000 blocks -- + only a 48-bit marker will do. NB: normal compression/ + decompression do *not* rely on these statistical properties. + They are only important when trying to recover blocks from + damaged files. + --*/ + BsPutUChar(0x31); + BsPutUChar(0x41); + BsPutUChar(0x59); + BsPutUChar(0x26); + BsPutUChar(0x53); + BsPutUChar(0x59); + + /*-- Now the block's CRC, so it is in a known place. --*/ + unchecked + { + BsPutint((int)blockCRC); + } + + /*-- Now a single bit indicating randomisation. --*/ + if (blockRandomised) + { + BsW(1, 1); + nBlocksRandomised++; + } + else + { + BsW(1, 0); + } + + /*-- Finally, block's contents proper. --*/ + MoveToFrontCodeAndSend(); + } + + private void EndCompression() + { + /*-- + Now another magic 48-bit number, 0x177245385090, to + indicate the end of the last block. (sqrt(pi), if + you want to know. I did want to use e, but it contains + too much repetition -- 27 18 28 18 28 46 -- for me + to feel statistically comfortable. Call me paranoid.) + --*/ + BsPutUChar(0x17); + BsPutUChar(0x72); + BsPutUChar(0x45); + BsPutUChar(0x38); + BsPutUChar(0x50); + BsPutUChar(0x90); + + unchecked + { + BsPutint((int)combinedCRC); + } + + BsFinishedWithStream(); + } + + private void BsFinishedWithStream() + { + while (bsLive > 0) + { + int ch = (bsBuff >> 24); + baseStream.WriteByte((byte)ch); // write 8-bit + bsBuff <<= 8; + bsLive -= 8; + bytesOut++; + } + } + + private void BsW(int n, int v) + { + while (bsLive >= 8) + { + int ch = (bsBuff >> 24); + unchecked { baseStream.WriteByte((byte)ch); } // write 8-bit + bsBuff <<= 8; + bsLive -= 8; + ++bytesOut; + } + bsBuff |= (v << (32 - bsLive - n)); + bsLive += n; + } + + private void BsPutUChar(int c) + { + BsW(8, c); + } + + private void BsPutint(int u) + { + BsW(8, (u >> 24) & 0xFF); + BsW(8, (u >> 16) & 0xFF); + BsW(8, (u >> 8) & 0xFF); + BsW(8, u & 0xFF); + } + + private void BsPutIntVS(int numBits, int c) + { + BsW(numBits, c); + } + + private void SendMTFValues() + { + char[][] len = new char[BZip2Constants.GroupCount][]; + for (int i = 0; i < BZip2Constants.GroupCount; ++i) + { + len[i] = new char[BZip2Constants.MaximumAlphaSize]; + } + + int gs, ge, totc, bt, bc, iter; + int nSelectors = 0, alphaSize, minLen, maxLen, selCtr; + int nGroups; + + alphaSize = nInUse + 2; + for (int t = 0; t < BZip2Constants.GroupCount; t++) + { + for (int v = 0; v < alphaSize; v++) + { + len[t][v] = (char)GREATER_ICOST; + } + } + + /*--- Decide how many coding tables to use ---*/ + if (nMTF <= 0) + { + Panic(); + } + + if (nMTF < 200) + { + nGroups = 2; + } + else if (nMTF < 600) + { + nGroups = 3; + } + else if (nMTF < 1200) + { + nGroups = 4; + } + else if (nMTF < 2400) + { + nGroups = 5; + } + else + { + nGroups = 6; + } + + /*--- Generate an initial set of coding tables ---*/ + int nPart = nGroups; + int remF = nMTF; + gs = 0; + while (nPart > 0) + { + int tFreq = remF / nPart; + int aFreq = 0; + ge = gs - 1; + while (aFreq < tFreq && ge < alphaSize - 1) + { + ge++; + aFreq += mtfFreq[ge]; + } + + if (ge > gs && nPart != nGroups && nPart != 1 && ((nGroups - nPart) % 2 == 1)) + { + aFreq -= mtfFreq[ge]; + ge--; + } + + for (int v = 0; v < alphaSize; v++) + { + if (v >= gs && v <= ge) + { + len[nPart - 1][v] = (char)LESSER_ICOST; + } + else + { + len[nPart - 1][v] = (char)GREATER_ICOST; + } + } + + nPart--; + gs = ge + 1; + remF -= aFreq; + } + + int[][] rfreq = new int[BZip2Constants.GroupCount][]; + for (int i = 0; i < BZip2Constants.GroupCount; ++i) + { + rfreq[i] = new int[BZip2Constants.MaximumAlphaSize]; + } + + int[] fave = new int[BZip2Constants.GroupCount]; + short[] cost = new short[BZip2Constants.GroupCount]; + /*--- + Iterate up to N_ITERS times to improve the tables. + ---*/ + for (iter = 0; iter < BZip2Constants.NumberOfIterations; ++iter) + { + for (int t = 0; t < nGroups; ++t) + { + fave[t] = 0; + } + + for (int t = 0; t < nGroups; ++t) + { + for (int v = 0; v < alphaSize; ++v) + { + rfreq[t][v] = 0; + } + } + + nSelectors = 0; + totc = 0; + gs = 0; + while (true) + { + /*--- Set group start & end marks. --*/ + if (gs >= nMTF) + { + break; + } + ge = gs + BZip2Constants.GroupSize - 1; + if (ge >= nMTF) + { + ge = nMTF - 1; + } + + /*-- + Calculate the cost of this group as coded + by each of the coding tables. + --*/ + for (int t = 0; t < nGroups; t++) + { + cost[t] = 0; + } + + if (nGroups == 6) + { + short cost0, cost1, cost2, cost3, cost4, cost5; + cost0 = cost1 = cost2 = cost3 = cost4 = cost5 = 0; + for (int i = gs; i <= ge; ++i) + { + short icv = szptr[i]; + cost0 += (short)len[0][icv]; + cost1 += (short)len[1][icv]; + cost2 += (short)len[2][icv]; + cost3 += (short)len[3][icv]; + cost4 += (short)len[4][icv]; + cost5 += (short)len[5][icv]; + } + cost[0] = cost0; + cost[1] = cost1; + cost[2] = cost2; + cost[3] = cost3; + cost[4] = cost4; + cost[5] = cost5; + } + else + { + for (int i = gs; i <= ge; ++i) + { + short icv = szptr[i]; + for (int t = 0; t < nGroups; t++) + { + cost[t] += (short)len[t][icv]; + } + } + } + + /*-- + Find the coding table which is best for this group, + and record its identity in the selector table. + --*/ + bc = 999999999; + bt = -1; + for (int t = 0; t < nGroups; ++t) + { + if (cost[t] < bc) + { + bc = cost[t]; + bt = t; + } + } + totc += bc; + fave[bt]++; + selector[nSelectors] = (char)bt; + nSelectors++; + + /*-- + Increment the symbol frequencies for the selected table. + --*/ + for (int i = gs; i <= ge; ++i) + { + ++rfreq[bt][szptr[i]]; + } + + gs = ge + 1; + } + + /*-- + Recompute the tables based on the accumulated frequencies. + --*/ + for (int t = 0; t < nGroups; ++t) + { + HbMakeCodeLengths(len[t], rfreq[t], alphaSize, 20); + } + } + + rfreq = null; + fave = null; + cost = null; + + if (!(nGroups < 8)) + { + Panic(); + } + + if (!(nSelectors < 32768 && nSelectors <= (2 + (900000 / BZip2Constants.GroupSize)))) + { + Panic(); + } + + /*--- Compute MTF values for the selectors. ---*/ + char[] pos = new char[BZip2Constants.GroupCount]; + char ll_i, tmp2, tmp; + + for (int i = 0; i < nGroups; i++) + { + pos[i] = (char)i; + } + + for (int i = 0; i < nSelectors; i++) + { + ll_i = selector[i]; + int j = 0; + tmp = pos[j]; + while (ll_i != tmp) + { + j++; + tmp2 = tmp; + tmp = pos[j]; + pos[j] = tmp2; + } + pos[0] = tmp; + selectorMtf[i] = (char)j; + } + + int[][] code = new int[BZip2Constants.GroupCount][]; + + for (int i = 0; i < BZip2Constants.GroupCount; ++i) + { + code[i] = new int[BZip2Constants.MaximumAlphaSize]; + } + + /*--- Assign actual codes for the tables. --*/ + for (int t = 0; t < nGroups; t++) + { + minLen = 32; + maxLen = 0; + for (int i = 0; i < alphaSize; i++) + { + if (len[t][i] > maxLen) + { + maxLen = len[t][i]; + } + if (len[t][i] < minLen) + { + minLen = len[t][i]; + } + } + if (maxLen > 20) + { + Panic(); + } + if (minLen < 1) + { + Panic(); + } + HbAssignCodes(code[t], len[t], minLen, maxLen, alphaSize); + } + + /*--- Transmit the mapping table. ---*/ + bool[] inUse16 = new bool[16]; + for (int i = 0; i < 16; ++i) + { + inUse16[i] = false; + for (int j = 0; j < 16; ++j) + { + if (inUse[i * 16 + j]) + { + inUse16[i] = true; + } + } + } + + for (int i = 0; i < 16; ++i) + { + if (inUse16[i]) + { + BsW(1, 1); + } + else + { + BsW(1, 0); + } + } + + for (int i = 0; i < 16; ++i) + { + if (inUse16[i]) + { + for (int j = 0; j < 16; ++j) + { + if (inUse[i * 16 + j]) + { + BsW(1, 1); + } + else + { + BsW(1, 0); + } + } + } + } + + /*--- Now the selectors. ---*/ + BsW(3, nGroups); + BsW(15, nSelectors); + for (int i = 0; i < nSelectors; ++i) + { + for (int j = 0; j < selectorMtf[i]; ++j) + { + BsW(1, 1); + } + BsW(1, 0); + } + + /*--- Now the coding tables. ---*/ + for (int t = 0; t < nGroups; ++t) + { + int curr = len[t][0]; + BsW(5, curr); + for (int i = 0; i < alphaSize; ++i) + { + while (curr < len[t][i]) + { + BsW(2, 2); + curr++; /* 10 */ + } + while (curr > len[t][i]) + { + BsW(2, 3); + curr--; /* 11 */ + } + BsW(1, 0); + } + } + + /*--- And finally, the block data proper ---*/ + selCtr = 0; + gs = 0; + while (true) + { + if (gs >= nMTF) + { + break; + } + ge = gs + BZip2Constants.GroupSize - 1; + if (ge >= nMTF) + { + ge = nMTF - 1; + } + + for (int i = gs; i <= ge; i++) + { + BsW(len[selector[selCtr]][szptr[i]], code[selector[selCtr]][szptr[i]]); + } + + gs = ge + 1; + ++selCtr; + } + if (!(selCtr == nSelectors)) + { + Panic(); + } + } + + private void MoveToFrontCodeAndSend() + { + BsPutIntVS(24, origPtr); + GenerateMTFValues(); + SendMTFValues(); + } + + private void SimpleSort(int lo, int hi, int d) + { + int i, j, h, bigN, hp; + int v; + + bigN = hi - lo + 1; + if (bigN < 2) + { + return; + } + + hp = 0; + while (increments[hp] < bigN) + { + hp++; + } + hp--; + + for (; hp >= 0; hp--) + { + h = increments[hp]; + + i = lo + h; + while (true) + { + /*-- copy 1 --*/ + if (i > hi) + break; + v = zptr[i]; + j = i; + while (FullGtU(zptr[j - h] + d, v + d)) + { + zptr[j] = zptr[j - h]; + j = j - h; + if (j <= (lo + h - 1)) + break; + } + zptr[j] = v; + i++; + + /*-- copy 2 --*/ + if (i > hi) + { + break; + } + v = zptr[i]; + j = i; + while (FullGtU(zptr[j - h] + d, v + d)) + { + zptr[j] = zptr[j - h]; + j = j - h; + if (j <= (lo + h - 1)) + { + break; + } + } + zptr[j] = v; + i++; + + /*-- copy 3 --*/ + if (i > hi) + { + break; + } + v = zptr[i]; + j = i; + while (FullGtU(zptr[j - h] + d, v + d)) + { + zptr[j] = zptr[j - h]; + j = j - h; + if (j <= (lo + h - 1)) + { + break; + } + } + zptr[j] = v; + i++; + + if (workDone > workLimit && firstAttempt) + { + return; + } + } + } + } + + private void Vswap(int p1, int p2, int n) + { + int temp = 0; + while (n > 0) + { + temp = zptr[p1]; + zptr[p1] = zptr[p2]; + zptr[p2] = temp; + p1++; + p2++; + n--; + } + } + + private void QSort3(int loSt, int hiSt, int dSt) + { + int unLo, unHi, ltLo, gtHi, med, n, m; + int lo, hi, d; + + StackElement[] stack = new StackElement[QSORT_STACK_SIZE]; + + int sp = 0; + + stack[sp].ll = loSt; + stack[sp].hh = hiSt; + stack[sp].dd = dSt; + sp++; + + while (sp > 0) + { + if (sp >= QSORT_STACK_SIZE) + { + Panic(); + } + + sp--; + lo = stack[sp].ll; + hi = stack[sp].hh; + d = stack[sp].dd; + + if (hi - lo < SMALL_THRESH || d > DEPTH_THRESH) + { + SimpleSort(lo, hi, d); + if (workDone > workLimit && firstAttempt) + { + return; + } + continue; + } + + med = Med3(block[zptr[lo] + d + 1], + block[zptr[hi] + d + 1], + block[zptr[(lo + hi) >> 1] + d + 1]); + + unLo = ltLo = lo; + unHi = gtHi = hi; + + while (true) + { + while (true) + { + if (unLo > unHi) + { + break; + } + n = ((int)block[zptr[unLo] + d + 1]) - med; + if (n == 0) + { + int temp = zptr[unLo]; + zptr[unLo] = zptr[ltLo]; + zptr[ltLo] = temp; + ltLo++; + unLo++; + continue; + } + if (n > 0) + { + break; + } + unLo++; + } + + while (true) + { + if (unLo > unHi) + { + break; + } + n = ((int)block[zptr[unHi] + d + 1]) - med; + if (n == 0) + { + int temp = zptr[unHi]; + zptr[unHi] = zptr[gtHi]; + zptr[gtHi] = temp; + gtHi--; + unHi--; + continue; + } + if (n < 0) + { + break; + } + unHi--; + } + + if (unLo > unHi) + { + break; + } + + { + int temp = zptr[unLo]; + zptr[unLo] = zptr[unHi]; + zptr[unHi] = temp; + unLo++; + unHi--; + } + } + + if (gtHi < ltLo) + { + stack[sp].ll = lo; + stack[sp].hh = hi; + stack[sp].dd = d + 1; + sp++; + continue; + } + + n = ((ltLo - lo) < (unLo - ltLo)) ? (ltLo - lo) : (unLo - ltLo); + Vswap(lo, unLo - n, n); + m = ((hi - gtHi) < (gtHi - unHi)) ? (hi - gtHi) : (gtHi - unHi); + Vswap(unLo, hi - m + 1, m); + + n = lo + unLo - ltLo - 1; + m = hi - (gtHi - unHi) + 1; + + stack[sp].ll = lo; + stack[sp].hh = n; + stack[sp].dd = d; + sp++; + + stack[sp].ll = n + 1; + stack[sp].hh = m - 1; + stack[sp].dd = d + 1; + sp++; + + stack[sp].ll = m; + stack[sp].hh = hi; + stack[sp].dd = d; + sp++; + } + } + + private void MainSort() + { + int i, j, ss, sb; + int[] runningOrder = new int[256]; + int[] copy = new int[256]; + bool[] bigDone = new bool[256]; + int c1, c2; + int numQSorted; + + /*-- + In the various block-sized structures, live data runs + from 0 to last+NUM_OVERSHOOT_BYTES inclusive. First, + set up the overshoot area for block. + --*/ + + // if (verbosity >= 4) fprintf ( stderr, " sort initialise ...\n" ); + for (i = 0; i < BZip2Constants.OvershootBytes; i++) + { + block[last + i + 2] = block[(i % (last + 1)) + 1]; + } + for (i = 0; i <= last + BZip2Constants.OvershootBytes; i++) + { + quadrant[i] = 0; + } + + block[0] = (byte)(block[last + 1]); + + if (last < 4000) + { + /*-- + Use simpleSort(), since the full sorting mechanism + has quite a large constant overhead. + --*/ + for (i = 0; i <= last; i++) + { + zptr[i] = i; + } + firstAttempt = false; + workDone = workLimit = 0; + SimpleSort(0, last, 0); + } + else + { + numQSorted = 0; + for (i = 0; i <= 255; i++) + { + bigDone[i] = false; + } + for (i = 0; i <= 65536; i++) + { + ftab[i] = 0; + } + + c1 = block[0]; + for (i = 0; i <= last; i++) + { + c2 = block[i + 1]; + ftab[(c1 << 8) + c2]++; + c1 = c2; + } + + for (i = 1; i <= 65536; i++) + { + ftab[i] += ftab[i - 1]; + } + + c1 = block[1]; + for (i = 0; i < last; i++) + { + c2 = block[i + 2]; + j = (c1 << 8) + c2; + c1 = c2; + ftab[j]--; + zptr[ftab[j]] = i; + } + + j = ((block[last + 1]) << 8) + (block[1]); + ftab[j]--; + zptr[ftab[j]] = last; + + /*-- + Now ftab contains the first loc of every small bucket. + Calculate the running order, from smallest to largest + big bucket. + --*/ + + for (i = 0; i <= 255; i++) + { + runningOrder[i] = i; + } + + int vv; + int h = 1; + do + { + h = 3 * h + 1; + } while (h <= 256); + do + { + h = h / 3; + for (i = h; i <= 255; i++) + { + vv = runningOrder[i]; + j = i; + while ((ftab[((runningOrder[j - h]) + 1) << 8] - ftab[(runningOrder[j - h]) << 8]) > (ftab[((vv) + 1) << 8] - ftab[(vv) << 8])) + { + runningOrder[j] = runningOrder[j - h]; + j = j - h; + if (j <= (h - 1)) + { + break; + } + } + runningOrder[j] = vv; + } + } while (h != 1); + + /*-- + The main sorting loop. + --*/ + for (i = 0; i <= 255; i++) + { + /*-- + Process big buckets, starting with the least full. + --*/ + ss = runningOrder[i]; + + /*-- + Complete the big bucket [ss] by quicksorting + any unsorted small buckets [ss, j]. Hopefully + previous pointer-scanning phases have already + completed many of the small buckets [ss, j], so + we don't have to sort them at all. + --*/ + for (j = 0; j <= 255; j++) + { + sb = (ss << 8) + j; + if (!((ftab[sb] & SETMASK) == SETMASK)) + { + int lo = ftab[sb] & CLEARMASK; + int hi = (ftab[sb + 1] & CLEARMASK) - 1; + if (hi > lo) + { + QSort3(lo, hi, 2); + numQSorted += (hi - lo + 1); + if (workDone > workLimit && firstAttempt) + { + return; + } + } + ftab[sb] |= SETMASK; + } + } + + /*-- + The ss big bucket is now done. Record this fact, + and update the quadrant descriptors. Remember to + update quadrants in the overshoot area too, if + necessary. The "if (i < 255)" test merely skips + this updating for the last bucket processed, since + updating for the last bucket is pointless. + --*/ + bigDone[ss] = true; + + if (i < 255) + { + int bbStart = ftab[ss << 8] & CLEARMASK; + int bbSize = (ftab[(ss + 1) << 8] & CLEARMASK) - bbStart; + int shifts = 0; + + while ((bbSize >> shifts) > 65534) + { + shifts++; + } + + for (j = 0; j < bbSize; j++) + { + int a2update = zptr[bbStart + j]; + int qVal = (j >> shifts); + quadrant[a2update] = qVal; + if (a2update < BZip2Constants.OvershootBytes) + { + quadrant[a2update + last + 1] = qVal; + } + } + + if (!(((bbSize - 1) >> shifts) <= 65535)) + { + Panic(); + } + } + + /*-- + Now scan this big bucket so as to synthesise the + sorted order for small buckets [t, ss] for all t != ss. + --*/ + for (j = 0; j <= 255; j++) + { + copy[j] = ftab[(j << 8) + ss] & CLEARMASK; + } + + for (j = ftab[ss << 8] & CLEARMASK; j < (ftab[(ss + 1) << 8] & CLEARMASK); j++) + { + c1 = block[zptr[j]]; + if (!bigDone[c1]) + { + zptr[copy[c1]] = zptr[j] == 0 ? last : zptr[j] - 1; + copy[c1]++; + } + } + + for (j = 0; j <= 255; j++) + { + ftab[(j << 8) + ss] |= SETMASK; + } + } + } + } + + private void RandomiseBlock() + { + int i; + int rNToGo = 0; + int rTPos = 0; + for (i = 0; i < 256; i++) + { + inUse[i] = false; + } + + for (i = 0; i <= last; i++) + { + if (rNToGo == 0) + { + rNToGo = (int)BZip2Constants.RandomNumbers[rTPos]; + rTPos++; + if (rTPos == 512) + { + rTPos = 0; + } + } + rNToGo--; + block[i + 1] ^= (byte)((rNToGo == 1) ? 1 : 0); + // handle 16 bit signed numbers + block[i + 1] &= 0xFF; + + inUse[block[i + 1]] = true; + } + } + + private void DoReversibleTransformation() + { + workLimit = workFactor * last; + workDone = 0; + blockRandomised = false; + firstAttempt = true; + + MainSort(); + + if (workDone > workLimit && firstAttempt) + { + RandomiseBlock(); + workLimit = workDone = 0; + blockRandomised = true; + firstAttempt = false; + MainSort(); + } + + origPtr = -1; + for (int i = 0; i <= last; i++) + { + if (zptr[i] == 0) + { + origPtr = i; + break; + } + } + + if (origPtr == -1) + { + Panic(); + } + } + + private bool FullGtU(int i1, int i2) + { + int k; + byte c1, c2; + int s1, s2; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + i1++; + i2++; + + k = last + 1; + + do + { + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + s1 = quadrant[i1]; + s2 = quadrant[i2]; + if (s1 != s2) + { + return s1 > s2; + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + s1 = quadrant[i1]; + s2 = quadrant[i2]; + if (s1 != s2) + { + return s1 > s2; + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + s1 = quadrant[i1]; + s2 = quadrant[i2]; + if (s1 != s2) + { + return s1 > s2; + } + i1++; + i2++; + + c1 = block[i1 + 1]; + c2 = block[i2 + 1]; + if (c1 != c2) + { + return c1 > c2; + } + s1 = quadrant[i1]; + s2 = quadrant[i2]; + if (s1 != s2) + { + return s1 > s2; + } + i1++; + i2++; + + if (i1 > last) + { + i1 -= last; + i1--; + } + if (i2 > last) + { + i2 -= last; + i2--; + } + + k -= 4; + ++workDone; + } while (k >= 0); + + return false; + } + + private void AllocateCompressStructures() + { + int n = BZip2Constants.BaseBlockSize * blockSize100k; + block = new byte[(n + 1 + BZip2Constants.OvershootBytes)]; + quadrant = new int[(n + BZip2Constants.OvershootBytes)]; + zptr = new int[n]; + ftab = new int[65537]; + + if (block == null || quadrant == null || zptr == null || ftab == null) + { + // int totalDraw = (n + 1 + NUM_OVERSHOOT_BYTES) + (n + NUM_OVERSHOOT_BYTES) + n + 65537; + // compressOutOfMemory ( totalDraw, n ); + } + + /* + The back end needs a place to store the MTF values + whilst it calculates the coding tables. We could + put them in the zptr array. However, these values + will fit in a short, so we overlay szptr at the + start of zptr, in the hope of reducing the number + of cache misses induced by the multiple traversals + of the MTF values when calculating coding tables. + Seems to improve compression speed by about 1%. + */ + // szptr = zptr; + + szptr = new short[2 * n]; + } + + private void GenerateMTFValues() + { + char[] yy = new char[256]; + int i, j; + char tmp; + char tmp2; + int zPend; + int wr; + int EOB; + + MakeMaps(); + EOB = nInUse + 1; + + for (i = 0; i <= EOB; i++) + { + mtfFreq[i] = 0; + } + + wr = 0; + zPend = 0; + for (i = 0; i < nInUse; i++) + { + yy[i] = (char)i; + } + + for (i = 0; i <= last; i++) + { + char ll_i; + + ll_i = unseqToSeq[block[zptr[i]]]; + + j = 0; + tmp = yy[j]; + while (ll_i != tmp) + { + j++; + tmp2 = tmp; + tmp = yy[j]; + yy[j] = tmp2; + } + yy[0] = tmp; + + if (j == 0) + { + zPend++; + } + else + { + if (zPend > 0) + { + zPend--; + while (true) + { + switch (zPend % 2) + { + case 0: + szptr[wr] = (short)BZip2Constants.RunA; + wr++; + mtfFreq[BZip2Constants.RunA]++; + break; + + case 1: + szptr[wr] = (short)BZip2Constants.RunB; + wr++; + mtfFreq[BZip2Constants.RunB]++; + break; + } + if (zPend < 2) + { + break; + } + zPend = (zPend - 2) / 2; + } + zPend = 0; + } + szptr[wr] = (short)(j + 1); + wr++; + mtfFreq[j + 1]++; + } + } + + if (zPend > 0) + { + zPend--; + while (true) + { + switch (zPend % 2) + { + case 0: + szptr[wr] = (short)BZip2Constants.RunA; + wr++; + mtfFreq[BZip2Constants.RunA]++; + break; + + case 1: + szptr[wr] = (short)BZip2Constants.RunB; + wr++; + mtfFreq[BZip2Constants.RunB]++; + break; + } + if (zPend < 2) + { + break; + } + zPend = (zPend - 2) / 2; + } + } + + szptr[wr] = (short)EOB; + wr++; + mtfFreq[EOB]++; + + nMTF = wr; + } + + private static void Panic() + { + throw new BZip2Exception("BZip2 output stream panic"); + } + + private static void HbMakeCodeLengths(char[] len, int[] freq, int alphaSize, int maxLen) + { + /*-- + Nodes and heap entries run from 1. Entry 0 + for both the heap and nodes is a sentinel. + --*/ + int nNodes, nHeap, n1, n2, j, k; + bool tooLong; + + int[] heap = new int[BZip2Constants.MaximumAlphaSize + 2]; + int[] weight = new int[BZip2Constants.MaximumAlphaSize * 2]; + int[] parent = new int[BZip2Constants.MaximumAlphaSize * 2]; + + for (int i = 0; i < alphaSize; ++i) + { + weight[i + 1] = (freq[i] == 0 ? 1 : freq[i]) << 8; + } + + while (true) + { + nNodes = alphaSize; + nHeap = 0; + + heap[0] = 0; + weight[0] = 0; + parent[0] = -2; + + for (int i = 1; i <= alphaSize; ++i) + { + parent[i] = -1; + nHeap++; + heap[nHeap] = i; + int zz = nHeap; + int tmp = heap[zz]; + while (weight[tmp] < weight[heap[zz >> 1]]) + { + heap[zz] = heap[zz >> 1]; + zz >>= 1; + } + heap[zz] = tmp; + } + if (!(nHeap < (BZip2Constants.MaximumAlphaSize + 2))) + { + Panic(); + } + + while (nHeap > 1) + { + n1 = heap[1]; + heap[1] = heap[nHeap]; + nHeap--; + int zz = 1; + int yy = 0; + int tmp = heap[zz]; + while (true) + { + yy = zz << 1; + if (yy > nHeap) + { + break; + } + if (yy < nHeap && weight[heap[yy + 1]] < weight[heap[yy]]) + { + yy++; + } + if (weight[tmp] < weight[heap[yy]]) + { + break; + } + + heap[zz] = heap[yy]; + zz = yy; + } + heap[zz] = tmp; + n2 = heap[1]; + heap[1] = heap[nHeap]; + nHeap--; + + zz = 1; + yy = 0; + tmp = heap[zz]; + while (true) + { + yy = zz << 1; + if (yy > nHeap) + { + break; + } + if (yy < nHeap && weight[heap[yy + 1]] < weight[heap[yy]]) + { + yy++; + } + if (weight[tmp] < weight[heap[yy]]) + { + break; + } + heap[zz] = heap[yy]; + zz = yy; + } + heap[zz] = tmp; + nNodes++; + parent[n1] = parent[n2] = nNodes; + + weight[nNodes] = (int)((weight[n1] & 0xffffff00) + (weight[n2] & 0xffffff00)) | + (int)(1 + (((weight[n1] & 0x000000ff) > (weight[n2] & 0x000000ff)) ? (weight[n1] & 0x000000ff) : (weight[n2] & 0x000000ff))); + + parent[nNodes] = -1; + nHeap++; + heap[nHeap] = nNodes; + + zz = nHeap; + tmp = heap[zz]; + while (weight[tmp] < weight[heap[zz >> 1]]) + { + heap[zz] = heap[zz >> 1]; + zz >>= 1; + } + heap[zz] = tmp; + } + if (!(nNodes < (BZip2Constants.MaximumAlphaSize * 2))) + { + Panic(); + } + + tooLong = false; + for (int i = 1; i <= alphaSize; ++i) + { + j = 0; + k = i; + while (parent[k] >= 0) + { + k = parent[k]; + j++; + } + len[i - 1] = (char)j; + tooLong |= j > maxLen; + } + + if (!tooLong) + { + break; + } + + for (int i = 1; i < alphaSize; ++i) + { + j = weight[i] >> 8; + j = 1 + (j / 2); + weight[i] = j << 8; + } + } + } + + private static void HbAssignCodes(int[] code, char[] length, int minLen, int maxLen, int alphaSize) + { + int vec = 0; + for (int n = minLen; n <= maxLen; ++n) + { + for (int i = 0; i < alphaSize; ++i) + { + if (length[i] == n) + { + code[i] = vec; + ++vec; + } + } + vec <<= 1; + } + } + + private static byte Med3(byte a, byte b, byte c) + { + byte t; + if (a > b) + { + t = a; + a = b; + b = t; + } + if (b > c) + { + t = b; + b = c; + c = t; + } + if (a > b) + { + b = a; + } + return b; + } + + private struct StackElement + { + public int ll; + public int hh; + public int dd; + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs.meta new file mode 100644 index 0000000..b97f64d --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e4ba88f7b8bba47ec97906be36a6ebc0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum.meta new file mode 100644 index 0000000..7d410c8 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 108254c38c1b949249d1cc4d669f5cc4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Adler32.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Adler32.cs new file mode 100644 index 0000000..b2a0f15 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Adler32.cs @@ -0,0 +1,163 @@ +using System; + +namespace ICSharpCode.SharpZipLib.Checksum +{ + /// + /// Computes Adler32 checksum for a stream of data. An Adler32 + /// checksum is not as reliable as a CRC32 checksum, but a lot faster to + /// compute. + /// + /// The specification for Adler32 may be found in RFC 1950. + /// ZLIB Compressed Data Format Specification version 3.3) + /// + /// + /// From that document: + /// + /// "ADLER32 (Adler-32 checksum) + /// This contains a checksum value of the uncompressed data + /// (excluding any dictionary data) computed according to Adler-32 + /// algorithm. This algorithm is a 32-bit extension and improvement + /// of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073 + /// standard. + /// + /// Adler-32 is composed of two sums accumulated per byte: s1 is + /// the sum of all bytes, s2 is the sum of all s1 values. Both sums + /// are done modulo 65521. s1 is initialized to 1, s2 to zero. The + /// Adler-32 checksum is stored as s2*65536 + s1 in most- + /// significant-byte first (network) order." + /// + /// "8.2. The Adler-32 algorithm + /// + /// The Adler-32 algorithm is much faster than the CRC32 algorithm yet + /// still provides an extremely low probability of undetected errors. + /// + /// The modulo on unsigned long accumulators can be delayed for 5552 + /// bytes, so the modulo operation time is negligible. If the bytes + /// are a, b, c, the second sum is 3a + 2b + c + 3, and so is position + /// and order sensitive, unlike the first sum, which is just a + /// checksum. That 65521 is prime is important to avoid a possible + /// large class of two-byte errors that leave the check unchanged. + /// (The Fletcher checksum uses 255, which is not prime and which also + /// makes the Fletcher check insensitive to single byte changes 0 - + /// 255.) + /// + /// The sum s1 is initialized to 1 instead of zero to make the length + /// of the sequence part of s2, so that the length does not have to be + /// checked separately. (Any sequence of zeroes has a Fletcher + /// checksum of zero.)" + /// + /// + /// + public sealed class Adler32 : IChecksum + { + #region Instance Fields + + /// + /// largest prime smaller than 65536 + /// + private static readonly uint BASE = 65521; + + /// + /// The CRC data checksum so far. + /// + private uint checkValue; + + #endregion Instance Fields + + /// + /// Initialise a default instance of + /// + public Adler32() + { + Reset(); + } + + /// + /// Resets the Adler32 data checksum as if no update was ever called. + /// + public void Reset() + { + checkValue = 1; + } + + /// + /// Returns the Adler32 data checksum computed so far. + /// + public long Value + { + get + { + return checkValue; + } + } + + /// + /// Updates the checksum with the byte b. + /// + /// + /// The data value to add. The high byte of the int is ignored. + /// + public void Update(int bval) + { + // We could make a length 1 byte array and call update again, but I + // would rather not have that overhead + uint s1 = checkValue & 0xFFFF; + uint s2 = checkValue >> 16; + + s1 = (s1 + ((uint)bval & 0xFF)) % BASE; + s2 = (s1 + s2) % BASE; + + checkValue = (s2 << 16) + s1; + } + + /// + /// Updates the Adler32 data checksum with the bytes taken from + /// a block of data. + /// + /// Contains the data to update the checksum with. + public void Update(byte[] buffer) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + Update(new ArraySegment(buffer, 0, buffer.Length)); + } + + /// + /// Update Adler32 data checksum based on a portion of a block of data + /// + /// + /// The chunk of data to add + /// + public void Update(ArraySegment segment) + { + //(By Per Bothner) + uint s1 = checkValue & 0xFFFF; + uint s2 = checkValue >> 16; + var count = segment.Count; + var offset = segment.Offset; + while (count > 0) + { + // We can defer the modulo operation: + // s1 maximally grows from 65521 to 65521 + 255 * 3800 + // s2 maximally grows by 3800 * median(s1) = 2090079800 < 2^31 + int n = 3800; + if (n > count) + { + n = count; + } + count -= n; + while (--n >= 0) + { + s1 = s1 + (uint)(segment.Array[offset++] & 0xff); + s2 = s2 + s1; + } + s1 %= BASE; + s2 %= BASE; + } + checkValue = (s2 << 16) | s1; + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Adler32.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Adler32.cs.meta new file mode 100644 index 0000000..1d4b3d0 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Adler32.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b42de45a84b924dda8589d6ceaea5b1e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs new file mode 100644 index 0000000..be76da1 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs @@ -0,0 +1,171 @@ +using System; +using System.Runtime.CompilerServices; + +namespace ICSharpCode.SharpZipLib.Checksum +{ + /// + /// CRC-32 with unreversed data and reversed output + /// + /// + /// Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + /// x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0. + /// + /// Polynomials over GF(2) are represented in binary, one bit per coefficient, + /// with the lowest powers in the most significant bit. Then adding polynomials + /// is just exclusive-or, and multiplying a polynomial by x is a right shift by + /// one. If we call the above polynomial p, and represent a byte as the + /// polynomial q, also with the lowest power in the most significant bit (so the + /// byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + /// where a mod b means the remainder after dividing a by b. + /// + /// This calculation is done using the shift-register method of multiplying and + /// taking the remainder. The register is initialized to zero, and for each + /// incoming bit, x^32 is added mod p to the register if the bit is a one (where + /// x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + /// x (which is shifting right by one and adding x^32 mod p if the bit shifted + /// out is a one). We start with the highest power (least significant bit) of + /// q and repeat for all eight bits of q. + /// + /// This implementation uses sixteen lookup tables stored in one linear array + /// to implement the slicing-by-16 algorithm, a variant of the slicing-by-8 + /// algorithm described in this Intel white paper: + /// + /// https://web.archive.org/web/20120722193753/http://download.intel.com/technology/comms/perfnet/download/slicing-by-8.pdf + /// + /// The first lookup table is simply the CRC of all possible eight bit values. + /// Each successive lookup table is derived from the original table generated + /// by Sarwate's algorithm. Slicing a 16-bit input and XORing the outputs + /// together will produce the same output as a byte-by-byte CRC loop with + /// fewer arithmetic and bit manipulation operations, at the cost of increased + /// memory consumed by the lookup tables. (Slicing-by-16 requires a 16KB table, + /// which is still small enough to fit in most processors' L1 cache.) + /// + public sealed class BZip2Crc : IChecksum + { + #region Instance Fields + + private const uint crcInit = 0xFFFFFFFF; + //const uint crcXor = 0x00000000; + + private static readonly uint[] crcTable = CrcUtilities.GenerateSlicingLookupTable(0x04C11DB7, isReversed: false); + + /// + /// The CRC data checksum so far. + /// + private uint checkValue; + + #endregion Instance Fields + + /// + /// Initialise a default instance of + /// + public BZip2Crc() + { + Reset(); + } + + /// + /// Resets the CRC data checksum as if no update was ever called. + /// + public void Reset() + { + checkValue = crcInit; + } + + /// + /// Returns the CRC data checksum computed so far. + /// + /// Reversed Out = true + public long Value + { + get + { + // Technically, the output should be: + //return (long)(~checkValue ^ crcXor); + // but x ^ 0 = x, so there is no point in adding + // the XOR operation + return (long)(~checkValue); + } + } + + /// + /// Updates the checksum with the int bval. + /// + /// + /// the byte is taken as the lower 8 bits of bval + /// + /// Reversed Data = false + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Update(int bval) + { + checkValue = unchecked(crcTable[(byte)(((checkValue >> 24) & 0xFF) ^ bval)] ^ (checkValue << 8)); + } + + /// + /// Updates the CRC data checksum with the bytes taken from + /// a block of data. + /// + /// Contains the data to update the CRC with. + public void Update(byte[] buffer) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + Update(buffer, 0, buffer.Length); + } + + /// + /// Update CRC data checksum based on a portion of a block of data + /// + /// + /// The chunk of data to add + /// + public void Update(ArraySegment segment) + { + Update(segment.Array, segment.Offset, segment.Count); + } + + /// + /// Internal helper function for updating a block of data using slicing. + /// + /// The array containing the data to add + /// Range start for (inclusive) + /// The number of bytes to checksum starting from + private void Update(byte[] data, int offset, int count) + { + int remainder = count % CrcUtilities.SlicingDegree; + int end = offset + count - remainder; + + while (offset != end) + { + checkValue = CrcUtilities.UpdateDataForNormalPoly(data, offset, crcTable, checkValue); + offset += CrcUtilities.SlicingDegree; + } + + if (remainder != 0) + { + SlowUpdateLoop(data, offset, end + remainder); + } + } + + /// + /// A non-inlined function for updating data that doesn't fit in a 16-byte + /// block. We don't expect to enter this function most of the time, and when + /// we do we're not here for long, so disabling inlining here improves + /// performance overall. + /// + /// The array containing the data to add + /// Range start for (inclusive) + /// Range end for (exclusive) + [MethodImpl(MethodImplOptions.NoInlining)] + private void SlowUpdateLoop(byte[] data, int offset, int end) + { + while (offset != end) + { + Update(data[offset++]); + } + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs.meta new file mode 100644 index 0000000..61a9307 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7ac165bb62b8d4b6dbf46bf5d6c783ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Crc32.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Crc32.cs new file mode 100644 index 0000000..740aff5 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Crc32.cs @@ -0,0 +1,173 @@ +using System; +using System.Runtime.CompilerServices; + +namespace ICSharpCode.SharpZipLib.Checksum +{ + /// + /// CRC-32 with reversed data and unreversed output + /// + /// + /// Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + /// x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0. + /// + /// Polynomials over GF(2) are represented in binary, one bit per coefficient, + /// with the lowest powers in the most significant bit. Then adding polynomials + /// is just exclusive-or, and multiplying a polynomial by x is a right shift by + /// one. If we call the above polynomial p, and represent a byte as the + /// polynomial q, also with the lowest power in the most significant bit (so the + /// byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + /// where a mod b means the remainder after dividing a by b. + /// + /// This calculation is done using the shift-register method of multiplying and + /// taking the remainder. The register is initialized to zero, and for each + /// incoming bit, x^32 is added mod p to the register if the bit is a one (where + /// x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + /// x (which is shifting right by one and adding x^32 mod p if the bit shifted + /// out is a one). We start with the highest power (least significant bit) of + /// q and repeat for all eight bits of q. + /// + /// This implementation uses sixteen lookup tables stored in one linear array + /// to implement the slicing-by-16 algorithm, a variant of the slicing-by-8 + /// algorithm described in this Intel white paper: + /// + /// https://web.archive.org/web/20120722193753/http://download.intel.com/technology/comms/perfnet/download/slicing-by-8.pdf + /// + /// The first lookup table is simply the CRC of all possible eight bit values. + /// Each successive lookup table is derived from the original table generated + /// by Sarwate's algorithm. Slicing a 16-bit input and XORing the outputs + /// together will produce the same output as a byte-by-byte CRC loop with + /// fewer arithmetic and bit manipulation operations, at the cost of increased + /// memory consumed by the lookup tables. (Slicing-by-16 requires a 16KB table, + /// which is still small enough to fit in most processors' L1 cache.) + /// + public sealed class Crc32 : IChecksum + { + #region Instance Fields + + private static readonly uint crcInit = 0xFFFFFFFF; + private static readonly uint crcXor = 0xFFFFFFFF; + + private static readonly uint[] crcTable = CrcUtilities.GenerateSlicingLookupTable(0xEDB88320, isReversed: true); + + /// + /// The CRC data checksum so far. + /// + private uint checkValue; + + #endregion Instance Fields + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static uint ComputeCrc32(uint oldCrc, byte bval) + { + return (uint)(Crc32.crcTable[(oldCrc ^ bval) & 0xFF] ^ (oldCrc >> 8)); + } + + /// + /// Initialise a default instance of + /// + public Crc32() + { + Reset(); + } + + /// + /// Resets the CRC data checksum as if no update was ever called. + /// + public void Reset() + { + checkValue = crcInit; + } + + /// + /// Returns the CRC data checksum computed so far. + /// + /// Reversed Out = false + public long Value + { + get + { + return (long)(checkValue ^ crcXor); + } + } + + /// + /// Updates the checksum with the int bval. + /// + /// + /// the byte is taken as the lower 8 bits of bval + /// + /// Reversed Data = true + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Update(int bval) + { + checkValue = unchecked(crcTable[(checkValue ^ bval) & 0xFF] ^ (checkValue >> 8)); + } + + /// + /// Updates the CRC data checksum with the bytes taken from + /// a block of data. + /// + /// Contains the data to update the CRC with. + public void Update(byte[] buffer) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + Update(buffer, 0, buffer.Length); + } + + /// + /// Update CRC data checksum based on a portion of a block of data + /// + /// + /// The chunk of data to add + /// + public void Update(ArraySegment segment) + { + Update(segment.Array, segment.Offset, segment.Count); + } + + /// + /// Internal helper function for updating a block of data using slicing. + /// + /// The array containing the data to add + /// Range start for (inclusive) + /// The number of bytes to checksum starting from + private void Update(byte[] data, int offset, int count) + { + int remainder = count % CrcUtilities.SlicingDegree; + int end = offset + count - remainder; + + while (offset != end) + { + checkValue = CrcUtilities.UpdateDataForReversedPoly(data, offset, crcTable, checkValue); + offset += CrcUtilities.SlicingDegree; + } + + if (remainder != 0) + { + SlowUpdateLoop(data, offset, end + remainder); + } + } + + /// + /// A non-inlined function for updating data that doesn't fit in a 16-byte + /// block. We don't expect to enter this function most of the time, and when + /// we do we're not here for long, so disabling inlining here improves + /// performance overall. + /// + /// The array containing the data to add + /// Range start for (inclusive) + /// Range end for (exclusive) + [MethodImpl(MethodImplOptions.NoInlining)] + private void SlowUpdateLoop(byte[] data, int offset, int end) + { + while (offset != end) + { + Update(data[offset++]); + } + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Crc32.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Crc32.cs.meta new file mode 100644 index 0000000..35c0e8b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/Crc32.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e2bbecaf970c94441ab5d29c846d7106 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/CrcUtilities.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/CrcUtilities.cs new file mode 100644 index 0000000..575abe0 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/CrcUtilities.cs @@ -0,0 +1,158 @@ +using System.Runtime.CompilerServices; + +namespace ICSharpCode.SharpZipLib.Checksum +{ + internal static class CrcUtilities + { + /// + /// The number of slicing lookup tables to generate. + /// + internal const int SlicingDegree = 16; + + /// + /// Generates multiple CRC lookup tables for a given polynomial, stored + /// in a linear array of uints. The first block (i.e. the first 256 + /// elements) is the same as the byte-by-byte CRC lookup table. + /// + /// The generating CRC polynomial + /// Whether the polynomial is in reversed bit order + /// A linear array of 256 * elements + /// + /// This table could also be generated as a rectangular array, but the + /// JIT compiler generates slower code than if we use a linear array. + /// Known issue, see: https://github.com/dotnet/runtime/issues/30275 + /// + internal static uint[] GenerateSlicingLookupTable(uint polynomial, bool isReversed) + { + var table = new uint[256 * SlicingDegree]; + uint one = isReversed ? 1 : (1U << 31); + + for (int i = 0; i < 256; i++) + { + uint res = (uint)(isReversed ? i : i << 24); + for (int j = 0; j < SlicingDegree; j++) + { + for (int k = 0; k < 8; k++) + { + if (isReversed) + { + res = (res & one) == 1 ? polynomial ^ (res >> 1) : res >> 1; + } + else + { + res = (res & one) != 0 ? polynomial ^ (res << 1) : res << 1; + } + } + + table[(256 * j) + i] = res; + } + } + + return table; + } + + /// + /// Mixes the first four bytes of input with + /// using normal ordering before calling . + /// + /// Array of data to checksum + /// Offset to start reading from + /// The table to use for slicing-by-16 lookup + /// Checksum state before this update call + /// A new unfinalized checksum value + /// + /// + /// Assumes input[offset]..input[offset + 15] are valid array indexes. + /// For performance reasons, this must be checked by the caller. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static uint UpdateDataForNormalPoly(byte[] input, int offset, uint[] crcTable, uint checkValue) + { + byte x1 = (byte)((byte)(checkValue >> 24) ^ input[offset]); + byte x2 = (byte)((byte)(checkValue >> 16) ^ input[offset + 1]); + byte x3 = (byte)((byte)(checkValue >> 8) ^ input[offset + 2]); + byte x4 = (byte)((byte)checkValue ^ input[offset + 3]); + + return UpdateDataCommon(input, offset, crcTable, x1, x2, x3, x4); + } + + /// + /// Mixes the first four bytes of input with + /// using reflected ordering before calling . + /// + /// Array of data to checksum + /// Offset to start reading from + /// The table to use for slicing-by-16 lookup + /// Checksum state before this update call + /// A new unfinalized checksum value + /// + /// + /// Assumes input[offset]..input[offset + 15] are valid array indexes. + /// For performance reasons, this must be checked by the caller. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static uint UpdateDataForReversedPoly(byte[] input, int offset, uint[] crcTable, uint checkValue) + { + byte x1 = (byte)((byte)checkValue ^ input[offset]); + byte x2 = (byte)((byte)(checkValue >>= 8) ^ input[offset + 1]); + byte x3 = (byte)((byte)(checkValue >>= 8) ^ input[offset + 2]); + byte x4 = (byte)((byte)(checkValue >>= 8) ^ input[offset + 3]); + + return UpdateDataCommon(input, offset, crcTable, x1, x2, x3, x4); + } + + /// + /// A shared method for updating an unfinalized CRC checksum using slicing-by-16. + /// + /// Array of data to checksum + /// Offset to start reading from + /// The table to use for slicing-by-16 lookup + /// First byte of input after mixing with the old CRC + /// Second byte of input after mixing with the old CRC + /// Third byte of input after mixing with the old CRC + /// Fourth byte of input after mixing with the old CRC + /// A new unfinalized checksum value + /// + /// + /// Even though the first four bytes of input are fed in as arguments, + /// should be the same value passed to this + /// function's caller (either or + /// ). This method will get inlined + /// into both functions, so using the same offset produces faster code. + /// + /// + /// Because most processors running C# have some kind of instruction-level + /// parallelism, the order of XOR operations can affect performance. This + /// ordering assumes that the assembly code generated by the just-in-time + /// compiler will emit a bunch of arithmetic operations for checking array + /// bounds. Then it opportunistically XORs a1 and a2 to keep the processor + /// busy while those other parts of the pipeline handle the range check + /// calculations. + /// + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static uint UpdateDataCommon(byte[] input, int offset, uint[] crcTable, byte x1, byte x2, byte x3, byte x4) + { + uint result; + uint a1 = crcTable[x1 + 3840] ^ crcTable[x2 + 3584]; + uint a2 = crcTable[x3 + 3328] ^ crcTable[x4 + 3072]; + + result = crcTable[input[offset + 4] + 2816]; + result ^= crcTable[input[offset + 5] + 2560]; + a1 ^= crcTable[input[offset + 9] + 1536]; + result ^= crcTable[input[offset + 6] + 2304]; + result ^= crcTable[input[offset + 7] + 2048]; + result ^= crcTable[input[offset + 8] + 1792]; + a2 ^= crcTable[input[offset + 13] + 512]; + result ^= crcTable[input[offset + 10] + 1280]; + result ^= crcTable[input[offset + 11] + 1024]; + result ^= crcTable[input[offset + 12] + 768]; + result ^= a1; + result ^= crcTable[input[offset + 14] + 256]; + result ^= crcTable[input[offset + 15]]; + result ^= a2; + + return result; + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/CrcUtilities.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/CrcUtilities.cs.meta new file mode 100644 index 0000000..ce545db --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/CrcUtilities.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 030f70083d0d0410686bc79579e24d6b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs new file mode 100644 index 0000000..db74a5a --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs @@ -0,0 +1,51 @@ +using System; + +namespace ICSharpCode.SharpZipLib.Checksum +{ + /// + /// Interface to compute a data checksum used by checked input/output streams. + /// A data checksum can be updated by one byte or with a byte array. After each + /// update the value of the current checksum can be returned by calling + /// getValue. The complete checksum object can also be reset + /// so it can be used again with new data. + /// + public interface IChecksum + { + /// + /// Resets the data checksum as if no update was ever called. + /// + void Reset(); + + /// + /// Returns the data checksum computed so far. + /// + long Value + { + get; + } + + /// + /// Adds one byte to the data checksum. + /// + /// + /// the data value to add. The high byte of the int is ignored. + /// + void Update(int bval); + + /// + /// Updates the data checksum with the bytes taken from the array. + /// + /// + /// buffer an array of bytes + /// + void Update(byte[] buffer); + + /// + /// Adds the byte array to the data checksum. + /// + /// + /// The chunk of data to add + /// + void Update(ArraySegment segment); + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs.meta new file mode 100644 index 0000000..96efea2 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 622f2fb288a164c9b813b5e8cfadb011 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core.meta new file mode 100644 index 0000000..d2c4dca --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 83fcfc5633d66459b8c8cfec7f06d70b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/EmptyRefs.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/EmptyRefs.cs new file mode 100644 index 0000000..52b61a3 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/EmptyRefs.cs @@ -0,0 +1,15 @@ +namespace ICSharpCode.SharpZipLib.Core +{ + internal static class Empty + { +#if NET45 + internal static class EmptyArray + { + public static readonly T[] Value = new T[0]; + } + public static T[] Array() => EmptyArray.Value; +#else + public static T[] Array() => System.Array.Empty(); +#endif + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/EmptyRefs.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/EmptyRefs.cs.meta new file mode 100644 index 0000000..388dd8c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/EmptyRefs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b124785f780a04b0faeb35bf73a184a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions.meta new file mode 100644 index 0000000..2a0589b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b42392e0862243dc8d7f9e1e5ef4f8d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/SharpZipBaseException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/SharpZipBaseException.cs new file mode 100644 index 0000000..eb14e2d --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/SharpZipBaseException.cs @@ -0,0 +1,58 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib +{ + /// + /// SharpZipBaseException is the base exception class for SharpZipLib. + /// All library exceptions are derived from this. + /// + /// NOTE: Not all exceptions thrown will be derived from this class. + /// A variety of other exceptions are possible for example + [Serializable] + public class SharpZipBaseException : Exception + { + /// + /// Initializes a new instance of the SharpZipBaseException class. + /// + public SharpZipBaseException() + { + } + + /// + /// Initializes a new instance of the SharpZipBaseException class with a specified error message. + /// + /// A message describing the exception. + public SharpZipBaseException(string message) + : base(message) + { + } + + /// + /// Initializes a new instance of the SharpZipBaseException class with a specified + /// error message and a reference to the inner exception that is the cause of this exception. + /// + /// A message describing the exception. + /// The inner exception + public SharpZipBaseException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the SharpZipBaseException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected SharpZipBaseException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/SharpZipBaseException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/SharpZipBaseException.cs.meta new file mode 100644 index 0000000..06f0859 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/SharpZipBaseException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9ee0f7c1dcfb14562b259ee54bc3c2d0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamDecodingException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamDecodingException.cs new file mode 100644 index 0000000..e22b11b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamDecodingException.cs @@ -0,0 +1,50 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib +{ + /// + /// Indicates that an error occurred during decoding of a input stream due to corrupt + /// data or (unintentional) library incompatibility. + /// + [Serializable] + public class StreamDecodingException : SharpZipBaseException + { + private const string GenericMessage = "Input stream could not be decoded"; + + /// + /// Initializes a new instance of the StreamDecodingException with a generic message + /// + public StreamDecodingException() : base(GenericMessage) { } + + /// + /// Initializes a new instance of the StreamDecodingException class with a specified error message. + /// + /// A message describing the exception. + public StreamDecodingException(string message) : base(message) { } + + /// + /// Initializes a new instance of the StreamDecodingException class with a specified + /// error message and a reference to the inner exception that is the cause of this exception. + /// + /// A message describing the exception. + /// The inner exception + public StreamDecodingException(string message, Exception innerException) : base(message, innerException) { } + + /// + /// Initializes a new instance of the StreamDecodingException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected StreamDecodingException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamDecodingException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamDecodingException.cs.meta new file mode 100644 index 0000000..e351044 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamDecodingException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d814663455d254ab296d9e2c98eb6f80 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamUnsupportedException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamUnsupportedException.cs new file mode 100644 index 0000000..5827e55 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamUnsupportedException.cs @@ -0,0 +1,49 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib +{ + /// + /// Indicates that the input stream could not decoded due to known library incompability or missing features + /// + [Serializable] + public class StreamUnsupportedException : StreamDecodingException + { + private const string GenericMessage = "Input stream is in a unsupported format"; + + /// + /// Initializes a new instance of the StreamUnsupportedException with a generic message + /// + public StreamUnsupportedException() : base(GenericMessage) { } + + /// + /// Initializes a new instance of the StreamUnsupportedException class with a specified error message. + /// + /// A message describing the exception. + public StreamUnsupportedException(string message) : base(message) { } + + /// + /// Initializes a new instance of the StreamUnsupportedException class with a specified + /// error message and a reference to the inner exception that is the cause of this exception. + /// + /// A message describing the exception. + /// The inner exception + public StreamUnsupportedException(string message, Exception innerException) : base(message, innerException) { } + + /// + /// Initializes a new instance of the StreamUnsupportedException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected StreamUnsupportedException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamUnsupportedException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamUnsupportedException.cs.meta new file mode 100644 index 0000000..355faf5 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/StreamUnsupportedException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb57476a6344847b692623fbab4ad446 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/UnexpectedEndOfStreamException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/UnexpectedEndOfStreamException.cs new file mode 100644 index 0000000..a35c49f --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/UnexpectedEndOfStreamException.cs @@ -0,0 +1,49 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib +{ + /// + /// Indicates that the input stream could not decoded due to the stream ending before enough data had been provided + /// + [Serializable] + public class UnexpectedEndOfStreamException : StreamDecodingException + { + private const string GenericMessage = "Input stream ended unexpectedly"; + + /// + /// Initializes a new instance of the UnexpectedEndOfStreamException with a generic message + /// + public UnexpectedEndOfStreamException() : base(GenericMessage) { } + + /// + /// Initializes a new instance of the UnexpectedEndOfStreamException class with a specified error message. + /// + /// A message describing the exception. + public UnexpectedEndOfStreamException(string message) : base(message) { } + + /// + /// Initializes a new instance of the UnexpectedEndOfStreamException class with a specified + /// error message and a reference to the inner exception that is the cause of this exception. + /// + /// A message describing the exception. + /// The inner exception + public UnexpectedEndOfStreamException(string message, Exception innerException) : base(message, innerException) { } + + /// + /// Initializes a new instance of the UnexpectedEndOfStreamException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected UnexpectedEndOfStreamException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/UnexpectedEndOfStreamException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/UnexpectedEndOfStreamException.cs.meta new file mode 100644 index 0000000..0cfed41 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/UnexpectedEndOfStreamException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0cb84e4fa7d684681834ffc85df3a172 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/ValueOutOfRangeException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/ValueOutOfRangeException.cs new file mode 100644 index 0000000..d41cf98 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/ValueOutOfRangeException.cs @@ -0,0 +1,66 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib +{ + /// + /// Indicates that a value was outside of the expected range when decoding an input stream + /// + [Serializable] + public class ValueOutOfRangeException : StreamDecodingException + { + /// + /// Initializes a new instance of the ValueOutOfRangeException class naming the causing variable + /// + /// Name of the variable, use: nameof() + public ValueOutOfRangeException(string nameOfValue) + : base($"{nameOfValue} out of range") { } + + /// + /// Initializes a new instance of the ValueOutOfRangeException class naming the causing variable, + /// it's current value and expected range. + /// + /// Name of the variable, use: nameof() + /// The invalid value + /// Expected maximum value + /// Expected minimum value + public ValueOutOfRangeException(string nameOfValue, long value, long maxValue, long minValue = 0) + : this(nameOfValue, value.ToString(), maxValue.ToString(), minValue.ToString()) { } + + /// + /// Initializes a new instance of the ValueOutOfRangeException class naming the causing variable, + /// it's current value and expected range. + /// + /// Name of the variable, use: nameof() + /// The invalid value + /// Expected maximum value + /// Expected minimum value + public ValueOutOfRangeException(string nameOfValue, string value, string maxValue, string minValue = "0") : + base($"{nameOfValue} out of range: {value}, should be {minValue}..{maxValue}") + { } + + private ValueOutOfRangeException() + { + } + + private ValueOutOfRangeException(string message, Exception innerException) : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the ValueOutOfRangeException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected ValueOutOfRangeException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/ValueOutOfRangeException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/ValueOutOfRangeException.cs.meta new file mode 100644 index 0000000..a5e5657 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/Exceptions/ValueOutOfRangeException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f4b5efb8d725d4aa7aeaefaf0d1b6ec7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs new file mode 100644 index 0000000..427e7d8 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs @@ -0,0 +1,545 @@ +using System; + +namespace ICSharpCode.SharpZipLib.Core +{ + #region EventArgs + + /// + /// Event arguments for scanning. + /// + public class ScanEventArgs : EventArgs + { + #region Constructors + + /// + /// Initialise a new instance of + /// + /// The file or directory name. + public ScanEventArgs(string name) + { + name_ = name; + } + + #endregion Constructors + + /// + /// The file or directory name for this event. + /// + public string Name + { + get { return name_; } + } + + /// + /// Get set a value indicating if scanning should continue or not. + /// + public bool ContinueRunning + { + get { return continueRunning_; } + set { continueRunning_ = value; } + } + + #region Instance Fields + + private string name_; + private bool continueRunning_ = true; + + #endregion Instance Fields + } + + /// + /// Event arguments during processing of a single file or directory. + /// + public class ProgressEventArgs : EventArgs + { + #region Constructors + + /// + /// Initialise a new instance of + /// + /// The file or directory name if known. + /// The number of bytes processed so far + /// The total number of bytes to process, 0 if not known + public ProgressEventArgs(string name, long processed, long target) + { + name_ = name; + processed_ = processed; + target_ = target; + } + + #endregion Constructors + + /// + /// The name for this event if known. + /// + public string Name + { + get { return name_; } + } + + /// + /// Get set a value indicating whether scanning should continue or not. + /// + public bool ContinueRunning + { + get { return continueRunning_; } + set { continueRunning_ = value; } + } + + /// + /// Get a percentage representing how much of the has been processed + /// + /// 0.0 to 100.0 percent; 0 if target is not known. + public float PercentComplete + { + get + { + float result; + if (target_ <= 0) + { + result = 0; + } + else + { + result = ((float)processed_ / (float)target_) * 100.0f; + } + return result; + } + } + + /// + /// The number of bytes processed so far + /// + public long Processed + { + get { return processed_; } + } + + /// + /// The number of bytes to process. + /// + /// Target may be 0 or negative if the value isnt known. + public long Target + { + get { return target_; } + } + + #region Instance Fields + + private string name_; + private long processed_; + private long target_; + private bool continueRunning_ = true; + + #endregion Instance Fields + } + + /// + /// Event arguments for directories. + /// + public class DirectoryEventArgs : ScanEventArgs + { + #region Constructors + + /// + /// Initialize an instance of . + /// + /// The name for this directory. + /// Flag value indicating if any matching files are contained in this directory. + public DirectoryEventArgs(string name, bool hasMatchingFiles) + : base(name) + { + hasMatchingFiles_ = hasMatchingFiles; + } + + #endregion Constructors + + /// + /// Get a value indicating if the directory contains any matching files or not. + /// + public bool HasMatchingFiles + { + get { return hasMatchingFiles_; } + } + + private readonly + + #region Instance Fields + + bool hasMatchingFiles_; + + #endregion Instance Fields + } + + /// + /// Arguments passed when scan failures are detected. + /// + public class ScanFailureEventArgs : EventArgs + { + #region Constructors + + /// + /// Initialise a new instance of + /// + /// The name to apply. + /// The exception to use. + public ScanFailureEventArgs(string name, Exception e) + { + name_ = name; + exception_ = e; + continueRunning_ = true; + } + + #endregion Constructors + + /// + /// The applicable name. + /// + public string Name + { + get { return name_; } + } + + /// + /// The applicable exception. + /// + public Exception Exception + { + get { return exception_; } + } + + /// + /// Get / set a value indicating whether scanning should continue. + /// + public bool ContinueRunning + { + get { return continueRunning_; } + set { continueRunning_ = value; } + } + + #region Instance Fields + + private string name_; + private Exception exception_; + private bool continueRunning_; + + #endregion Instance Fields + } + + #endregion EventArgs + + #region Delegates + + /// + /// Delegate invoked before starting to process a file. + /// + /// The source of the event + /// The event arguments. + public delegate void ProcessFileHandler(object sender, ScanEventArgs e); + + /// + /// Delegate invoked during processing of a file or directory + /// + /// The source of the event + /// The event arguments. + public delegate void ProgressHandler(object sender, ProgressEventArgs e); + + /// + /// Delegate invoked when a file has been completely processed. + /// + /// The source of the event + /// The event arguments. + public delegate void CompletedFileHandler(object sender, ScanEventArgs e); + + /// + /// Delegate invoked when a directory failure is detected. + /// + /// The source of the event + /// The event arguments. + public delegate void DirectoryFailureHandler(object sender, ScanFailureEventArgs e); + + /// + /// Delegate invoked when a file failure is detected. + /// + /// The source of the event + /// The event arguments. + public delegate void FileFailureHandler(object sender, ScanFailureEventArgs e); + + #endregion Delegates + + /// + /// FileSystemScanner provides facilities scanning of files and directories. + /// + public class FileSystemScanner + { + #region Constructors + + /// + /// Initialise a new instance of + /// + /// The file filter to apply when scanning. + public FileSystemScanner(string filter) + { + fileFilter_ = new PathFilter(filter); + } + + /// + /// Initialise a new instance of + /// + /// The file filter to apply. + /// The directory filter to apply. + public FileSystemScanner(string fileFilter, string directoryFilter) + { + fileFilter_ = new PathFilter(fileFilter); + directoryFilter_ = new PathFilter(directoryFilter); + } + + /// + /// Initialise a new instance of + /// + /// The file filter to apply. + public FileSystemScanner(IScanFilter fileFilter) + { + fileFilter_ = fileFilter; + } + + /// + /// Initialise a new instance of + /// + /// The file filter to apply. + /// The directory filter to apply. + public FileSystemScanner(IScanFilter fileFilter, IScanFilter directoryFilter) + { + fileFilter_ = fileFilter; + directoryFilter_ = directoryFilter; + } + + #endregion Constructors + + #region Delegates + + /// + /// Delegate to invoke when a directory is processed. + /// + public event EventHandler ProcessDirectory; + + /// + /// Delegate to invoke when a file is processed. + /// + public ProcessFileHandler ProcessFile; + + /// + /// Delegate to invoke when processing for a file has finished. + /// + public CompletedFileHandler CompletedFile; + + /// + /// Delegate to invoke when a directory failure is detected. + /// + public DirectoryFailureHandler DirectoryFailure; + + /// + /// Delegate to invoke when a file failure is detected. + /// + public FileFailureHandler FileFailure; + + #endregion Delegates + + /// + /// Raise the DirectoryFailure event. + /// + /// The directory name. + /// The exception detected. + private bool OnDirectoryFailure(string directory, Exception e) + { + DirectoryFailureHandler handler = DirectoryFailure; + bool result = (handler != null); + if (result) + { + var args = new ScanFailureEventArgs(directory, e); + handler(this, args); + alive_ = args.ContinueRunning; + } + return result; + } + + /// + /// Raise the FileFailure event. + /// + /// The file name. + /// The exception detected. + private bool OnFileFailure(string file, Exception e) + { + FileFailureHandler handler = FileFailure; + + bool result = (handler != null); + + if (result) + { + var args = new ScanFailureEventArgs(file, e); + FileFailure(this, args); + alive_ = args.ContinueRunning; + } + return result; + } + + /// + /// Raise the ProcessFile event. + /// + /// The file name. + private void OnProcessFile(string file) + { + ProcessFileHandler handler = ProcessFile; + + if (handler != null) + { + var args = new ScanEventArgs(file); + handler(this, args); + alive_ = args.ContinueRunning; + } + } + + /// + /// Raise the complete file event + /// + /// The file name + private void OnCompleteFile(string file) + { + CompletedFileHandler handler = CompletedFile; + + if (handler != null) + { + var args = new ScanEventArgs(file); + handler(this, args); + alive_ = args.ContinueRunning; + } + } + + /// + /// Raise the ProcessDirectory event. + /// + /// The directory name. + /// Flag indicating if the directory has matching files. + private void OnProcessDirectory(string directory, bool hasMatchingFiles) + { + EventHandler handler = ProcessDirectory; + + if (handler != null) + { + var args = new DirectoryEventArgs(directory, hasMatchingFiles); + handler(this, args); + alive_ = args.ContinueRunning; + } + } + + /// + /// Scan a directory. + /// + /// The base directory to scan. + /// True to recurse subdirectories, false to scan a single directory. + public void Scan(string directory, bool recurse) + { + alive_ = true; + ScanDir(directory, recurse); + } + + private void ScanDir(string directory, bool recurse) + { + try + { + string[] names = System.IO.Directory.GetFiles(directory); + bool hasMatch = false; + for (int fileIndex = 0; fileIndex < names.Length; ++fileIndex) + { + if (!fileFilter_.IsMatch(names[fileIndex])) + { + names[fileIndex] = null; + } + else + { + hasMatch = true; + } + } + + OnProcessDirectory(directory, hasMatch); + + if (alive_ && hasMatch) + { + foreach (string fileName in names) + { + try + { + if (fileName != null) + { + OnProcessFile(fileName); + if (!alive_) + { + break; + } + } + } + catch (Exception e) + { + if (!OnFileFailure(fileName, e)) + { + throw; + } + } + } + } + } + catch (Exception e) + { + if (!OnDirectoryFailure(directory, e)) + { + throw; + } + } + + if (alive_ && recurse) + { + try + { + string[] names = System.IO.Directory.GetDirectories(directory); + foreach (string fulldir in names) + { + if ((directoryFilter_ == null) || (directoryFilter_.IsMatch(fulldir))) + { + ScanDir(fulldir, true); + if (!alive_) + { + break; + } + } + } + } + catch (Exception e) + { + if (!OnDirectoryFailure(directory, e)) + { + throw; + } + } + } + } + + #region Instance Fields + + /// + /// The file filter currently in use. + /// + private IScanFilter fileFilter_; + + /// + /// The directory filter currently in use. + /// + private IScanFilter directoryFilter_; + + /// + /// Flag indicating if scanning should continue running. + /// + private bool alive_; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs.meta new file mode 100644 index 0000000..ae0af07 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ac7d9237f614a4d99859a1fd0b445679 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/INameTransform.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/INameTransform.cs new file mode 100644 index 0000000..492e2a9 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/INameTransform.cs @@ -0,0 +1,22 @@ +namespace ICSharpCode.SharpZipLib.Core +{ + /// + /// INameTransform defines how file system names are transformed for use with archives, or vice versa. + /// + public interface INameTransform + { + /// + /// Given a file name determine the transformed value. + /// + /// The name to transform. + /// The transformed file name. + string TransformFile(string name); + + /// + /// Given a directory name determine the transformed value. + /// + /// The name to transform. + /// The transformed directory name + string TransformDirectory(string name); + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/INameTransform.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/INameTransform.cs.meta new file mode 100644 index 0000000..47fb3b1 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/INameTransform.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: efc7a166807014f3cbdb0de01cd82581 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/IScanFilter.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/IScanFilter.cs new file mode 100644 index 0000000..ac07fd1 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/IScanFilter.cs @@ -0,0 +1,15 @@ +namespace ICSharpCode.SharpZipLib.Core +{ + /// + /// Scanning filters support filtering of names. + /// + public interface IScanFilter + { + /// + /// Test a name to see if it 'matches' the filter. + /// + /// The name to test. + /// Returns true if the name matches the filter, false if it does not match. + bool IsMatch(string name); + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/IScanFilter.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/IScanFilter.cs.meta new file mode 100644 index 0000000..878a234 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/IScanFilter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d126f2f57b71440499baa0d2fc7d9b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/InvalidNameException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/InvalidNameException.cs new file mode 100644 index 0000000..6647631 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/InvalidNameException.cs @@ -0,0 +1,53 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib.Core +{ + /// + /// InvalidNameException is thrown for invalid names such as directory traversal paths and names with invalid characters + /// + [Serializable] + public class InvalidNameException : SharpZipBaseException + { + /// + /// Initializes a new instance of the InvalidNameException class with a default error message. + /// + public InvalidNameException() : base("An invalid name was specified") + { + } + + /// + /// Initializes a new instance of the InvalidNameException class with a specified error message. + /// + /// A message describing the exception. + public InvalidNameException(string message) : base(message) + { + } + + /// + /// Initializes a new instance of the InvalidNameException class with a specified + /// error message and a reference to the inner exception that is the cause of this exception. + /// + /// A message describing the exception. + /// The inner exception + public InvalidNameException(string message, Exception innerException) : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the InvalidNameException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected InvalidNameException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/InvalidNameException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/InvalidNameException.cs.meta new file mode 100644 index 0000000..0a01528 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/InvalidNameException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3ce45ae16d55f4b47a42da33e9748956 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/NameFilter.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/NameFilter.cs new file mode 100644 index 0000000..5775189 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/NameFilter.cs @@ -0,0 +1,284 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Text.RegularExpressions; + +namespace ICSharpCode.SharpZipLib.Core +{ + /// + /// NameFilter is a string matching class which allows for both positive and negative + /// matching. + /// A filter is a sequence of independant regular expressions separated by semi-colons ';'. + /// To include a semi-colon it may be quoted as in \;. Each expression can be prefixed by a plus '+' sign or + /// a minus '-' sign to denote the expression is intended to include or exclude names. + /// If neither a plus or minus sign is found include is the default. + /// A given name is tested for inclusion before checking exclusions. Only names matching an include spec + /// and not matching an exclude spec are deemed to match the filter. + /// An empty filter matches any name. + /// + /// The following expression includes all name ending in '.dat' with the exception of 'dummy.dat' + /// "+\.dat$;-^dummy\.dat$" + /// + public class NameFilter : IScanFilter + { + #region Constructors + + /// + /// Construct an instance based on the filter expression passed + /// + /// The filter expression. + public NameFilter(string filter) + { + filter_ = filter; + inclusions_ = new List(); + exclusions_ = new List(); + Compile(); + } + + #endregion Constructors + + /// + /// Test a string to see if it is a valid regular expression. + /// + /// The expression to test. + /// True if expression is a valid false otherwise. + public static bool IsValidExpression(string expression) + { + bool result = true; + try + { + var exp = new Regex(expression, RegexOptions.IgnoreCase | RegexOptions.Singleline); + } + catch (ArgumentException) + { + result = false; + } + return result; + } + + /// + /// Test an expression to see if it is valid as a filter. + /// + /// The filter expression to test. + /// True if the expression is valid, false otherwise. + public static bool IsValidFilterExpression(string toTest) + { + bool result = true; + + try + { + if (toTest != null) + { + string[] items = SplitQuoted(toTest); + for (int i = 0; i < items.Length; ++i) + { + if ((items[i] != null) && (items[i].Length > 0)) + { + string toCompile; + + if (items[i][0] == '+') + { + toCompile = items[i].Substring(1, items[i].Length - 1); + } + else if (items[i][0] == '-') + { + toCompile = items[i].Substring(1, items[i].Length - 1); + } + else + { + toCompile = items[i]; + } + + var testRegex = new Regex(toCompile, RegexOptions.IgnoreCase | RegexOptions.Singleline); + } + } + } + } + catch (ArgumentException) + { + result = false; + } + + return result; + } + + /// + /// Split a string into its component pieces + /// + /// The original string + /// Returns an array of values containing the individual filter elements. + public static string[] SplitQuoted(string original) + { + char escape = '\\'; + char[] separators = { ';' }; + + var result = new List(); + + if (!string.IsNullOrEmpty(original)) + { + int endIndex = -1; + var b = new StringBuilder(); + + while (endIndex < original.Length) + { + endIndex += 1; + if (endIndex >= original.Length) + { + result.Add(b.ToString()); + } + else if (original[endIndex] == escape) + { + endIndex += 1; + if (endIndex >= original.Length) + { + throw new ArgumentException("Missing terminating escape character", nameof(original)); + } + // include escape if this is not an escaped separator + if (Array.IndexOf(separators, original[endIndex]) < 0) + b.Append(escape); + + b.Append(original[endIndex]); + } + else + { + if (Array.IndexOf(separators, original[endIndex]) >= 0) + { + result.Add(b.ToString()); + b.Length = 0; + } + else + { + b.Append(original[endIndex]); + } + } + } + } + + return result.ToArray(); + } + + /// + /// Convert this filter to its string equivalent. + /// + /// The string equivalent for this filter. + public override string ToString() + { + return filter_; + } + + /// + /// Test a value to see if it is included by the filter. + /// + /// The value to test. + /// True if the value is included, false otherwise. + public bool IsIncluded(string name) + { + bool result = false; + if (inclusions_.Count == 0) + { + result = true; + } + else + { + foreach (Regex r in inclusions_) + { + if (r.IsMatch(name)) + { + result = true; + break; + } + } + } + return result; + } + + /// + /// Test a value to see if it is excluded by the filter. + /// + /// The value to test. + /// True if the value is excluded, false otherwise. + public bool IsExcluded(string name) + { + bool result = false; + foreach (Regex r in exclusions_) + { + if (r.IsMatch(name)) + { + result = true; + break; + } + } + return result; + } + + #region IScanFilter Members + + /// + /// Test a value to see if it matches the filter. + /// + /// The value to test. + /// True if the value matches, false otherwise. + public bool IsMatch(string name) + { + return (IsIncluded(name) && !IsExcluded(name)); + } + + #endregion IScanFilter Members + + /// + /// Compile this filter. + /// + private void Compile() + { + // TODO: Check to see if combining RE's makes it faster/smaller. + // simple scheme would be to have one RE for inclusion and one for exclusion. + if (filter_ == null) + { + return; + } + + string[] items = SplitQuoted(filter_); + for (int i = 0; i < items.Length; ++i) + { + if ((items[i] != null) && (items[i].Length > 0)) + { + bool include = (items[i][0] != '-'); + string toCompile; + + if (items[i][0] == '+') + { + toCompile = items[i].Substring(1, items[i].Length - 1); + } + else if (items[i][0] == '-') + { + toCompile = items[i].Substring(1, items[i].Length - 1); + } + else + { + toCompile = items[i]; + } + + // NOTE: Regular expressions can fail to compile here for a number of reasons that cause an exception + // these are left unhandled here as the caller is responsible for ensuring all is valid. + // several functions IsValidFilterExpression and IsValidExpression are provided for such checking + if (include) + { + inclusions_.Add(new Regex(toCompile, RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline)); + } + else + { + exclusions_.Add(new Regex(toCompile, RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline)); + } + } + } + } + + #region Instance Fields + + private string filter_; + private List inclusions_; + private List exclusions_; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/NameFilter.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/NameFilter.cs.meta new file mode 100644 index 0000000..f7daaf3 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/NameFilter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aa7c9c00ce40a4532bffec2a4536f8ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathFilter.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathFilter.cs new file mode 100644 index 0000000..e70109c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathFilter.cs @@ -0,0 +1,318 @@ +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.Core +{ + /// + /// PathFilter filters directories and files using a form of regular expressions + /// by full path name. + /// See NameFilter for more detail on filtering. + /// + public class PathFilter : IScanFilter + { + #region Constructors + + /// + /// Initialise a new instance of . + /// + /// The filter expression to apply. + public PathFilter(string filter) + { + nameFilter_ = new NameFilter(filter); + } + + #endregion Constructors + + #region IScanFilter Members + + /// + /// Test a name to see if it matches the filter. + /// + /// The name to test. + /// True if the name matches, false otherwise. + /// is used to get the full path before matching. + public virtual bool IsMatch(string name) + { + bool result = false; + + if (name != null) + { + string cooked = (name.Length > 0) ? Path.GetFullPath(name) : ""; + result = nameFilter_.IsMatch(cooked); + } + return result; + } + + private readonly + + #endregion IScanFilter Members + + #region Instance Fields + + NameFilter nameFilter_; + + #endregion Instance Fields + } + + /// + /// ExtendedPathFilter filters based on name, file size, and the last write time of the file. + /// + /// Provides an example of how to customise filtering. + public class ExtendedPathFilter : PathFilter + { + #region Constructors + + /// + /// Initialise a new instance of ExtendedPathFilter. + /// + /// The filter to apply. + /// The minimum file size to include. + /// The maximum file size to include. + public ExtendedPathFilter(string filter, + long minSize, long maxSize) + : base(filter) + { + MinSize = minSize; + MaxSize = maxSize; + } + + /// + /// Initialise a new instance of ExtendedPathFilter. + /// + /// The filter to apply. + /// The minimum to include. + /// The maximum to include. + public ExtendedPathFilter(string filter, + DateTime minDate, DateTime maxDate) + : base(filter) + { + MinDate = minDate; + MaxDate = maxDate; + } + + /// + /// Initialise a new instance of ExtendedPathFilter. + /// + /// The filter to apply. + /// The minimum file size to include. + /// The maximum file size to include. + /// The minimum to include. + /// The maximum to include. + public ExtendedPathFilter(string filter, + long minSize, long maxSize, + DateTime minDate, DateTime maxDate) + : base(filter) + { + MinSize = minSize; + MaxSize = maxSize; + MinDate = minDate; + MaxDate = maxDate; + } + + #endregion Constructors + + #region IScanFilter Members + + /// + /// Test a filename to see if it matches the filter. + /// + /// The filename to test. + /// True if the filter matches, false otherwise. + /// The doesnt exist + public override bool IsMatch(string name) + { + bool result = base.IsMatch(name); + + if (result) + { + var fileInfo = new FileInfo(name); + result = + (MinSize <= fileInfo.Length) && + (MaxSize >= fileInfo.Length) && + (MinDate <= fileInfo.LastWriteTime) && + (MaxDate >= fileInfo.LastWriteTime) + ; + } + return result; + } + + #endregion IScanFilter Members + + #region Properties + + /// + /// Get/set the minimum size/length for a file that will match this filter. + /// + /// The default value is zero. + /// value is less than zero; greater than + public long MinSize + { + get { return minSize_; } + set + { + if ((value < 0) || (maxSize_ < value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + + minSize_ = value; + } + } + + /// + /// Get/set the maximum size/length for a file that will match this filter. + /// + /// The default value is + /// value is less than zero or less than + public long MaxSize + { + get { return maxSize_; } + set + { + if ((value < 0) || (minSize_ > value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + + maxSize_ = value; + } + } + + /// + /// Get/set the minimum value that will match for this filter. + /// + /// Files with a LastWrite time less than this value are excluded by the filter. + public DateTime MinDate + { + get + { + return minDate_; + } + + set + { + if (value > maxDate_) + { + throw new ArgumentOutOfRangeException(nameof(value), "Exceeds MaxDate"); + } + + minDate_ = value; + } + } + + /// + /// Get/set the maximum value that will match for this filter. + /// + /// Files with a LastWrite time greater than this value are excluded by the filter. + public DateTime MaxDate + { + get + { + return maxDate_; + } + + set + { + if (minDate_ > value) + { + throw new ArgumentOutOfRangeException(nameof(value), "Exceeds MinDate"); + } + + maxDate_ = value; + } + } + + #endregion Properties + + #region Instance Fields + + private long minSize_; + private long maxSize_ = long.MaxValue; + private DateTime minDate_ = DateTime.MinValue; + private DateTime maxDate_ = DateTime.MaxValue; + + #endregion Instance Fields + } + + /// + /// NameAndSizeFilter filters based on name and file size. + /// + /// A sample showing how filters might be extended. + [Obsolete("Use ExtendedPathFilter instead")] + public class NameAndSizeFilter : PathFilter + { + /// + /// Initialise a new instance of NameAndSizeFilter. + /// + /// The filter to apply. + /// The minimum file size to include. + /// The maximum file size to include. + public NameAndSizeFilter(string filter, long minSize, long maxSize) + : base(filter) + { + MinSize = minSize; + MaxSize = maxSize; + } + + /// + /// Test a filename to see if it matches the filter. + /// + /// The filename to test. + /// True if the filter matches, false otherwise. + public override bool IsMatch(string name) + { + bool result = base.IsMatch(name); + + if (result) + { + var fileInfo = new FileInfo(name); + long length = fileInfo.Length; + result = + (MinSize <= length) && + (MaxSize >= length); + } + return result; + } + + /// + /// Get/set the minimum size for a file that will match this filter. + /// + public long MinSize + { + get { return minSize_; } + set + { + if ((value < 0) || (maxSize_ < value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + + minSize_ = value; + } + } + + /// + /// Get/set the maximum size for a file that will match this filter. + /// + public long MaxSize + { + get { return maxSize_; } + set + { + if ((value < 0) || (minSize_ > value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + + maxSize_ = value; + } + } + + #region Instance Fields + + private long minSize_; + private long maxSize_ = long.MaxValue; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathFilter.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathFilter.cs.meta new file mode 100644 index 0000000..1b62846 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathFilter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a2872bfcbf1934d89b3d732f76fb54d9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathUtils.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathUtils.cs new file mode 100644 index 0000000..f50d019 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathUtils.cs @@ -0,0 +1,53 @@ +using System.IO; +using System.Linq; + +namespace ICSharpCode.SharpZipLib.Core +{ + /// + /// PathUtils provides simple utilities for handling paths. + /// + public static class PathUtils + { + /// + /// Remove any path root present in the path + /// + /// A containing path information. + /// The path with the root removed if it was present; path otherwise. + public static string DropPathRoot(string path) + { + var invalidChars = Path.GetInvalidPathChars(); + // If the first character after the root is a ':', .NET < 4.6.2 throws + var cleanRootSep = path.Length >= 3 && path[1] == ':' && path[2] == ':'; + + // Replace any invalid path characters with '_' to prevent Path.GetPathRoot from throwing. + // Only pass the first 258 (should be 260, but that still throws for some reason) characters + // as .NET < 4.6.2 throws on longer paths + var cleanPath = new string(path.Take(258) + .Select( (c, i) => invalidChars.Contains(c) || (i == 2 && cleanRootSep) ? '_' : c).ToArray()); + + var stripLength = Path.GetPathRoot(cleanPath).Length; + while (path.Length > stripLength && (path[stripLength] == '/' || path[stripLength] == '\\')) stripLength++; + return path.Substring(stripLength); + } + + /// + /// Returns a random file name in the users temporary directory, or in directory of if specified + /// + /// If specified, used as the base file name for the temporary file + /// Returns a temporary file name + public static string GetTempFileName(string original = null) + { + string fileName; + var tempPath = Path.GetTempPath(); + + do + { + fileName = original == null + ? Path.Combine(tempPath, Path.GetRandomFileName()) + : $"{original}.{Path.GetRandomFileName()}"; + } while (File.Exists(fileName)); + + return fileName; + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathUtils.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathUtils.cs.meta new file mode 100644 index 0000000..260c72e --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/PathUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0e6c2d46a933d46c9b6860f1f8baada1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/StreamUtils.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/StreamUtils.cs new file mode 100644 index 0000000..6d0d9b3 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/StreamUtils.cs @@ -0,0 +1,284 @@ +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.Core +{ + /// + /// Provides simple " utilities. + /// + public sealed class StreamUtils + { + /// + /// Read from a ensuring all the required data is read. + /// + /// The stream to read. + /// The buffer to fill. + /// + static public void ReadFully(Stream stream, byte[] buffer) + { + ReadFully(stream, buffer, 0, buffer.Length); + } + + /// + /// Read from a " ensuring all the required data is read. + /// + /// The stream to read data from. + /// The buffer to store data in. + /// The offset at which to begin storing data. + /// The number of bytes of data to store. + /// Required parameter is null + /// and or are invalid. + /// End of stream is encountered before all the data has been read. + static public void ReadFully(Stream stream, byte[] buffer, int offset, int count) + { + if (stream == null) + { + throw new ArgumentNullException(nameof(stream)); + } + + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + // Offset can equal length when buffer and count are 0. + if ((offset < 0) || (offset > buffer.Length)) + { + throw new ArgumentOutOfRangeException(nameof(offset)); + } + + if ((count < 0) || (offset + count > buffer.Length)) + { + throw new ArgumentOutOfRangeException(nameof(count)); + } + + while (count > 0) + { + int readCount = stream.Read(buffer, offset, count); + if (readCount <= 0) + { + throw new EndOfStreamException(); + } + offset += readCount; + count -= readCount; + } + } + + /// + /// Read as much data as possible from a ", up to the requested number of bytes + /// + /// The stream to read data from. + /// The buffer to store data in. + /// The offset at which to begin storing data. + /// The number of bytes of data to store. + /// Required parameter is null + /// and or are invalid. + static public int ReadRequestedBytes(Stream stream, byte[] buffer, int offset, int count) + { + if (stream == null) + { + throw new ArgumentNullException(nameof(stream)); + } + + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + // Offset can equal length when buffer and count are 0. + if ((offset < 0) || (offset > buffer.Length)) + { + throw new ArgumentOutOfRangeException(nameof(offset)); + } + + if ((count < 0) || (offset + count > buffer.Length)) + { + throw new ArgumentOutOfRangeException(nameof(count)); + } + + int totalReadCount = 0; + while (count > 0) + { + int readCount = stream.Read(buffer, offset, count); + if (readCount <= 0) + { + break; + } + offset += readCount; + count -= readCount; + totalReadCount += readCount; + } + + return totalReadCount; + } + + /// + /// Copy the contents of one to another. + /// + /// The stream to source data from. + /// The stream to write data to. + /// The buffer to use during copying. + static public void Copy(Stream source, Stream destination, byte[] buffer) + { + if (source == null) + { + throw new ArgumentNullException(nameof(source)); + } + + if (destination == null) + { + throw new ArgumentNullException(nameof(destination)); + } + + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + // Ensure a reasonable size of buffer is used without being prohibitive. + if (buffer.Length < 128) + { + throw new ArgumentException("Buffer is too small", nameof(buffer)); + } + + bool copying = true; + + while (copying) + { + int bytesRead = source.Read(buffer, 0, buffer.Length); + if (bytesRead > 0) + { + destination.Write(buffer, 0, bytesRead); + } + else + { + destination.Flush(); + copying = false; + } + } + } + + /// + /// Copy the contents of one to another. + /// + /// The stream to source data from. + /// The stream to write data to. + /// The buffer to use during copying. + /// The progress handler delegate to use. + /// The minimum between progress updates. + /// The source for this event. + /// The name to use with the event. + /// This form is specialised for use within #Zip to support events during archive operations. + static public void Copy(Stream source, Stream destination, + byte[] buffer, ProgressHandler progressHandler, TimeSpan updateInterval, object sender, string name) + { + Copy(source, destination, buffer, progressHandler, updateInterval, sender, name, -1); + } + + /// + /// Copy the contents of one to another. + /// + /// The stream to source data from. + /// The stream to write data to. + /// The buffer to use during copying. + /// The progress handler delegate to use. + /// The minimum between progress updates. + /// The source for this event. + /// The name to use with the event. + /// A predetermined fixed target value to use with progress updates. + /// If the value is negative the target is calculated by looking at the stream. + /// This form is specialised for use within #Zip to support events during archive operations. + static public void Copy(Stream source, Stream destination, + byte[] buffer, + ProgressHandler progressHandler, TimeSpan updateInterval, + object sender, string name, long fixedTarget) + { + if (source == null) + { + throw new ArgumentNullException(nameof(source)); + } + + if (destination == null) + { + throw new ArgumentNullException(nameof(destination)); + } + + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + // Ensure a reasonable size of buffer is used without being prohibitive. + if (buffer.Length < 128) + { + throw new ArgumentException("Buffer is too small", nameof(buffer)); + } + + if (progressHandler == null) + { + throw new ArgumentNullException(nameof(progressHandler)); + } + + bool copying = true; + + DateTime marker = DateTime.Now; + long processed = 0; + long target = 0; + + if (fixedTarget >= 0) + { + target = fixedTarget; + } + else if (source.CanSeek) + { + target = source.Length - source.Position; + } + + // Always fire 0% progress.. + var args = new ProgressEventArgs(name, processed, target); + progressHandler(sender, args); + + bool progressFired = true; + + while (copying) + { + int bytesRead = source.Read(buffer, 0, buffer.Length); + if (bytesRead > 0) + { + processed += bytesRead; + progressFired = false; + destination.Write(buffer, 0, bytesRead); + } + else + { + destination.Flush(); + copying = false; + } + + if (DateTime.Now - marker > updateInterval) + { + progressFired = true; + marker = DateTime.Now; + args = new ProgressEventArgs(name, processed, target); + progressHandler(sender, args); + + copying = args.ContinueRunning; + } + } + + if (!progressFired) + { + args = new ProgressEventArgs(name, processed, target); + progressHandler(sender, args); + } + } + + /// + /// Initialise an instance of + /// + private StreamUtils() + { + // Do nothing. + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/StreamUtils.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/StreamUtils.cs.meta new file mode 100644 index 0000000..c7559f5 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Core/StreamUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d1fcc965ccdc64a148b3af7b36c20805 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption.meta new file mode 100644 index 0000000..9362eb1 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 87407789811f54a39a2798d700803979 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs new file mode 100644 index 0000000..6730c9d --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs @@ -0,0 +1,487 @@ +using ICSharpCode.SharpZipLib.Checksum; +using System; +using System.Security.Cryptography; + +namespace ICSharpCode.SharpZipLib.Encryption +{ + /// + /// PkzipClassic embodies the classic or original encryption facilities used in Pkzip archives. + /// While it has been superceded by more recent and more powerful algorithms, its still in use and + /// is viable for preventing casual snooping + /// + public abstract class PkzipClassic : SymmetricAlgorithm + { + /// + /// Generates new encryption keys based on given seed + /// + /// The seed value to initialise keys with. + /// A new key value. + static public byte[] GenerateKeys(byte[] seed) + { + if (seed == null) + { + throw new ArgumentNullException(nameof(seed)); + } + + if (seed.Length == 0) + { + throw new ArgumentException("Length is zero", nameof(seed)); + } + + uint[] newKeys = { + 0x12345678, + 0x23456789, + 0x34567890 + }; + + for (int i = 0; i < seed.Length; ++i) + { + newKeys[0] = Crc32.ComputeCrc32(newKeys[0], seed[i]); + newKeys[1] = newKeys[1] + (byte)newKeys[0]; + newKeys[1] = newKeys[1] * 134775813 + 1; + newKeys[2] = Crc32.ComputeCrc32(newKeys[2], (byte)(newKeys[1] >> 24)); + } + + byte[] result = new byte[12]; + result[0] = (byte)(newKeys[0] & 0xff); + result[1] = (byte)((newKeys[0] >> 8) & 0xff); + result[2] = (byte)((newKeys[0] >> 16) & 0xff); + result[3] = (byte)((newKeys[0] >> 24) & 0xff); + result[4] = (byte)(newKeys[1] & 0xff); + result[5] = (byte)((newKeys[1] >> 8) & 0xff); + result[6] = (byte)((newKeys[1] >> 16) & 0xff); + result[7] = (byte)((newKeys[1] >> 24) & 0xff); + result[8] = (byte)(newKeys[2] & 0xff); + result[9] = (byte)((newKeys[2] >> 8) & 0xff); + result[10] = (byte)((newKeys[2] >> 16) & 0xff); + result[11] = (byte)((newKeys[2] >> 24) & 0xff); + return result; + } + } + + /// + /// PkzipClassicCryptoBase provides the low level facilities for encryption + /// and decryption using the PkzipClassic algorithm. + /// + internal class PkzipClassicCryptoBase + { + /// + /// Transform a single byte + /// + /// + /// The transformed value + /// + protected byte TransformByte() + { + uint temp = ((keys[2] & 0xFFFF) | 2); + return (byte)((temp * (temp ^ 1)) >> 8); + } + + /// + /// Set the key schedule for encryption/decryption. + /// + /// The data use to set the keys from. + protected void SetKeys(byte[] keyData) + { + if (keyData == null) + { + throw new ArgumentNullException(nameof(keyData)); + } + + if (keyData.Length != 12) + { + throw new InvalidOperationException("Key length is not valid"); + } + + keys = new uint[3]; + keys[0] = (uint)((keyData[3] << 24) | (keyData[2] << 16) | (keyData[1] << 8) | keyData[0]); + keys[1] = (uint)((keyData[7] << 24) | (keyData[6] << 16) | (keyData[5] << 8) | keyData[4]); + keys[2] = (uint)((keyData[11] << 24) | (keyData[10] << 16) | (keyData[9] << 8) | keyData[8]); + } + + /// + /// Update encryption keys + /// + protected void UpdateKeys(byte ch) + { + keys[0] = Crc32.ComputeCrc32(keys[0], ch); + keys[1] = keys[1] + (byte)keys[0]; + keys[1] = keys[1] * 134775813 + 1; + keys[2] = Crc32.ComputeCrc32(keys[2], (byte)(keys[1] >> 24)); + } + + /// + /// Reset the internal state. + /// + protected void Reset() + { + keys[0] = 0; + keys[1] = 0; + keys[2] = 0; + } + + #region Instance Fields + + private uint[] keys; + + #endregion Instance Fields + } + + /// + /// PkzipClassic CryptoTransform for encryption. + /// + internal class PkzipClassicEncryptCryptoTransform : PkzipClassicCryptoBase, ICryptoTransform + { + /// + /// Initialise a new instance of + /// + /// The key block to use. + internal PkzipClassicEncryptCryptoTransform(byte[] keyBlock) + { + SetKeys(keyBlock); + } + + #region ICryptoTransform Members + + /// + /// Transforms the specified region of the specified byte array. + /// + /// The input for which to compute the transform. + /// The offset into the byte array from which to begin using data. + /// The number of bytes in the byte array to use as data. + /// The computed transform. + public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) + { + byte[] result = new byte[inputCount]; + TransformBlock(inputBuffer, inputOffset, inputCount, result, 0); + return result; + } + + /// + /// Transforms the specified region of the input byte array and copies + /// the resulting transform to the specified region of the output byte array. + /// + /// The input for which to compute the transform. + /// The offset into the input byte array from which to begin using data. + /// The number of bytes in the input byte array to use as data. + /// The output to which to write the transform. + /// The offset into the output byte array from which to begin writing data. + /// The number of bytes written. + public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) + { + for (int i = inputOffset; i < inputOffset + inputCount; ++i) + { + byte oldbyte = inputBuffer[i]; + outputBuffer[outputOffset++] = (byte)(inputBuffer[i] ^ TransformByte()); + UpdateKeys(oldbyte); + } + return inputCount; + } + + /// + /// Gets a value indicating whether the current transform can be reused. + /// + public bool CanReuseTransform + { + get + { + return true; + } + } + + /// + /// Gets the size of the input data blocks in bytes. + /// + public int InputBlockSize + { + get + { + return 1; + } + } + + /// + /// Gets the size of the output data blocks in bytes. + /// + public int OutputBlockSize + { + get + { + return 1; + } + } + + /// + /// Gets a value indicating whether multiple blocks can be transformed. + /// + public bool CanTransformMultipleBlocks + { + get + { + return true; + } + } + + #endregion ICryptoTransform Members + + #region IDisposable Members + + /// + /// Cleanup internal state. + /// + public void Dispose() + { + Reset(); + } + + #endregion IDisposable Members + } + + /// + /// PkzipClassic CryptoTransform for decryption. + /// + internal class PkzipClassicDecryptCryptoTransform : PkzipClassicCryptoBase, ICryptoTransform + { + /// + /// Initialise a new instance of . + /// + /// The key block to decrypt with. + internal PkzipClassicDecryptCryptoTransform(byte[] keyBlock) + { + SetKeys(keyBlock); + } + + #region ICryptoTransform Members + + /// + /// Transforms the specified region of the specified byte array. + /// + /// The input for which to compute the transform. + /// The offset into the byte array from which to begin using data. + /// The number of bytes in the byte array to use as data. + /// The computed transform. + public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) + { + byte[] result = new byte[inputCount]; + TransformBlock(inputBuffer, inputOffset, inputCount, result, 0); + return result; + } + + /// + /// Transforms the specified region of the input byte array and copies + /// the resulting transform to the specified region of the output byte array. + /// + /// The input for which to compute the transform. + /// The offset into the input byte array from which to begin using data. + /// The number of bytes in the input byte array to use as data. + /// The output to which to write the transform. + /// The offset into the output byte array from which to begin writing data. + /// The number of bytes written. + public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) + { + for (int i = inputOffset; i < inputOffset + inputCount; ++i) + { + var newByte = (byte)(inputBuffer[i] ^ TransformByte()); + outputBuffer[outputOffset++] = newByte; + UpdateKeys(newByte); + } + return inputCount; + } + + /// + /// Gets a value indicating whether the current transform can be reused. + /// + public bool CanReuseTransform + { + get + { + return true; + } + } + + /// + /// Gets the size of the input data blocks in bytes. + /// + public int InputBlockSize + { + get + { + return 1; + } + } + + /// + /// Gets the size of the output data blocks in bytes. + /// + public int OutputBlockSize + { + get + { + return 1; + } + } + + /// + /// Gets a value indicating whether multiple blocks can be transformed. + /// + public bool CanTransformMultipleBlocks + { + get + { + return true; + } + } + + #endregion ICryptoTransform Members + + #region IDisposable Members + + /// + /// Cleanup internal state. + /// + public void Dispose() + { + Reset(); + } + + #endregion IDisposable Members + } + + /// + /// Defines a wrapper object to access the Pkzip algorithm. + /// This class cannot be inherited. + /// + public sealed class PkzipClassicManaged : PkzipClassic + { + /// + /// Get / set the applicable block size in bits. + /// + /// The only valid block size is 8. + public override int BlockSize + { + get + { + return 8; + } + + set + { + if (value != 8) + { + throw new CryptographicException("Block size is invalid"); + } + } + } + + /// + /// Get an array of legal key sizes. + /// + public override KeySizes[] LegalKeySizes + { + get + { + KeySizes[] keySizes = new KeySizes[1]; + keySizes[0] = new KeySizes(12 * 8, 12 * 8, 0); + return keySizes; + } + } + + /// + /// Generate an initial vector. + /// + public override void GenerateIV() + { + // Do nothing. + } + + /// + /// Get an array of legal block sizes. + /// + public override KeySizes[] LegalBlockSizes + { + get + { + KeySizes[] keySizes = new KeySizes[1]; + keySizes[0] = new KeySizes(1 * 8, 1 * 8, 0); + return keySizes; + } + } + + /// + /// Get / set the key value applicable. + /// + public override byte[] Key + { + get + { + if (key_ == null) + { + GenerateKey(); + } + + return (byte[])key_.Clone(); + } + + set + { + if (value == null) + { + throw new ArgumentNullException(nameof(value)); + } + + if (value.Length != 12) + { + throw new CryptographicException("Key size is illegal"); + } + + key_ = (byte[])value.Clone(); + } + } + + /// + /// Generate a new random key. + /// + public override void GenerateKey() + { + key_ = new byte[12]; + using (var rng = new RNGCryptoServiceProvider()) + { + rng.GetBytes(key_); + } + } + + /// + /// Create an encryptor. + /// + /// The key to use for this encryptor. + /// Initialisation vector for the new encryptor. + /// Returns a new PkzipClassic encryptor + public override ICryptoTransform CreateEncryptor( + byte[] rgbKey, + byte[] rgbIV) + { + key_ = rgbKey; + return new PkzipClassicEncryptCryptoTransform(Key); + } + + /// + /// Create a decryptor. + /// + /// Keys to use for this new decryptor. + /// Initialisation vector for the new decryptor. + /// Returns a new decryptor. + public override ICryptoTransform CreateDecryptor( + byte[] rgbKey, + byte[] rgbIV) + { + key_ = rgbKey; + return new PkzipClassicDecryptCryptoTransform(Key); + } + + #region Instance Fields + + private byte[] key_; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs.meta new file mode 100644 index 0000000..2369c8b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 756dfcf739c6b4a8c8ecb683b5738741 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs new file mode 100644 index 0000000..80ce0b4 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs @@ -0,0 +1,230 @@ +using System; +using System.IO; +using System.Security.Cryptography; +using System.Threading; +using System.Threading.Tasks; +using ICSharpCode.SharpZipLib.Core; +using ICSharpCode.SharpZipLib.Zip; + +namespace ICSharpCode.SharpZipLib.Encryption +{ + /// + /// Encrypts and decrypts AES ZIP + /// + /// + /// Based on information from http://www.winzip.com/aes_info.htm + /// and http://www.gladman.me.uk/cryptography_technology/fileencrypt/ + /// + internal class ZipAESStream : CryptoStream + { + /// + /// Constructor + /// + /// The stream on which to perform the cryptographic transformation. + /// Instance of ZipAESTransform + /// Read or Write + public ZipAESStream(Stream stream, ZipAESTransform transform, CryptoStreamMode mode) + : base(stream, transform, mode) + { + _stream = stream; + _transform = transform; + _slideBuffer = new byte[1024]; + + // mode: + // CryptoStreamMode.Read means we read from "stream" and pass decrypted to our Read() method. + // Write bypasses this stream and uses the Transform directly. + if (mode != CryptoStreamMode.Read) + { + throw new Exception("ZipAESStream only for read"); + } + } + + // The final n bytes of the AES stream contain the Auth Code. + private const int AUTH_CODE_LENGTH = 10; + + // Blocksize is always 16 here, even for AES-256 which has transform.InputBlockSize of 32. + private const int CRYPTO_BLOCK_SIZE = 16; + + // total length of block + auth code + private const int BLOCK_AND_AUTH = CRYPTO_BLOCK_SIZE + AUTH_CODE_LENGTH; + + private Stream _stream; + private ZipAESTransform _transform; + private byte[] _slideBuffer; + private int _slideBufStartPos; + private int _slideBufFreePos; + + // Buffer block transforms to enable partial reads + private byte[] _transformBuffer = null;// new byte[CRYPTO_BLOCK_SIZE]; + private int _transformBufferFreePos; + private int _transformBufferStartPos; + + // Do we have some buffered data available? + private bool HasBufferedData =>_transformBuffer != null && _transformBufferStartPos < _transformBufferFreePos; + + /// + /// Reads a sequence of bytes from the current CryptoStream into buffer, + /// and advances the position within the stream by the number of bytes read. + /// + public override int Read(byte[] buffer, int offset, int count) + { + // Nothing to do + if (count == 0) + return 0; + + // If we have buffered data, read that first + int nBytes = 0; + if (HasBufferedData) + { + nBytes = ReadBufferedData(buffer, offset, count); + + // Read all requested data from the buffer + if (nBytes == count) + return nBytes; + + offset += nBytes; + count -= nBytes; + } + + // Read more data from the input, if available + if (_slideBuffer != null) + nBytes += ReadAndTransform(buffer, offset, count); + + return nBytes; + } + + /// + public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) + { + var readCount = Read(buffer, offset, count); + return Task.FromResult(readCount); + } + + // Read data from the underlying stream and decrypt it + private int ReadAndTransform(byte[] buffer, int offset, int count) + { + int nBytes = 0; + while (nBytes < count) + { + int bytesLeftToRead = count - nBytes; + + // Calculate buffer quantities vs read-ahead size, and check for sufficient free space + int byteCount = _slideBufFreePos - _slideBufStartPos; + + // Need to handle final block and Auth Code specially, but don't know total data length. + // Maintain a read-ahead equal to the length of (crypto block + Auth Code). + // When that runs out we can detect these final sections. + int lengthToRead = BLOCK_AND_AUTH - byteCount; + if (_slideBuffer.Length - _slideBufFreePos < lengthToRead) + { + // Shift the data to the beginning of the buffer + int iTo = 0; + for (int iFrom = _slideBufStartPos; iFrom < _slideBufFreePos; iFrom++, iTo++) + { + _slideBuffer[iTo] = _slideBuffer[iFrom]; + } + _slideBufFreePos -= _slideBufStartPos; // Note the -= + _slideBufStartPos = 0; + } + int obtained = StreamUtils.ReadRequestedBytes(_stream, _slideBuffer, _slideBufFreePos, lengthToRead); + _slideBufFreePos += obtained; + + // Recalculate how much data we now have + byteCount = _slideBufFreePos - _slideBufStartPos; + if (byteCount >= BLOCK_AND_AUTH) + { + var read = TransformAndBufferBlock(buffer, offset, bytesLeftToRead, CRYPTO_BLOCK_SIZE); + nBytes += read; + offset += read; + } + else + { + // Last round. + if (byteCount > AUTH_CODE_LENGTH) + { + // At least one byte of data plus auth code + int finalBlock = byteCount - AUTH_CODE_LENGTH; + nBytes += TransformAndBufferBlock(buffer, offset, bytesLeftToRead, finalBlock); + } + else if (byteCount < AUTH_CODE_LENGTH) + throw new ZipException("Internal error missed auth code"); // Coding bug + // Final block done. Check Auth code. + byte[] calcAuthCode = _transform.GetAuthCode(); + for (int i = 0; i < AUTH_CODE_LENGTH; i++) + { + if (calcAuthCode[i] != _slideBuffer[_slideBufStartPos + i]) + { + throw new ZipException("AES Authentication Code does not match. This is a super-CRC check on the data in the file after compression and encryption. \r\n" + + "The file may be damaged."); + } + } + + // don't need this any more, so use it as a 'complete' flag + _slideBuffer = null; + + break; // Reached the auth code + } + } + return nBytes; + } + + // read some buffered data + private int ReadBufferedData(byte[] buffer, int offset, int count) + { + int copyCount = Math.Min(count, _transformBufferFreePos - _transformBufferStartPos); + + Array.Copy(_transformBuffer, _transformBufferStartPos, buffer, offset, copyCount); + _transformBufferStartPos += copyCount; + + return copyCount; + } + + // Perform the crypto transform, and buffer the data if less than one block has been requested. + private int TransformAndBufferBlock(byte[] buffer, int offset, int count, int blockSize) + { + // If the requested data is greater than one block, transform it directly into the output + // If it's smaller, do it into a temporary buffer and copy the requested part + bool bufferRequired = (blockSize > count); + + if (bufferRequired && _transformBuffer == null) + _transformBuffer = new byte[CRYPTO_BLOCK_SIZE]; + + var targetBuffer = bufferRequired ? _transformBuffer : buffer; + var targetOffset = bufferRequired ? 0 : offset; + + // Transform the data + _transform.TransformBlock(_slideBuffer, + _slideBufStartPos, + blockSize, + targetBuffer, + targetOffset); + + _slideBufStartPos += blockSize; + + if (!bufferRequired) + { + return blockSize; + } + else + { + Array.Copy(_transformBuffer, 0, buffer, offset, count); + _transformBufferStartPos = count; + _transformBufferFreePos = blockSize; + + return count; + } + } + + /// + /// Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + /// + /// An array of bytes. This method copies count bytes from buffer to the current stream. + /// The byte offset in buffer at which to begin copying bytes to the current stream. + /// The number of bytes to be written to the current stream. + public override void Write(byte[] buffer, int offset, int count) + { + // ZipAESStream is used for reading but not for writing. Writing uses the ZipAESTransform directly. + throw new NotImplementedException(); + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs.meta new file mode 100644 index 0000000..24d49c3 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7065cd78f23e44512a6fca0679ec5bb3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs new file mode 100644 index 0000000..5aced2d --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs @@ -0,0 +1,224 @@ +using System; +using System.Security.Cryptography; +using ICSharpCode.SharpZipLib.Core; + +namespace ICSharpCode.SharpZipLib.Encryption +{ + /// + /// Transforms stream using AES in CTR mode + /// + internal class ZipAESTransform : ICryptoTransform + { +#if NET45 + class IncrementalHash : HMACSHA1 + { + bool _finalised; + public IncrementalHash(byte[] key) : base(key) { } + public static IncrementalHash CreateHMAC(string n, byte[] key) => new IncrementalHash(key); + public void AppendData(byte[] buffer, int offset, int count) => TransformBlock(buffer, offset, count, buffer, offset); + public byte[] GetHashAndReset() + { + if (!_finalised) + { + byte[] dummy = new byte[0]; + TransformFinalBlock(dummy, 0, 0); + _finalised = true; + } + return Hash; + } + } + + static class HashAlgorithmName + { + public static string SHA1 = null; + } +#endif + + private const int PWD_VER_LENGTH = 2; + + // WinZip use iteration count of 1000 for PBKDF2 key generation + private const int KEY_ROUNDS = 1000; + + // For 128-bit AES (16 bytes) the encryption is implemented as expected. + // For 256-bit AES (32 bytes) WinZip do full 256 bit AES of the nonce to create the encryption + // block but use only the first 16 bytes of it, and discard the second half. + private const int ENCRYPT_BLOCK = 16; + + private int _blockSize; + private readonly ICryptoTransform _encryptor; + private readonly byte[] _counterNonce; + private byte[] _encryptBuffer; + private int _encrPos; + private byte[] _pwdVerifier; + private IncrementalHash _hmacsha1; + private byte[] _authCode = null; + + private bool _writeMode; + + /// + /// Constructor. + /// + /// Password string + /// Random bytes, length depends on encryption strength. + /// 128 bits = 8 bytes, 192 bits = 12 bytes, 256 bits = 16 bytes. + /// The encryption strength, in bytes eg 16 for 128 bits. + /// True when creating a zip, false when reading. For the AuthCode. + /// + public ZipAESTransform(string key, byte[] saltBytes, int blockSize, bool writeMode) + { + if (blockSize != 16 && blockSize != 32) // 24 valid for AES but not supported by Winzip + throw new Exception("Invalid blocksize " + blockSize + ". Must be 16 or 32."); + if (saltBytes.Length != blockSize / 2) + throw new Exception("Invalid salt len. Must be " + blockSize / 2 + " for blocksize " + blockSize); + // initialise the encryption buffer and buffer pos + _blockSize = blockSize; + _encryptBuffer = new byte[_blockSize]; + _encrPos = ENCRYPT_BLOCK; + + // Performs the equivalent of derive_key in Dr Brian Gladman's pwd2key.c + var pdb = new Rfc2898DeriveBytes(key, saltBytes, KEY_ROUNDS); + var rm = Aes.Create(); + rm.Mode = CipherMode.ECB; // No feedback from cipher for CTR mode + _counterNonce = new byte[_blockSize]; + byte[] key1bytes = pdb.GetBytes(_blockSize); + byte[] key2bytes = pdb.GetBytes(_blockSize); + + // Use empty IV for AES + _encryptor = rm.CreateEncryptor(key1bytes, new byte[16]); + _pwdVerifier = pdb.GetBytes(PWD_VER_LENGTH); + // + _hmacsha1 = IncrementalHash.CreateHMAC(HashAlgorithmName.SHA1, key2bytes); + _writeMode = writeMode; + } + + /// + /// Implement the ICryptoTransform method. + /// + public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) + { + // Pass the data stream to the hash algorithm for generating the Auth Code. + // This does not change the inputBuffer. Do this before decryption for read mode. + if (!_writeMode) + { + _hmacsha1.AppendData(inputBuffer, inputOffset, inputCount); + } + // Encrypt with AES in CTR mode. Regards to Dr Brian Gladman for this. + int ix = 0; + while (ix < inputCount) + { + if (_encrPos == ENCRYPT_BLOCK) + { + /* increment encryption nonce */ + int j = 0; + while (++_counterNonce[j] == 0) + { + ++j; + } + /* encrypt the nonce to form next xor buffer */ + _encryptor.TransformBlock(_counterNonce, 0, _blockSize, _encryptBuffer, 0); + _encrPos = 0; + } + outputBuffer[ix + outputOffset] = (byte)(inputBuffer[ix + inputOffset] ^ _encryptBuffer[_encrPos++]); + // + ix++; + } + if (_writeMode) + { + // This does not change the buffer. + _hmacsha1.AppendData(outputBuffer, outputOffset, inputCount); + } + return inputCount; + } + + /// + /// Returns the 2 byte password verifier + /// + public byte[] PwdVerifier + { + get + { + return _pwdVerifier; + } + } + + /// + /// Returns the 10 byte AUTH CODE to be checked or appended immediately following the AES data stream. + /// + public byte[] GetAuthCode() + { + if (_authCode == null) + { + _authCode = _hmacsha1.GetHashAndReset(); + } + return _authCode; + } + + #region ICryptoTransform Members + + /// + /// Not implemented. + /// + public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) + { + if(inputCount > 0) + { + throw new NotImplementedException("TransformFinalBlock is not implemented and inputCount is greater than 0"); + } + return Empty.Array(); + } + + /// + /// Gets the size of the input data blocks in bytes. + /// + public int InputBlockSize + { + get + { + return _blockSize; + } + } + + /// + /// Gets the size of the output data blocks in bytes. + /// + public int OutputBlockSize + { + get + { + return _blockSize; + } + } + + /// + /// Gets a value indicating whether multiple blocks can be transformed. + /// + public bool CanTransformMultipleBlocks + { + get + { + return true; + } + } + + /// + /// Gets a value indicating whether the current transform can be reused. + /// + public bool CanReuseTransform + { + get + { + return true; + } + } + + /// + /// Cleanup internal state. + /// + public void Dispose() + { + _encryptor.Dispose(); + } + + #endregion ICryptoTransform Members + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs.meta new file mode 100644 index 0000000..acf1c1c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d7463eb45cc4a4eaba4e4b18350a8114 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip.meta new file mode 100644 index 0000000..cee18f8 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b7c04fa31052444a081e91cdbc3faff7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZip.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZip.cs new file mode 100644 index 0000000..e7e4763 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZip.cs @@ -0,0 +1,92 @@ +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.GZip +{ + using static Zip.Compression.Deflater; + + /// + /// An example class to demonstrate compression and decompression of GZip streams. + /// + public static class GZip + { + /// + /// Decompress the input writing + /// uncompressed data to the output stream + /// + /// The readable stream containing data to decompress. + /// The output stream to receive the decompressed data. + /// Both streams are closed on completion if true. + /// Input or output stream is null + public static void Decompress(Stream inStream, Stream outStream, bool isStreamOwner) + { + if (inStream == null) + throw new ArgumentNullException(nameof(inStream), "Input stream is null"); + + if (outStream == null) + throw new ArgumentNullException(nameof(outStream), "Output stream is null"); + + try + { + using (GZipInputStream gzipInput = new GZipInputStream(inStream)) + { + gzipInput.IsStreamOwner = isStreamOwner; + Core.StreamUtils.Copy(gzipInput, outStream, new byte[4096]); + } + } + finally + { + if (isStreamOwner) + { + // inStream is closed by the GZipInputStream if stream owner + outStream.Dispose(); + } + } + } + + /// + /// Compress the input stream sending + /// result data to output stream + /// + /// The readable stream to compress. + /// The output stream to receive the compressed data. + /// Both streams are closed on completion if true. + /// Deflate buffer size, minimum 512 + /// Deflate compression level, 0-9 + /// Input or output stream is null + /// Buffer Size is smaller than 512 + /// Compression level outside 0-9 + public static void Compress(Stream inStream, Stream outStream, bool isStreamOwner, int bufferSize = 512, int level = 6) + { + if (inStream == null) + throw new ArgumentNullException(nameof(inStream), "Input stream is null"); + + if (outStream == null) + throw new ArgumentNullException(nameof(outStream), "Output stream is null"); + + if (bufferSize < 512) + throw new ArgumentOutOfRangeException(nameof(bufferSize), "Deflate buffer size must be >= 512"); + + if (level < NO_COMPRESSION || level > BEST_COMPRESSION) + throw new ArgumentOutOfRangeException(nameof(level), "Compression level must be 0-9"); + + try + { + using (GZipOutputStream gzipOutput = new GZipOutputStream(outStream, bufferSize)) + { + gzipOutput.SetLevel(level); + gzipOutput.IsStreamOwner = isStreamOwner; + Core.StreamUtils.Copy(inStream, gzipOutput, new byte[bufferSize]); + } + } + finally + { + if (isStreamOwner) + { + // outStream is closed by the GZipOutputStream if stream owner + inStream.Dispose(); + } + } + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZip.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZip.cs.meta new file mode 100644 index 0000000..100ed12 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZip.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e4487cf35f59c4b1990290d2e4da3d94 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs new file mode 100644 index 0000000..a597992 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs @@ -0,0 +1,78 @@ +using System; +using System.Text; + +namespace ICSharpCode.SharpZipLib.GZip +{ + /// + /// This class contains constants used for gzip. + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "kept for backwards compatibility")] + sealed public class GZipConstants + { + /// + /// First GZip identification byte + /// + public const byte ID1 = 0x1F; + + /// + /// Second GZip identification byte + /// + public const byte ID2 = 0x8B; + + /// + /// Deflate compression method + /// + public const byte CompressionMethodDeflate = 0x8; + + /// + /// Get the GZip specified encoding (CP-1252 if supported, otherwise ASCII) + /// + public static Encoding Encoding + { + get + { + try + { + return Encoding.GetEncoding(1252); + } + catch + { + return Encoding.ASCII; + } + } + } + + } + + /// + /// GZip header flags + /// + [Flags] + public enum GZipFlags: byte + { + /// + /// Text flag hinting that the file is in ASCII + /// + FTEXT = 0x1 << 0, + + /// + /// CRC flag indicating that a CRC16 preceeds the data + /// + FHCRC = 0x1 << 1, + + /// + /// Extra flag indicating that extra fields are present + /// + FEXTRA = 0x1 << 2, + + /// + /// Filename flag indicating that the original filename is present + /// + FNAME = 0x1 << 3, + + /// + /// Flag bit mask indicating that a comment is present + /// + FCOMMENT = 0x1 << 4, + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs.meta new file mode 100644 index 0000000..5ff184d --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 653244196683c4bb9a9a8aed10647612 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipException.cs new file mode 100644 index 0000000..a0ec6bb --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipException.cs @@ -0,0 +1,54 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib.GZip +{ + /// + /// GZipException represents exceptions specific to GZip classes and code. + /// + [Serializable] + public class GZipException : SharpZipBaseException + { + /// + /// Initialise a new instance of . + /// + public GZipException() + { + } + + /// + /// Initialise a new instance of with its message string. + /// + /// A that describes the error. + public GZipException(string message) + : base(message) + { + } + + /// + /// Initialise a new instance of . + /// + /// A that describes the error. + /// The that caused this exception. + public GZipException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the GZipException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected GZipException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipException.cs.meta new file mode 100644 index 0000000..3623cc0 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GZipException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8766b57acf92843d792c17fe86eba74e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs new file mode 100644 index 0000000..1558ba6 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs @@ -0,0 +1,360 @@ +using ICSharpCode.SharpZipLib.Checksum; +using ICSharpCode.SharpZipLib.Zip.Compression; +using ICSharpCode.SharpZipLib.Zip.Compression.Streams; +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.GZip +{ + /// + /// This filter stream is used to decompress a "GZIP" format stream. + /// The "GZIP" format is described baseInputStream RFC 1952. + /// + /// author of the original java version : John Leuner + /// + /// This sample shows how to unzip a gzipped file + /// + /// using System; + /// using System.IO; + /// + /// using ICSharpCode.SharpZipLib.Core; + /// using ICSharpCode.SharpZipLib.GZip; + /// + /// class MainClass + /// { + /// public static void Main(string[] args) + /// { + /// using (Stream inStream = new GZipInputStream(File.OpenRead(args[0]))) + /// using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(args[0]))) { + /// byte[] buffer = new byte[4096]; + /// StreamUtils.Copy(inStream, outStream, buffer); + /// } + /// } + /// } + /// + /// + public class GZipInputStream : InflaterInputStream + { + #region Instance Fields + + /// + /// CRC-32 value for uncompressed data + /// + protected Crc32 crc; + + /// + /// Flag to indicate if we've read the GZIP header yet for the current member (block of compressed data). + /// This is tracked per-block as the file is parsed. + /// + private bool readGZIPHeader; + + /// + /// Flag to indicate if at least one block in a stream with concatenated blocks was read successfully. + /// This allows us to exit gracefully if downstream data is not in gzip format. + /// + private bool completedLastBlock; + + private string fileName; + + #endregion Instance Fields + + #region Constructors + + /// + /// Creates a GZipInputStream with the default buffer size + /// + /// + /// The stream to read compressed data from (baseInputStream GZIP format) + /// + public GZipInputStream(Stream baseInputStream) + : this(baseInputStream, 4096) + { + } + + /// + /// Creates a GZIPInputStream with the specified buffer size + /// + /// + /// The stream to read compressed data from (baseInputStream GZIP format) + /// + /// + /// Size of the buffer to use + /// + public GZipInputStream(Stream baseInputStream, int size) + : base(baseInputStream, new Inflater(true), size) + { + } + + #endregion Constructors + + #region Stream overrides + + /// + /// Reads uncompressed data into an array of bytes + /// + /// + /// The buffer to read uncompressed data into + /// + /// + /// The offset indicating where the data should be placed + /// + /// + /// The number of uncompressed bytes to be read + /// + /// Returns the number of bytes actually read. + public override int Read(byte[] buffer, int offset, int count) + { + // A GZIP file can contain multiple blocks of compressed data, although this is quite rare. + // A compressed block could potentially be empty, so we need to loop until we reach EOF or + // we find data. + while (true) + { + // If we haven't read the header for this block, read it + if (!readGZIPHeader) + { + // Try to read header. If there is no header (0 bytes available), this is EOF. If there is + // an incomplete header, this will throw an exception. + try + { + if (!ReadHeader()) + { + return 0; + } + } + catch (Exception ex) when (completedLastBlock && (ex is GZipException || ex is EndOfStreamException)) + { + // if we completed the last block (i.e. we're in a stream that has multiple blocks concatenated + // we want to return gracefully from any header parsing exceptions since sometimes there may + // be trailing garbage on a stream + return 0; + } + } + + // Try to read compressed data + int bytesRead = base.Read(buffer, offset, count); + if (bytesRead > 0) + { + crc.Update(new ArraySegment(buffer, offset, bytesRead)); + } + + // If this is the end of stream, read the footer + if (inf.IsFinished) + { + ReadFooter(); + } + + // Attempting to read 0 bytes will never yield any bytesRead, so we return instead of looping forever + if (bytesRead > 0 || count == 0) + { + return bytesRead; + } + } + } + + /// + /// Retrieves the filename header field for the block last read + /// + /// + public string GetFilename() + { + return fileName; + } + + #endregion Stream overrides + + #region Support routines + + private bool ReadHeader() + { + // Initialize CRC for this block + crc = new Crc32(); + + // Make sure there is data in file. We can't rely on ReadLeByte() to fill the buffer, as this could be EOF, + // which is fine, but ReadLeByte() throws an exception if it doesn't find data, so we do this part ourselves. + if (inputBuffer.Available <= 0) + { + inputBuffer.Fill(); + if (inputBuffer.Available <= 0) + { + // No header, EOF. + return false; + } + } + + var headCRC = new Crc32(); + + // 1. Check the two magic bytes + + var magic = inputBuffer.ReadLeByte(); + headCRC.Update(magic); + if (magic != GZipConstants.ID1) + { + throw new GZipException("Error GZIP header, first magic byte doesn't match"); + } + + magic = inputBuffer.ReadLeByte(); + if (magic != GZipConstants.ID2) + { + throw new GZipException("Error GZIP header, second magic byte doesn't match"); + } + headCRC.Update(magic); + + // 2. Check the compression type (must be 8) + var compressionType = inputBuffer.ReadLeByte(); + + if (compressionType != GZipConstants.CompressionMethodDeflate) + { + throw new GZipException("Error GZIP header, data not in deflate format"); + } + headCRC.Update(compressionType); + + // 3. Check the flags + var flagsByte = inputBuffer.ReadLeByte(); + + headCRC.Update(flagsByte); + + // 3.1 Check the reserved bits are zero + + if ((flagsByte & 0xE0) != 0) + { + throw new GZipException("Reserved flag bits in GZIP header != 0"); + } + + var flags = (GZipFlags)flagsByte; + + // 4.-6. Skip the modification time, extra flags, and OS type + for (int i = 0; i < 6; i++) + { + headCRC.Update(inputBuffer.ReadLeByte()); + } + + // 7. Read extra field + if (flags.HasFlag(GZipFlags.FEXTRA)) + { + // XLEN is total length of extra subfields, we will skip them all + var len1 = inputBuffer.ReadLeByte(); + var len2 = inputBuffer.ReadLeByte(); + + headCRC.Update(len1); + headCRC.Update(len2); + + int extraLen = (len2 << 8) | len1; // gzip is LSB first + for (int i = 0; i < extraLen; i++) + { + headCRC.Update(inputBuffer.ReadLeByte()); + } + } + + // 8. Read file name + if (flags.HasFlag(GZipFlags.FNAME)) + { + var fname = new byte[1024]; + var fnamePos = 0; + int readByte; + while ((readByte = inputBuffer.ReadLeByte()) > 0) + { + if (fnamePos < 1024) + { + fname[fnamePos++] = (byte)readByte; + } + headCRC.Update(readByte); + } + + headCRC.Update(readByte); + + fileName = GZipConstants.Encoding.GetString(fname, 0, fnamePos); + } + else + { + fileName = null; + } + + // 9. Read comment + if (flags.HasFlag(GZipFlags.FCOMMENT)) + { + int readByte; + while ((readByte = inputBuffer.ReadLeByte()) > 0) + { + headCRC.Update(readByte); + } + + headCRC.Update(readByte); + } + + // 10. Read header CRC + if (flags.HasFlag(GZipFlags.FHCRC)) + { + int tempByte; + int crcval = inputBuffer.ReadLeByte(); + if (crcval < 0) + { + throw new EndOfStreamException("EOS reading GZIP header"); + } + + tempByte = inputBuffer.ReadLeByte(); + if (tempByte < 0) + { + throw new EndOfStreamException("EOS reading GZIP header"); + } + + crcval = (crcval << 8) | tempByte; + if (crcval != ((int)headCRC.Value & 0xffff)) + { + throw new GZipException("Header CRC value mismatch"); + } + } + + readGZIPHeader = true; + return true; + } + + private void ReadFooter() + { + byte[] footer = new byte[8]; + + // End of stream; reclaim all bytes from inf, read the final byte count, and reset the inflator + long bytesRead = inf.TotalOut & 0xffffffff; + inputBuffer.Available += inf.RemainingInput; + inf.Reset(); + + // Read footer from inputBuffer + int needed = 8; + while (needed > 0) + { + int count = inputBuffer.ReadClearTextBuffer(footer, 8 - needed, needed); + if (count <= 0) + { + throw new EndOfStreamException("EOS reading GZIP footer"); + } + needed -= count; // Jewel Jan 16 + } + + // Calculate CRC + int crcval = (footer[0] & 0xff) | ((footer[1] & 0xff) << 8) | ((footer[2] & 0xff) << 16) | (footer[3] << 24); + if (crcval != (int)crc.Value) + { + throw new GZipException("GZIP crc sum mismatch, theirs \"" + crcval + "\" and ours \"" + (int)crc.Value); + } + + // NOTE The total here is the original total modulo 2 ^ 32. + uint total = + (uint)((uint)footer[4] & 0xff) | + (uint)(((uint)footer[5] & 0xff) << 8) | + (uint)(((uint)footer[6] & 0xff) << 16) | + (uint)((uint)footer[7] << 24); + + if (bytesRead != total) + { + throw new GZipException("Number of bytes mismatch in footer"); + } + + // Mark header read as false so if another header exists, we'll continue reading through the file + readGZIPHeader = false; + + // Indicate that we succeeded on at least one block so we can exit gracefully if there is trailing garbage downstream + completedLastBlock = true; + } + + #endregion Support routines + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs.meta new file mode 100644 index 0000000..f1fd4b6 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d24053f0f2de14e66baa752f556b41e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs new file mode 100644 index 0000000..cdc11cf --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs @@ -0,0 +1,292 @@ +using ICSharpCode.SharpZipLib.Checksum; +using ICSharpCode.SharpZipLib.Zip.Compression; +using ICSharpCode.SharpZipLib.Zip.Compression.Streams; +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.GZip +{ + /// + /// This filter stream is used to compress a stream into a "GZIP" stream. + /// The "GZIP" format is described in RFC 1952. + /// + /// author of the original java version : John Leuner + /// + /// This sample shows how to gzip a file + /// + /// using System; + /// using System.IO; + /// + /// using ICSharpCode.SharpZipLib.GZip; + /// using ICSharpCode.SharpZipLib.Core; + /// + /// class MainClass + /// { + /// public static void Main(string[] args) + /// { + /// using (Stream s = new GZipOutputStream(File.Create(args[0] + ".gz"))) + /// using (FileStream fs = File.OpenRead(args[0])) { + /// byte[] writeData = new byte[4096]; + /// Streamutils.Copy(s, fs, writeData); + /// } + /// } + /// } + /// } + /// + /// + public class GZipOutputStream : DeflaterOutputStream + { + private enum OutputState + { + Header, + Footer, + Finished, + Closed, + }; + + #region Instance Fields + + /// + /// CRC-32 value for uncompressed data + /// + protected Crc32 crc = new Crc32(); + + private OutputState state_ = OutputState.Header; + + private string fileName; + + private GZipFlags flags = 0; + + #endregion Instance Fields + + #region Constructors + + /// + /// Creates a GzipOutputStream with the default buffer size + /// + /// + /// The stream to read data (to be compressed) from + /// + public GZipOutputStream(Stream baseOutputStream) + : this(baseOutputStream, 4096) + { + } + + /// + /// Creates a GZipOutputStream with the specified buffer size + /// + /// + /// The stream to read data (to be compressed) from + /// + /// + /// Size of the buffer to use + /// + public GZipOutputStream(Stream baseOutputStream, int size) : base(baseOutputStream, new Deflater(Deflater.DEFAULT_COMPRESSION, true), size) + { + } + + #endregion Constructors + + #region Public API + + /// + /// Sets the active compression level (0-9). The new level will be activated + /// immediately. + /// + /// The compression level to set. + /// + /// Level specified is not supported. + /// + /// + public void SetLevel(int level) + { + if (level < Deflater.NO_COMPRESSION || level > Deflater.BEST_COMPRESSION) + throw new ArgumentOutOfRangeException(nameof(level), "Compression level must be 0-9"); + + deflater_.SetLevel(level); + } + + /// + /// Get the current compression level. + /// + /// The current compression level. + public int GetLevel() + { + return deflater_.GetLevel(); + } + + /// + /// Original filename + /// + public string FileName + { + get => fileName; + set + { + fileName = CleanFilename(value); + if (string.IsNullOrEmpty(fileName)) + { + flags &= ~GZipFlags.FNAME; + } + else + { + flags |= GZipFlags.FNAME; + } + } + } + + #endregion Public API + + #region Stream overrides + + /// + /// Write given buffer to output updating crc + /// + /// Buffer to write + /// Offset of first byte in buf to write + /// Number of bytes to write + public override void Write(byte[] buffer, int offset, int count) + { + if (state_ == OutputState.Header) + { + WriteHeader(); + } + + if (state_ != OutputState.Footer) + { + throw new InvalidOperationException("Write not permitted in current state"); + } + + crc.Update(new ArraySegment(buffer, offset, count)); + base.Write(buffer, offset, count); + } + + /// + /// Writes remaining compressed output data to the output stream + /// and closes it. + /// + protected override void Dispose(bool disposing) + { + try + { + Finish(); + } + finally + { + if (state_ != OutputState.Closed) + { + state_ = OutputState.Closed; + if (IsStreamOwner) + { + baseOutputStream_.Dispose(); + } + } + } + } + + /// + /// Flushes the stream by ensuring the header is written, and then calling Flush + /// on the deflater. + /// + public override void Flush() + { + if (state_ == OutputState.Header) + { + WriteHeader(); + } + + base.Flush(); + } + + #endregion Stream overrides + + #region DeflaterOutputStream overrides + + /// + /// Finish compression and write any footer information required to stream + /// + public override void Finish() + { + // If no data has been written a header should be added. + if (state_ == OutputState.Header) + { + WriteHeader(); + } + + if (state_ == OutputState.Footer) + { + state_ = OutputState.Finished; + base.Finish(); + + var totalin = (uint)(deflater_.TotalIn & 0xffffffff); + var crcval = (uint)(crc.Value & 0xffffffff); + + byte[] gzipFooter; + + unchecked + { + gzipFooter = new byte[] { + (byte) crcval, (byte) (crcval >> 8), + (byte) (crcval >> 16), (byte) (crcval >> 24), + + (byte) totalin, (byte) (totalin >> 8), + (byte) (totalin >> 16), (byte) (totalin >> 24) + }; + } + + baseOutputStream_.Write(gzipFooter, 0, gzipFooter.Length); + } + } + + #endregion DeflaterOutputStream overrides + + #region Support Routines + + private static string CleanFilename(string path) + => path.Substring(path.LastIndexOf('/') + 1); + + private void WriteHeader() + { + if (state_ == OutputState.Header) + { + state_ = OutputState.Footer; + + var mod_time = (int)((DateTime.Now.Ticks - new DateTime(1970, 1, 1).Ticks) / 10000000L); // Ticks give back 100ns intervals + byte[] gzipHeader = { + // The two magic bytes + GZipConstants.ID1, + GZipConstants.ID2, + + // The compression type + GZipConstants.CompressionMethodDeflate, + + // The flags (not set) + (byte)flags, + + // The modification time + (byte) mod_time, (byte) (mod_time >> 8), + (byte) (mod_time >> 16), (byte) (mod_time >> 24), + + // The extra flags + 0, + + // The OS type (unknown) + 255 + }; + + baseOutputStream_.Write(gzipHeader, 0, gzipHeader.Length); + + if (flags.HasFlag(GZipFlags.FNAME)) + { + var fname = GZipConstants.Encoding.GetBytes(fileName); + baseOutputStream_.Write(fname, 0, fname.Length); + + // End filename string with a \0 + baseOutputStream_.Write(new byte[] { 0 }, 0, 1); + } + } + } + + #endregion Support Routines + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs.meta new file mode 100644 index 0000000..b475dfa --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0754e15b0898b4467b0c7c9fa6b873ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw.meta new file mode 100644 index 0000000..8cd92e8 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6048996f1d52742ac98abafed6571d8b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs new file mode 100644 index 0000000..8893483 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs @@ -0,0 +1,63 @@ +namespace ICSharpCode.SharpZipLib.Lzw +{ + /// + /// This class contains constants used for LZW + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "kept for backwards compatibility")] + sealed public class LzwConstants + { + /// + /// Magic number found at start of LZW header: 0x1f 0x9d + /// + public const int MAGIC = 0x1f9d; + + /// + /// Maximum number of bits per code + /// + public const int MAX_BITS = 16; + + /* 3rd header byte: + * bit 0..4 Number of compression bits + * bit 5 Extended header + * bit 6 Free + * bit 7 Block mode + */ + + /// + /// Mask for 'number of compression bits' + /// + public const int BIT_MASK = 0x1f; + + /// + /// Indicates the presence of a fourth header byte + /// + public const int EXTENDED_MASK = 0x20; + + //public const int FREE_MASK = 0x40; + + /// + /// Reserved bits + /// + public const int RESERVED_MASK = 0x60; + + /// + /// Block compression: if table is full and compression rate is dropping, + /// clear the dictionary. + /// + public const int BLOCK_MODE_MASK = 0x80; + + /// + /// LZW file header size (in bytes) + /// + public const int HDR_SIZE = 3; + + /// + /// Initial number of bits per code + /// + public const int INIT_BITS = 9; + + private LzwConstants() + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs.meta new file mode 100644 index 0000000..45b075b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8a910251cb96c4cd191f8b5f890d594a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwException.cs new file mode 100644 index 0000000..1d5c44c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwException.cs @@ -0,0 +1,54 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib.Lzw +{ + /// + /// LzwException represents exceptions specific to LZW classes and code. + /// + [Serializable] + public class LzwException : SharpZipBaseException + { + /// + /// Initialise a new instance of . + /// + public LzwException() + { + } + + /// + /// Initialise a new instance of with its message string. + /// + /// A that describes the error. + public LzwException(string message) + : base(message) + { + } + + /// + /// Initialise a new instance of . + /// + /// A that describes the error. + /// The that caused this exception. + public LzwException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the LzwException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected LzwException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwException.cs.meta new file mode 100644 index 0000000..6e30b40 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 588d8d92700ca44729110183e486a561 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs new file mode 100644 index 0000000..1045ef7 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs @@ -0,0 +1,572 @@ +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.Lzw +{ + /// + /// This filter stream is used to decompress a LZW format stream. + /// Specifically, a stream that uses the LZC compression method. + /// This file format is usually associated with the .Z file extension. + /// + /// See http://en.wikipedia.org/wiki/Compress + /// See http://wiki.wxwidgets.org/Development:_Z_File_Format + /// + /// The file header consists of 3 (or optionally 4) bytes. The first two bytes + /// contain the magic marker "0x1f 0x9d", followed by a byte of flags. + /// + /// Based on Java code by Ronald Tschalar, which in turn was based on the unlzw.c + /// code in the gzip package. + /// + /// This sample shows how to unzip a compressed file + /// + /// using System; + /// using System.IO; + /// + /// using ICSharpCode.SharpZipLib.Core; + /// using ICSharpCode.SharpZipLib.LZW; + /// + /// class MainClass + /// { + /// public static void Main(string[] args) + /// { + /// using (Stream inStream = new LzwInputStream(File.OpenRead(args[0]))) + /// using (FileStream outStream = File.Create(Path.GetFileNameWithoutExtension(args[0]))) { + /// byte[] buffer = new byte[4096]; + /// StreamUtils.Copy(inStream, outStream, buffer); + /// // OR + /// inStream.Read(buffer, 0, buffer.Length); + /// // now do something with the buffer + /// } + /// } + /// } + /// + /// + public class LzwInputStream : Stream + { + /// + /// Gets or sets a flag indicating ownership of underlying stream. + /// When the flag is true will close the underlying stream also. + /// + /// The default value is true. + public bool IsStreamOwner { get; set; } = true; + + /// + /// Creates a LzwInputStream + /// + /// + /// The stream to read compressed data from (baseInputStream LZW format) + /// + public LzwInputStream(Stream baseInputStream) + { + this.baseInputStream = baseInputStream; + } + + /// + /// See + /// + /// + public override int ReadByte() + { + int b = Read(one, 0, 1); + if (b == 1) + return (one[0] & 0xff); + return -1; + } + + /// + /// Reads decompressed data into the provided buffer byte array + /// + /// + /// The array to read and decompress data into + /// + /// + /// The offset indicating where the data should be placed + /// + /// + /// The number of bytes to decompress + /// + /// The number of bytes read. Zero signals the end of stream + public override int Read(byte[] buffer, int offset, int count) + { + if (!headerParsed) + ParseHeader(); + + if (eof) + return 0; + + int start = offset; + + /* Using local copies of various variables speeds things up by as + * much as 30% in Java! Performance not tested in C#. + */ + int[] lTabPrefix = tabPrefix; + byte[] lTabSuffix = tabSuffix; + byte[] lStack = stack; + int lNBits = nBits; + int lMaxCode = maxCode; + int lMaxMaxCode = maxMaxCode; + int lBitMask = bitMask; + int lOldCode = oldCode; + byte lFinChar = finChar; + int lStackP = stackP; + int lFreeEnt = freeEnt; + byte[] lData = data; + int lBitPos = bitPos; + + // empty stack if stuff still left + int sSize = lStack.Length - lStackP; + if (sSize > 0) + { + int num = (sSize >= count) ? count : sSize; + Array.Copy(lStack, lStackP, buffer, offset, num); + offset += num; + count -= num; + lStackP += num; + } + + if (count == 0) + { + stackP = lStackP; + return offset - start; + } + + // loop, filling local buffer until enough data has been decompressed + MainLoop: + do + { + if (end < EXTRA) + { + Fill(); + } + + int bitIn = (got > 0) ? (end - end % lNBits) << 3 : + (end << 3) - (lNBits - 1); + + while (lBitPos < bitIn) + { + #region A + + // handle 1-byte reads correctly + if (count == 0) + { + nBits = lNBits; + maxCode = lMaxCode; + maxMaxCode = lMaxMaxCode; + bitMask = lBitMask; + oldCode = lOldCode; + finChar = lFinChar; + stackP = lStackP; + freeEnt = lFreeEnt; + bitPos = lBitPos; + + return offset - start; + } + + // check for code-width expansion + if (lFreeEnt > lMaxCode) + { + int nBytes = lNBits << 3; + lBitPos = (lBitPos - 1) + + nBytes - (lBitPos - 1 + nBytes) % nBytes; + + lNBits++; + lMaxCode = (lNBits == maxBits) ? lMaxMaxCode : + (1 << lNBits) - 1; + + lBitMask = (1 << lNBits) - 1; + lBitPos = ResetBuf(lBitPos); + goto MainLoop; + } + + #endregion A + + #region B + + // read next code + int pos = lBitPos >> 3; + int code = (((lData[pos] & 0xFF) | + ((lData[pos + 1] & 0xFF) << 8) | + ((lData[pos + 2] & 0xFF) << 16)) >> + (lBitPos & 0x7)) & lBitMask; + + lBitPos += lNBits; + + // handle first iteration + if (lOldCode == -1) + { + if (code >= 256) + throw new LzwException("corrupt input: " + code + " > 255"); + + lFinChar = (byte)(lOldCode = code); + buffer[offset++] = lFinChar; + count--; + continue; + } + + // handle CLEAR code + if (code == TBL_CLEAR && blockMode) + { + Array.Copy(zeros, 0, lTabPrefix, 0, zeros.Length); + lFreeEnt = TBL_FIRST - 1; + + int nBytes = lNBits << 3; + lBitPos = (lBitPos - 1) + nBytes - (lBitPos - 1 + nBytes) % nBytes; + lNBits = LzwConstants.INIT_BITS; + lMaxCode = (1 << lNBits) - 1; + lBitMask = lMaxCode; + + // Code tables reset + + lBitPos = ResetBuf(lBitPos); + goto MainLoop; + } + + #endregion B + + #region C + + // setup + int inCode = code; + lStackP = lStack.Length; + + // Handle KwK case + if (code >= lFreeEnt) + { + if (code > lFreeEnt) + { + throw new LzwException("corrupt input: code=" + code + + ", freeEnt=" + lFreeEnt); + } + + lStack[--lStackP] = lFinChar; + code = lOldCode; + } + + // Generate output characters in reverse order + while (code >= 256) + { + lStack[--lStackP] = lTabSuffix[code]; + code = lTabPrefix[code]; + } + + lFinChar = lTabSuffix[code]; + buffer[offset++] = lFinChar; + count--; + + // And put them out in forward order + sSize = lStack.Length - lStackP; + int num = (sSize >= count) ? count : sSize; + Array.Copy(lStack, lStackP, buffer, offset, num); + offset += num; + count -= num; + lStackP += num; + + #endregion C + + #region D + + // generate new entry in table + if (lFreeEnt < lMaxMaxCode) + { + lTabPrefix[lFreeEnt] = lOldCode; + lTabSuffix[lFreeEnt] = lFinChar; + lFreeEnt++; + } + + // Remember previous code + lOldCode = inCode; + + // if output buffer full, then return + if (count == 0) + { + nBits = lNBits; + maxCode = lMaxCode; + bitMask = lBitMask; + oldCode = lOldCode; + finChar = lFinChar; + stackP = lStackP; + freeEnt = lFreeEnt; + bitPos = lBitPos; + + return offset - start; + } + + #endregion D + } // while + + lBitPos = ResetBuf(lBitPos); + } while (got > 0); // do..while + + nBits = lNBits; + maxCode = lMaxCode; + bitMask = lBitMask; + oldCode = lOldCode; + finChar = lFinChar; + stackP = lStackP; + freeEnt = lFreeEnt; + bitPos = lBitPos; + + eof = true; + return offset - start; + } + + /// + /// Moves the unread data in the buffer to the beginning and resets + /// the pointers. + /// + /// + /// + private int ResetBuf(int bitPosition) + { + int pos = bitPosition >> 3; + Array.Copy(data, pos, data, 0, end - pos); + end -= pos; + return 0; + } + + private void Fill() + { + got = baseInputStream.Read(data, end, data.Length - 1 - end); + if (got > 0) + { + end += got; + } + } + + private void ParseHeader() + { + headerParsed = true; + + byte[] hdr = new byte[LzwConstants.HDR_SIZE]; + + int result = baseInputStream.Read(hdr, 0, hdr.Length); + + // Check the magic marker + if (result < 0) + throw new LzwException("Failed to read LZW header"); + + if (hdr[0] != (LzwConstants.MAGIC >> 8) || hdr[1] != (LzwConstants.MAGIC & 0xff)) + { + throw new LzwException(String.Format( + "Wrong LZW header. Magic bytes don't match. 0x{0:x2} 0x{1:x2}", + hdr[0], hdr[1])); + } + + // Check the 3rd header byte + blockMode = (hdr[2] & LzwConstants.BLOCK_MODE_MASK) > 0; + maxBits = hdr[2] & LzwConstants.BIT_MASK; + + if (maxBits > LzwConstants.MAX_BITS) + { + throw new LzwException("Stream compressed with " + maxBits + + " bits, but decompression can only handle " + + LzwConstants.MAX_BITS + " bits."); + } + + if ((hdr[2] & LzwConstants.RESERVED_MASK) > 0) + { + throw new LzwException("Unsupported bits set in the header."); + } + + // Initialize variables + maxMaxCode = 1 << maxBits; + nBits = LzwConstants.INIT_BITS; + maxCode = (1 << nBits) - 1; + bitMask = maxCode; + oldCode = -1; + finChar = 0; + freeEnt = blockMode ? TBL_FIRST : 256; + + tabPrefix = new int[1 << maxBits]; + tabSuffix = new byte[1 << maxBits]; + stack = new byte[1 << maxBits]; + stackP = stack.Length; + + for (int idx = 255; idx >= 0; idx--) + tabSuffix[idx] = (byte)idx; + } + + #region Stream Overrides + + /// + /// Gets a value indicating whether the current stream supports reading + /// + public override bool CanRead + { + get + { + return baseInputStream.CanRead; + } + } + + /// + /// Gets a value of false indicating seeking is not supported for this stream. + /// + public override bool CanSeek + { + get + { + return false; + } + } + + /// + /// Gets a value of false indicating that this stream is not writeable. + /// + public override bool CanWrite + { + get + { + return false; + } + } + + /// + /// A value representing the length of the stream in bytes. + /// + public override long Length + { + get + { + return got; + } + } + + /// + /// The current position within the stream. + /// Throws a NotSupportedException when attempting to set the position + /// + /// Attempting to set the position + public override long Position + { + get + { + return baseInputStream.Position; + } + set + { + throw new NotSupportedException("InflaterInputStream Position not supported"); + } + } + + /// + /// Flushes the baseInputStream + /// + public override void Flush() + { + baseInputStream.Flush(); + } + + /// + /// Sets the position within the current stream + /// Always throws a NotSupportedException + /// + /// The relative offset to seek to. + /// The defining where to seek from. + /// The new position in the stream. + /// Any access + public override long Seek(long offset, SeekOrigin origin) + { + throw new NotSupportedException("Seek not supported"); + } + + /// + /// Set the length of the current stream + /// Always throws a NotSupportedException + /// + /// The new length value for the stream. + /// Any access + public override void SetLength(long value) + { + throw new NotSupportedException("InflaterInputStream SetLength not supported"); + } + + /// + /// Writes a sequence of bytes to stream and advances the current position + /// This method always throws a NotSupportedException + /// + /// The buffer containing data to write. + /// The offset of the first byte to write. + /// The number of bytes to write. + /// Any access + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotSupportedException("InflaterInputStream Write not supported"); + } + + /// + /// Writes one byte to the current stream and advances the current position + /// Always throws a NotSupportedException + /// + /// The byte to write. + /// Any access + public override void WriteByte(byte value) + { + throw new NotSupportedException("InflaterInputStream WriteByte not supported"); + } + + /// + /// Closes the input stream. When + /// is true the underlying stream is also closed. + /// + protected override void Dispose(bool disposing) + { + if (!isClosed) + { + isClosed = true; + if (IsStreamOwner) + { + baseInputStream.Dispose(); + } + } + } + + #endregion Stream Overrides + + #region Instance Fields + + private Stream baseInputStream; + + /// + /// Flag indicating wether this instance has been closed or not. + /// + private bool isClosed; + + private readonly byte[] one = new byte[1]; + private bool headerParsed; + + // string table stuff + private const int TBL_CLEAR = 0x100; + + private const int TBL_FIRST = TBL_CLEAR + 1; + + private int[] tabPrefix; + private byte[] tabSuffix; + private readonly int[] zeros = new int[256]; + private byte[] stack; + + // various state + private bool blockMode; + + private int nBits; + private int maxBits; + private int maxMaxCode; + private int maxCode; + private int bitMask; + private int oldCode; + private byte finChar; + private int stackP; + private int freeEnt; + + // input buffer + private readonly byte[] data = new byte[1024 * 8]; + + private int bitPos; + private int end; + private int got; + private bool eof; + private const int EXTRA = 64; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs.meta new file mode 100644 index 0000000..66d5773 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e7c1128807fc48dea20d17bacbadbb1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar.meta new file mode 100644 index 0000000..23d72cc --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 558aa6be5aadc4087bbfbb41fc1a2f4d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs new file mode 100644 index 0000000..9f385e4 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs @@ -0,0 +1,55 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib.Tar +{ + /// + /// This exception is used to indicate that there is a problem + /// with a TAR archive header. + /// + [Serializable] + public class InvalidHeaderException : TarException + { + /// + /// Initialise a new instance of the InvalidHeaderException class. + /// + public InvalidHeaderException() + { + } + + /// + /// Initialises a new instance of the InvalidHeaderException class with a specified message. + /// + /// Message describing the exception cause. + public InvalidHeaderException(string message) + : base(message) + { + } + + /// + /// Initialise a new instance of InvalidHeaderException + /// + /// Message describing the problem. + /// The exception that is the cause of the current exception. + public InvalidHeaderException(string message, Exception exception) + : base(message, exception) + { + } + + /// + /// Initializes a new instance of the InvalidHeaderException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected InvalidHeaderException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs.meta new file mode 100644 index 0000000..3a78027 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3de7539e08e7b4ca0872e4ab94892d3d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarArchive.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarArchive.cs new file mode 100644 index 0000000..d24f76f --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarArchive.cs @@ -0,0 +1,1026 @@ +using System; +using System.IO; +using System.Text; +using ICSharpCode.SharpZipLib.Core; + +namespace ICSharpCode.SharpZipLib.Tar +{ + /// + /// Used to advise clients of 'events' while processing archives + /// + public delegate void ProgressMessageHandler(TarArchive archive, TarEntry entry, string message); + + /// + /// The TarArchive class implements the concept of a + /// 'Tape Archive'. A tar archive is a series of entries, each of + /// which represents a file system object. Each entry in + /// the archive consists of a header block followed by 0 or more data blocks. + /// Directory entries consist only of the header block, and are followed by entries + /// for the directory's contents. File entries consist of a + /// header followed by the number of blocks needed to + /// contain the file's contents. All entries are written on + /// block boundaries. Blocks are 512 bytes long. + /// + /// TarArchives are instantiated in either read or write mode, + /// based upon whether they are instantiated with an InputStream + /// or an OutputStream. Once instantiated TarArchives read/write + /// mode can not be changed. + /// + /// There is currently no support for random access to tar archives. + /// However, it seems that subclassing TarArchive, and using the + /// TarBuffer.CurrentRecord and TarBuffer.CurrentBlock + /// properties, this would be rather trivial. + /// + public class TarArchive : IDisposable + { + /// + /// Client hook allowing detailed information to be reported during processing + /// + public event ProgressMessageHandler ProgressMessageEvent; + + /// + /// Raises the ProgressMessage event + /// + /// The TarEntry for this event + /// message for this event. Null is no message + protected virtual void OnProgressMessageEvent(TarEntry entry, string message) + { + ProgressMessageHandler handler = ProgressMessageEvent; + if (handler != null) + { + handler(this, entry, message); + } + } + + #region Constructors + + /// + /// Constructor for a default . + /// + protected TarArchive() + { + } + + /// + /// Initialise a TarArchive for input. + /// + /// The to use for input. + protected TarArchive(TarInputStream stream) + { + if (stream == null) + { + throw new ArgumentNullException(nameof(stream)); + } + + tarIn = stream; + } + + /// + /// Initialise a TarArchive for output. + /// + /// The to use for output. + protected TarArchive(TarOutputStream stream) + { + if (stream == null) + { + throw new ArgumentNullException(nameof(stream)); + } + + tarOut = stream; + } + + #endregion Constructors + + #region Static factory methods + + /// + /// The InputStream based constructors create a TarArchive for the + /// purposes of extracting or listing a tar archive. Thus, use + /// these constructors when you wish to extract files from or list + /// the contents of an existing tar archive. + /// + /// The stream to retrieve archive data from. + /// Returns a new suitable for reading from. + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public static TarArchive CreateInputTarArchive(Stream inputStream) + { + return CreateInputTarArchive(inputStream, null); + } + + /// + /// The InputStream based constructors create a TarArchive for the + /// purposes of extracting or listing a tar archive. Thus, use + /// these constructors when you wish to extract files from or list + /// the contents of an existing tar archive. + /// + /// The stream to retrieve archive data from. + /// The used for the Name fields, or null for ASCII only + /// Returns a new suitable for reading from. + public static TarArchive CreateInputTarArchive(Stream inputStream, Encoding nameEncoding) + { + if (inputStream == null) + { + throw new ArgumentNullException(nameof(inputStream)); + } + + var tarStream = inputStream as TarInputStream; + + TarArchive result; + if (tarStream != null) + { + result = new TarArchive(tarStream); + } + else + { + result = CreateInputTarArchive(inputStream, TarBuffer.DefaultBlockFactor, nameEncoding); + } + return result; + } + + /// + /// Create TarArchive for reading setting block factor + /// + /// A stream containing the tar archive contents + /// The blocking factor to apply + /// Returns a suitable for reading. + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public static TarArchive CreateInputTarArchive(Stream inputStream, int blockFactor) + { + return CreateInputTarArchive(inputStream, blockFactor, null); + } + + /// + /// Create TarArchive for reading setting block factor + /// + /// A stream containing the tar archive contents + /// The blocking factor to apply + /// The used for the Name fields, or null for ASCII only + /// Returns a suitable for reading. + public static TarArchive CreateInputTarArchive(Stream inputStream, int blockFactor, Encoding nameEncoding) + { + if (inputStream == null) + { + throw new ArgumentNullException(nameof(inputStream)); + } + + if (inputStream is TarInputStream) + { + throw new ArgumentException("TarInputStream not valid"); + } + + return new TarArchive(new TarInputStream(inputStream, blockFactor, nameEncoding)); + } + /// + /// Create a TarArchive for writing to, using the default blocking factor + /// + /// The to write to + /// The used for the Name fields, or null for ASCII only + /// Returns a suitable for writing. + public static TarArchive CreateOutputTarArchive(Stream outputStream, Encoding nameEncoding) + { + if (outputStream == null) + { + throw new ArgumentNullException(nameof(outputStream)); + } + + var tarStream = outputStream as TarOutputStream; + + TarArchive result; + if (tarStream != null) + { + result = new TarArchive(tarStream); + } + else + { + result = CreateOutputTarArchive(outputStream, TarBuffer.DefaultBlockFactor, nameEncoding); + } + return result; + } + /// + /// Create a TarArchive for writing to, using the default blocking factor + /// + /// The to write to + /// Returns a suitable for writing. + public static TarArchive CreateOutputTarArchive(Stream outputStream) + { + return CreateOutputTarArchive(outputStream, null); + } + + /// + /// Create a tar archive for writing. + /// + /// The stream to write to + /// The blocking factor to use for buffering. + /// Returns a suitable for writing. + public static TarArchive CreateOutputTarArchive(Stream outputStream, int blockFactor) + { + return CreateOutputTarArchive(outputStream, blockFactor, null); + } + /// + /// Create a tar archive for writing. + /// + /// The stream to write to + /// The blocking factor to use for buffering. + /// The used for the Name fields, or null for ASCII only + /// Returns a suitable for writing. + public static TarArchive CreateOutputTarArchive(Stream outputStream, int blockFactor, Encoding nameEncoding) + { + if (outputStream == null) + { + throw new ArgumentNullException(nameof(outputStream)); + } + + if (outputStream is TarOutputStream) + { + throw new ArgumentException("TarOutputStream is not valid"); + } + + return new TarArchive(new TarOutputStream(outputStream, blockFactor, nameEncoding)); + } + + #endregion Static factory methods + + /// + /// Set the flag that determines whether existing files are + /// kept, or overwritten during extraction. + /// + /// + /// If true, do not overwrite existing files. + /// + public void SetKeepOldFiles(bool keepExistingFiles) + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + keepOldFiles = keepExistingFiles; + } + + /// + /// Get/set the ascii file translation flag. If ascii file translation + /// is true, then the file is checked to see if it a binary file or not. + /// If the flag is true and the test indicates it is ascii text + /// file, it will be translated. The translation converts the local + /// operating system's concept of line ends into the UNIX line end, + /// '\n', which is the defacto standard for a TAR archive. This makes + /// text files compatible with UNIX. + /// + public bool AsciiTranslate + { + get + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + return asciiTranslate; + } + + set + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + asciiTranslate = value; + } + } + + /// + /// Set the ascii file translation flag. + /// + /// + /// If true, translate ascii text files. + /// + [Obsolete("Use the AsciiTranslate property")] + public void SetAsciiTranslation(bool translateAsciiFiles) + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + asciiTranslate = translateAsciiFiles; + } + + /// + /// PathPrefix is added to entry names as they are written if the value is not null. + /// A slash character is appended after PathPrefix + /// + public string PathPrefix + { + get + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + return pathPrefix; + } + + set + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + pathPrefix = value; + } + } + + /// + /// RootPath is removed from entry names if it is found at the + /// beginning of the name. + /// + public string RootPath + { + get + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + return rootPath; + } + + set + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + // Convert to forward slashes for matching. Trim trailing / for correct final path + rootPath = value.Replace('\\', '/').TrimEnd('/'); + } + } + + /// + /// Set user and group information that will be used to fill in the + /// tar archive's entry headers. This information is based on that available + /// for the linux operating system, which is not always available on other + /// operating systems. TarArchive allows the programmer to specify values + /// to be used in their place. + /// is set to true by this call. + /// + /// + /// The user id to use in the headers. + /// + /// + /// The user name to use in the headers. + /// + /// + /// The group id to use in the headers. + /// + /// + /// The group name to use in the headers. + /// + public void SetUserInfo(int userId, string userName, int groupId, string groupName) + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + this.userId = userId; + this.userName = userName; + this.groupId = groupId; + this.groupName = groupName; + applyUserInfoOverrides = true; + } + + /// + /// Get or set a value indicating if overrides defined by SetUserInfo should be applied. + /// + /// If overrides are not applied then the values as set in each header will be used. + public bool ApplyUserInfoOverrides + { + get + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + return applyUserInfoOverrides; + } + + set + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + applyUserInfoOverrides = value; + } + } + + /// + /// Get the archive user id. + /// See ApplyUserInfoOverrides for detail + /// on how to allow setting values on a per entry basis. + /// + /// + /// The current user id. + /// + public int UserId + { + get + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + return userId; + } + } + + /// + /// Get the archive user name. + /// See ApplyUserInfoOverrides for detail + /// on how to allow setting values on a per entry basis. + /// + /// + /// The current user name. + /// + public string UserName + { + get + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + return userName; + } + } + + /// + /// Get the archive group id. + /// See ApplyUserInfoOverrides for detail + /// on how to allow setting values on a per entry basis. + /// + /// + /// The current group id. + /// + public int GroupId + { + get + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + return groupId; + } + } + + /// + /// Get the archive group name. + /// See ApplyUserInfoOverrides for detail + /// on how to allow setting values on a per entry basis. + /// + /// + /// The current group name. + /// + public string GroupName + { + get + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + return groupName; + } + } + + /// + /// Get the archive's record size. Tar archives are composed of + /// a series of RECORDS each containing a number of BLOCKS. + /// This allowed tar archives to match the IO characteristics of + /// the physical device being used. Archives are expected + /// to be properly "blocked". + /// + /// + /// The record size this archive is using. + /// + public int RecordSize + { + get + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + if (tarIn != null) + { + return tarIn.RecordSize; + } + else if (tarOut != null) + { + return tarOut.RecordSize; + } + return TarBuffer.DefaultRecordSize; + } + } + + /// + /// Sets the IsStreamOwner property on the underlying stream. + /// Set this to false to prevent the Close of the TarArchive from closing the stream. + /// + public bool IsStreamOwner + { + set + { + if (tarIn != null) + { + tarIn.IsStreamOwner = value; + } + else + { + tarOut.IsStreamOwner = value; + } + } + } + + /// + /// Close the archive. + /// + [Obsolete("Use Close instead")] + public void CloseArchive() + { + Close(); + } + + /// + /// Perform the "list" command for the archive contents. + /// + /// NOTE That this method uses the progress event to actually list + /// the contents. If the progress display event is not set, nothing will be listed! + /// + public void ListContents() + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + while (true) + { + TarEntry entry = tarIn.GetNextEntry(); + + if (entry == null) + { + break; + } + OnProgressMessageEvent(entry, null); + } + } + + /// + /// Perform the "extract" command and extract the contents of the archive. + /// + /// + /// The destination directory into which to extract. + /// + public void ExtractContents(string destinationDirectory) + => ExtractContents(destinationDirectory, false); + + /// + /// Perform the "extract" command and extract the contents of the archive. + /// + /// + /// The destination directory into which to extract. + /// + /// Allow parent directory traversal in file paths (e.g. ../file) + public void ExtractContents(string destinationDirectory, bool allowParentTraversal) + { + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + var fullDistDir = Path.GetFullPath(destinationDirectory); + + while (true) + { + TarEntry entry = tarIn.GetNextEntry(); + + if (entry == null) + { + break; + } + + if (entry.TarHeader.TypeFlag == TarHeader.LF_LINK || entry.TarHeader.TypeFlag == TarHeader.LF_SYMLINK) + continue; + + ExtractEntry(fullDistDir, entry, allowParentTraversal); + } + } + + /// + /// Extract an entry from the archive. This method assumes that the + /// tarIn stream has been properly set with a call to GetNextEntry(). + /// + /// + /// The destination directory into which to extract. + /// + /// + /// The TarEntry returned by tarIn.GetNextEntry(). + /// + /// Allow parent directory traversal in file paths (e.g. ../file) + private void ExtractEntry(string destDir, TarEntry entry, bool allowParentTraversal) + { + OnProgressMessageEvent(entry, null); + + string name = entry.Name; + + if (Path.IsPathRooted(name)) + { + // NOTE: + // for UNC names... \\machine\share\zoom\beet.txt gives \zoom\beet.txt + name = name.Substring(Path.GetPathRoot(name).Length); + } + + name = name.Replace('/', Path.DirectorySeparatorChar); + + string destFile = Path.Combine(destDir, name); + + if (!allowParentTraversal && !Path.GetFullPath(destFile).StartsWith(destDir, StringComparison.InvariantCultureIgnoreCase)) + { + throw new InvalidNameException("Parent traversal in paths is not allowed"); + } + + if (entry.IsDirectory) + { + EnsureDirectoryExists(destFile); + } + else + { + string parentDirectory = Path.GetDirectoryName(destFile); + EnsureDirectoryExists(parentDirectory); + + bool process = true; + var fileInfo = new FileInfo(destFile); + if (fileInfo.Exists) + { + if (keepOldFiles) + { + OnProgressMessageEvent(entry, "Destination file already exists"); + process = false; + } + else if ((fileInfo.Attributes & FileAttributes.ReadOnly) != 0) + { + OnProgressMessageEvent(entry, "Destination file already exists, and is read-only"); + process = false; + } + } + + if (process) + { + using (var outputStream = File.Create(destFile)) + { + if (this.asciiTranslate) + { + // May need to translate the file. + ExtractAndTranslateEntry(destFile, outputStream); + } + else + { + // If translation is disabled, just copy the entry across directly. + tarIn.CopyEntryContents(outputStream); + } + } + } + } + } + + // Extract a TAR entry, and perform an ASCII translation if required. + private void ExtractAndTranslateEntry(string destFile, Stream outputStream) + { + bool asciiTrans = !IsBinary(destFile); + + if (asciiTrans) + { + using (var outw = new StreamWriter(outputStream, new UTF8Encoding(false), 1024, true)) + { + byte[] rdbuf = new byte[32 * 1024]; + + while (true) + { + int numRead = tarIn.Read(rdbuf, 0, rdbuf.Length); + + if (numRead <= 0) + { + break; + } + + for (int off = 0, b = 0; b < numRead; ++b) + { + if (rdbuf[b] == 10) + { + string s = Encoding.ASCII.GetString(rdbuf, off, (b - off)); + outw.WriteLine(s); + off = b + 1; + } + } + } + } + } + else + { + // No translation required. + tarIn.CopyEntryContents(outputStream); + } + } + + /// + /// Write an entry to the archive. This method will call the putNextEntry + /// and then write the contents of the entry, and finally call closeEntry() + /// for entries that are files. For directories, it will call putNextEntry(), + /// and then, if the recurse flag is true, process each entry that is a + /// child of the directory. + /// + /// + /// The TarEntry representing the entry to write to the archive. + /// + /// + /// If true, process the children of directory entries. + /// + public void WriteEntry(TarEntry sourceEntry, bool recurse) + { + if (sourceEntry == null) + { + throw new ArgumentNullException(nameof(sourceEntry)); + } + + if (isDisposed) + { + throw new ObjectDisposedException("TarArchive"); + } + + try + { + if (recurse) + { + TarHeader.SetValueDefaults(sourceEntry.UserId, sourceEntry.UserName, + sourceEntry.GroupId, sourceEntry.GroupName); + } + WriteEntryCore(sourceEntry, recurse); + } + finally + { + if (recurse) + { + TarHeader.RestoreSetValues(); + } + } + } + + /// + /// Write an entry to the archive. This method will call the putNextEntry + /// and then write the contents of the entry, and finally call closeEntry() + /// for entries that are files. For directories, it will call putNextEntry(), + /// and then, if the recurse flag is true, process each entry that is a + /// child of the directory. + /// + /// + /// The TarEntry representing the entry to write to the archive. + /// + /// + /// If true, process the children of directory entries. + /// + private void WriteEntryCore(TarEntry sourceEntry, bool recurse) + { + string tempFileName = null; + string entryFilename = sourceEntry.File; + + var entry = (TarEntry)sourceEntry.Clone(); + + if (applyUserInfoOverrides) + { + entry.GroupId = groupId; + entry.GroupName = groupName; + entry.UserId = userId; + entry.UserName = userName; + } + + OnProgressMessageEvent(entry, null); + + if (asciiTranslate && !entry.IsDirectory) + { + if (!IsBinary(entryFilename)) + { + tempFileName = PathUtils.GetTempFileName(); + + using (StreamReader inStream = File.OpenText(entryFilename)) + { + using (Stream outStream = File.Create(tempFileName)) + { + while (true) + { + string line = inStream.ReadLine(); + if (line == null) + { + break; + } + byte[] data = Encoding.ASCII.GetBytes(line); + outStream.Write(data, 0, data.Length); + outStream.WriteByte((byte)'\n'); + } + + outStream.Flush(); + } + } + + entry.Size = new FileInfo(tempFileName).Length; + entryFilename = tempFileName; + } + } + + string newName = null; + + if (!String.IsNullOrEmpty(rootPath)) + { + if (entry.Name.StartsWith(rootPath, StringComparison.OrdinalIgnoreCase)) + { + newName = entry.Name.Substring(rootPath.Length + 1); + } + } + + if (pathPrefix != null) + { + newName = (newName == null) ? pathPrefix + "/" + entry.Name : pathPrefix + "/" + newName; + } + + if (newName != null) + { + entry.Name = newName; + } + + tarOut.PutNextEntry(entry); + + if (entry.IsDirectory) + { + if (recurse) + { + TarEntry[] list = entry.GetDirectoryEntries(); + for (int i = 0; i < list.Length; ++i) + { + WriteEntryCore(list[i], recurse); + } + } + } + else + { + using (Stream inputStream = File.OpenRead(entryFilename)) + { + byte[] localBuffer = new byte[32 * 1024]; + while (true) + { + int numRead = inputStream.Read(localBuffer, 0, localBuffer.Length); + + if (numRead <= 0) + { + break; + } + + tarOut.Write(localBuffer, 0, numRead); + } + } + + if (!string.IsNullOrEmpty(tempFileName)) + { + File.Delete(tempFileName); + } + + tarOut.CloseEntry(); + } + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Releases the unmanaged resources used by the FileStream and optionally releases the managed resources. + /// + /// true to release both managed and unmanaged resources; + /// false to release only unmanaged resources. + protected virtual void Dispose(bool disposing) + { + if (!isDisposed) + { + isDisposed = true; + if (disposing) + { + if (tarOut != null) + { + tarOut.Flush(); + tarOut.Dispose(); + } + + if (tarIn != null) + { + tarIn.Dispose(); + } + } + } + } + + /// + /// Closes the archive and releases any associated resources. + /// + public virtual void Close() + { + Dispose(true); + } + + /// + /// Ensures that resources are freed and other cleanup operations are performed + /// when the garbage collector reclaims the . + /// + ~TarArchive() + { + Dispose(false); + } + + private static void EnsureDirectoryExists(string directoryName) + { + if (!Directory.Exists(directoryName)) + { + try + { + Directory.CreateDirectory(directoryName); + } + catch (Exception e) + { + throw new TarException("Exception creating directory '" + directoryName + "', " + e.Message, e); + } + } + } + + // TODO: TarArchive - Is there a better way to test for a text file? + // It no longer reads entire files into memory but is still a weak test! + // This assumes that byte values 0-7, 14-31 or 255 are binary + // and that all non text files contain one of these values + private static bool IsBinary(string filename) + { + using (FileStream fs = File.OpenRead(filename)) + { + int sampleSize = Math.Min(4096, (int)fs.Length); + byte[] content = new byte[sampleSize]; + + int bytesRead = fs.Read(content, 0, sampleSize); + + for (int i = 0; i < bytesRead; ++i) + { + byte b = content[i]; + if ((b < 8) || ((b > 13) && (b < 32)) || (b == 255)) + { + return true; + } + } + } + return false; + } + + #region Instance Fields + + private bool keepOldFiles; + private bool asciiTranslate; + + private int userId; + private string userName = string.Empty; + private int groupId; + private string groupName = string.Empty; + + private string rootPath; + private string pathPrefix; + + private bool applyUserInfoOverrides; + + private TarInputStream tarIn; + private TarOutputStream tarOut; + private bool isDisposed; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarArchive.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarArchive.cs.meta new file mode 100644 index 0000000..d05162c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarArchive.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d15c76af42b7640959f08c29a5fe62e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs new file mode 100644 index 0000000..744c131 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs @@ -0,0 +1,599 @@ +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.Tar +{ + /// + /// The TarBuffer class implements the tar archive concept + /// of a buffered input stream. This concept goes back to the + /// days of blocked tape drives and special io devices. In the + /// C# universe, the only real function that this class + /// performs is to ensure that files have the correct "record" + /// size, or other tars will complain. + ///

+ /// You should never have a need to access this class directly. + /// TarBuffers are created by Tar IO Streams. + ///

+ ///
+ public class TarBuffer + { + /* A quote from GNU tar man file on blocking and records + A `tar' archive file contains a series of blocks. Each block + contains `BLOCKSIZE' bytes. Although this format may be thought of as + being on magnetic tape, other media are often used. + + Each file archived is represented by a header block which describes + the file, followed by zero or more blocks which give the contents of + the file. At the end of the archive file there may be a block filled + with binary zeros as an end-of-file marker. A reasonable system should + write a block of zeros at the end, but must not assume that such a + block exists when reading an archive. + + The blocks may be "blocked" for physical I/O operations. Each + record of N blocks is written with a single 'write ()' + operation. On magnetic tapes, the result of such a write is a single + record. When writing an archive, the last record of blocks should be + written at the full size, with blocks after the zero block containing + all zeros. When reading an archive, a reasonable system should + properly handle an archive whose last record is shorter than the rest, + or which contains garbage records after a zero block. + */ + + #region Constants + + /// + /// The size of a block in a tar archive in bytes. + /// + /// This is 512 bytes. + public const int BlockSize = 512; + + /// + /// The number of blocks in a default record. + /// + /// + /// The default value is 20 blocks per record. + /// + public const int DefaultBlockFactor = 20; + + /// + /// The size in bytes of a default record. + /// + /// + /// The default size is 10KB. + /// + public const int DefaultRecordSize = BlockSize * DefaultBlockFactor; + + #endregion Constants + + /// + /// Get the record size for this buffer + /// + /// The record size in bytes. + /// This is equal to the multiplied by the + public int RecordSize + { + get + { + return recordSize; + } + } + + /// + /// Get the TAR Buffer's record size. + /// + /// The record size in bytes. + /// This is equal to the multiplied by the + [Obsolete("Use RecordSize property instead")] + public int GetRecordSize() + { + return recordSize; + } + + /// + /// Get the Blocking factor for the buffer + /// + /// This is the number of blocks in each record. + public int BlockFactor + { + get + { + return blockFactor; + } + } + + /// + /// Get the TAR Buffer's block factor + /// + /// The block factor; the number of blocks per record. + [Obsolete("Use BlockFactor property instead")] + public int GetBlockFactor() + { + return blockFactor; + } + + /// + /// Construct a default TarBuffer + /// + protected TarBuffer() + { + } + + /// + /// Create TarBuffer for reading with default BlockFactor + /// + /// Stream to buffer + /// A new suitable for input. + public static TarBuffer CreateInputTarBuffer(Stream inputStream) + { + if (inputStream == null) + { + throw new ArgumentNullException(nameof(inputStream)); + } + + return CreateInputTarBuffer(inputStream, DefaultBlockFactor); + } + + /// + /// Construct TarBuffer for reading inputStream setting BlockFactor + /// + /// Stream to buffer + /// Blocking factor to apply + /// A new suitable for input. + public static TarBuffer CreateInputTarBuffer(Stream inputStream, int blockFactor) + { + if (inputStream == null) + { + throw new ArgumentNullException(nameof(inputStream)); + } + + if (blockFactor <= 0) + { + throw new ArgumentOutOfRangeException(nameof(blockFactor), "Factor cannot be negative"); + } + + var tarBuffer = new TarBuffer(); + tarBuffer.inputStream = inputStream; + tarBuffer.outputStream = null; + tarBuffer.Initialize(blockFactor); + + return tarBuffer; + } + + /// + /// Construct TarBuffer for writing with default BlockFactor + /// + /// output stream for buffer + /// A new suitable for output. + public static TarBuffer CreateOutputTarBuffer(Stream outputStream) + { + if (outputStream == null) + { + throw new ArgumentNullException(nameof(outputStream)); + } + + return CreateOutputTarBuffer(outputStream, DefaultBlockFactor); + } + + /// + /// Construct TarBuffer for writing Tar output to streams. + /// + /// Output stream to write to. + /// Blocking factor to apply + /// A new suitable for output. + public static TarBuffer CreateOutputTarBuffer(Stream outputStream, int blockFactor) + { + if (outputStream == null) + { + throw new ArgumentNullException(nameof(outputStream)); + } + + if (blockFactor <= 0) + { + throw new ArgumentOutOfRangeException(nameof(blockFactor), "Factor cannot be negative"); + } + + var tarBuffer = new TarBuffer(); + tarBuffer.inputStream = null; + tarBuffer.outputStream = outputStream; + tarBuffer.Initialize(blockFactor); + + return tarBuffer; + } + + /// + /// Initialization common to all constructors. + /// + private void Initialize(int archiveBlockFactor) + { + blockFactor = archiveBlockFactor; + recordSize = archiveBlockFactor * BlockSize; + recordBuffer = new byte[RecordSize]; + + if (inputStream != null) + { + currentRecordIndex = -1; + currentBlockIndex = BlockFactor; + } + else + { + currentRecordIndex = 0; + currentBlockIndex = 0; + } + } + + /// + /// Determine if an archive block indicates End of Archive. End of + /// archive is indicated by a block that consists entirely of null bytes. + /// All remaining blocks for the record should also be null's + /// However some older tars only do a couple of null blocks (Old GNU tar for one) + /// and also partial records + /// + /// The data block to check. + /// Returns true if the block is an EOF block; false otherwise. + [Obsolete("Use IsEndOfArchiveBlock instead")] + public bool IsEOFBlock(byte[] block) + { + if (block == null) + { + throw new ArgumentNullException(nameof(block)); + } + + if (block.Length != BlockSize) + { + throw new ArgumentException("block length is invalid"); + } + + for (int i = 0; i < BlockSize; ++i) + { + if (block[i] != 0) + { + return false; + } + } + + return true; + } + + /// + /// Determine if an archive block indicates the End of an Archive has been reached. + /// End of archive is indicated by a block that consists entirely of null bytes. + /// All remaining blocks for the record should also be null's + /// However some older tars only do a couple of null blocks (Old GNU tar for one) + /// and also partial records + /// + /// The data block to check. + /// Returns true if the block is an EOF block; false otherwise. + public static bool IsEndOfArchiveBlock(byte[] block) + { + if (block == null) + { + throw new ArgumentNullException(nameof(block)); + } + + if (block.Length != BlockSize) + { + throw new ArgumentException("block length is invalid"); + } + + for (int i = 0; i < BlockSize; ++i) + { + if (block[i] != 0) + { + return false; + } + } + + return true; + } + + /// + /// Skip over a block on the input stream. + /// + public void SkipBlock() + { + if (inputStream == null) + { + throw new TarException("no input stream defined"); + } + + if (currentBlockIndex >= BlockFactor) + { + if (!ReadRecord()) + { + throw new TarException("Failed to read a record"); + } + } + + currentBlockIndex++; + } + + /// + /// Read a block from the input stream. + /// + /// + /// The block of data read. + /// + public byte[] ReadBlock() + { + if (inputStream == null) + { + throw new TarException("TarBuffer.ReadBlock - no input stream defined"); + } + + if (currentBlockIndex >= BlockFactor) + { + if (!ReadRecord()) + { + throw new TarException("Failed to read a record"); + } + } + + byte[] result = new byte[BlockSize]; + + Array.Copy(recordBuffer, (currentBlockIndex * BlockSize), result, 0, BlockSize); + currentBlockIndex++; + return result; + } + + /// + /// Read a record from data stream. + /// + /// + /// false if End-Of-File, else true. + /// + private bool ReadRecord() + { + if (inputStream == null) + { + throw new TarException("no input stream defined"); + } + + currentBlockIndex = 0; + + int offset = 0; + int bytesNeeded = RecordSize; + + while (bytesNeeded > 0) + { + long numBytes = inputStream.Read(recordBuffer, offset, bytesNeeded); + + // + // NOTE + // We have found EOF, and the record is not full! + // + // This is a broken archive. It does not follow the standard + // blocking algorithm. However, because we are generous, and + // it requires little effort, we will simply ignore the error + // and continue as if the entire record were read. This does + // not appear to break anything upstream. We used to return + // false in this case. + // + // Thanks to 'Yohann.Roussel@alcatel.fr' for this fix. + // + if (numBytes <= 0) + { + break; + } + + offset += (int)numBytes; + bytesNeeded -= (int)numBytes; + } + + currentRecordIndex++; + return true; + } + + /// + /// Get the current block number, within the current record, zero based. + /// + /// Block numbers are zero based values + /// + public int CurrentBlock + { + get { return currentBlockIndex; } + } + + /// + /// Gets or sets a flag indicating ownership of underlying stream. + /// When the flag is true will close the underlying stream also. + /// + /// The default value is true. + public bool IsStreamOwner { get; set; } = true; + + /// + /// Get the current block number, within the current record, zero based. + /// + /// + /// The current zero based block number. + /// + /// + /// The absolute block number = (record number * block factor) + block number. + /// + [Obsolete("Use CurrentBlock property instead")] + public int GetCurrentBlockNum() + { + return currentBlockIndex; + } + + /// + /// Get the current record number. + /// + /// + /// The current zero based record number. + /// + public int CurrentRecord + { + get { return currentRecordIndex; } + } + + /// + /// Get the current record number. + /// + /// + /// The current zero based record number. + /// + [Obsolete("Use CurrentRecord property instead")] + public int GetCurrentRecordNum() + { + return currentRecordIndex; + } + + /// + /// Write a block of data to the archive. + /// + /// + /// The data to write to the archive. + /// + public void WriteBlock(byte[] block) + { + if (block == null) + { + throw new ArgumentNullException(nameof(block)); + } + + if (outputStream == null) + { + throw new TarException("TarBuffer.WriteBlock - no output stream defined"); + } + + if (block.Length != BlockSize) + { + string errorText = string.Format("TarBuffer.WriteBlock - block to write has length '{0}' which is not the block size of '{1}'", + block.Length, BlockSize); + throw new TarException(errorText); + } + + if (currentBlockIndex >= BlockFactor) + { + WriteRecord(); + } + + Array.Copy(block, 0, recordBuffer, (currentBlockIndex * BlockSize), BlockSize); + currentBlockIndex++; + } + + /// + /// Write an archive record to the archive, where the record may be + /// inside of a larger array buffer. The buffer must be "offset plus + /// record size" long. + /// + /// + /// The buffer containing the record data to write. + /// + /// + /// The offset of the record data within buffer. + /// + public void WriteBlock(byte[] buffer, int offset) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (outputStream == null) + { + throw new TarException("TarBuffer.WriteBlock - no output stream defined"); + } + + if ((offset < 0) || (offset >= buffer.Length)) + { + throw new ArgumentOutOfRangeException(nameof(offset)); + } + + if ((offset + BlockSize) > buffer.Length) + { + string errorText = string.Format("TarBuffer.WriteBlock - record has length '{0}' with offset '{1}' which is less than the record size of '{2}'", + buffer.Length, offset, recordSize); + throw new TarException(errorText); + } + + if (currentBlockIndex >= BlockFactor) + { + WriteRecord(); + } + + Array.Copy(buffer, offset, recordBuffer, (currentBlockIndex * BlockSize), BlockSize); + + currentBlockIndex++; + } + + /// + /// Write a TarBuffer record to the archive. + /// + private void WriteRecord() + { + if (outputStream == null) + { + throw new TarException("TarBuffer.WriteRecord no output stream defined"); + } + + outputStream.Write(recordBuffer, 0, RecordSize); + outputStream.Flush(); + + currentBlockIndex = 0; + currentRecordIndex++; + } + + /// + /// WriteFinalRecord writes the current record buffer to output any unwritten data is present. + /// + /// Any trailing bytes are set to zero which is by definition correct behaviour + /// for the end of a tar stream. + private void WriteFinalRecord() + { + if (outputStream == null) + { + throw new TarException("TarBuffer.WriteFinalRecord no output stream defined"); + } + + if (currentBlockIndex > 0) + { + int dataBytes = currentBlockIndex * BlockSize; + Array.Clear(recordBuffer, dataBytes, RecordSize - dataBytes); + WriteRecord(); + } + + outputStream.Flush(); + } + + /// + /// Close the TarBuffer. If this is an output buffer, also flush the + /// current block before closing. + /// + public void Close() + { + if (outputStream != null) + { + WriteFinalRecord(); + + if (IsStreamOwner) + { + outputStream.Dispose(); + } + outputStream = null; + } + else if (inputStream != null) + { + if (IsStreamOwner) + { + inputStream.Dispose(); + } + inputStream = null; + } + } + + #region Instance Fields + + private Stream inputStream; + private Stream outputStream; + + private byte[] recordBuffer; + private int currentBlockIndex; + private int currentRecordIndex; + + private int recordSize = DefaultRecordSize; + private int blockFactor = DefaultBlockFactor; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs.meta new file mode 100644 index 0000000..711a564 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 89bf7d43e97f74619abae3b13847c039 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarEntry.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarEntry.cs new file mode 100644 index 0000000..262c12a --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarEntry.cs @@ -0,0 +1,598 @@ +using System; +using System.IO; +using System.Text; +using ICSharpCode.SharpZipLib.Core; + +namespace ICSharpCode.SharpZipLib.Tar +{ + /// + /// This class represents an entry in a Tar archive. It consists + /// of the entry's header, as well as the entry's File. Entries + /// can be instantiated in one of three ways, depending on how + /// they are to be used. + ///

+ /// TarEntries that are created from the header bytes read from + /// an archive are instantiated with the TarEntry( byte[] ) + /// constructor. These entries will be used when extracting from + /// or listing the contents of an archive. These entries have their + /// header filled in using the header bytes. They also set the File + /// to null, since they reference an archive entry not a file.

+ ///

+ /// TarEntries that are created from files that are to be written + /// into an archive are instantiated with the CreateEntryFromFile(string) + /// pseudo constructor. These entries have their header filled in using + /// the File's information. They also keep a reference to the File + /// for convenience when writing entries.

+ ///

+ /// Finally, TarEntries can be constructed from nothing but a name. + /// This allows the programmer to construct the entry by hand, for + /// instance when only an InputStream is available for writing to + /// the archive, and the header information is constructed from + /// other information. In this case the header fields are set to + /// defaults and the File is set to null.

+ /// + ///
+ public class TarEntry + { + #region Constructors + + /// + /// Initialise a default instance of . + /// + private TarEntry() + { + header = new TarHeader(); + } + + /// + /// Construct an entry from an archive's header bytes. File is set + /// to null. + /// + /// + /// The header bytes from a tar archive entry. + /// + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public TarEntry(byte[] headerBuffer) : this(headerBuffer, null) + { + } + + /// + /// Construct an entry from an archive's header bytes. File is set + /// to null. + /// + /// + /// The header bytes from a tar archive entry. + /// + /// + /// The used for the Name fields, or null for ASCII only + /// + public TarEntry(byte[] headerBuffer, Encoding nameEncoding) + { + header = new TarHeader(); + header.ParseBuffer(headerBuffer, nameEncoding); + } + + /// + /// Construct a TarEntry using the header provided + /// + /// Header details for entry + public TarEntry(TarHeader header) + { + if (header == null) + { + throw new ArgumentNullException(nameof(header)); + } + + this.header = (TarHeader)header.Clone(); + } + + #endregion Constructors + + #region ICloneable Members + + /// + /// Clone this tar entry. + /// + /// Returns a clone of this entry. + public object Clone() + { + var entry = new TarEntry(); + entry.file = file; + entry.header = (TarHeader)header.Clone(); + entry.Name = Name; + return entry; + } + + #endregion ICloneable Members + + /// + /// Construct an entry with only a name. + /// This allows the programmer to construct the entry's header "by hand". + /// + /// The name to use for the entry + /// Returns the newly created + public static TarEntry CreateTarEntry(string name) + { + var entry = new TarEntry(); + TarEntry.NameTarHeader(entry.header, name); + return entry; + } + + /// + /// Construct an entry for a file. File is set to file, and the + /// header is constructed from information from the file. + /// + /// The file name that the entry represents. + /// Returns the newly created + public static TarEntry CreateEntryFromFile(string fileName) + { + var entry = new TarEntry(); + entry.GetFileTarHeader(entry.header, fileName); + return entry; + } + + /// + /// Determine if the two entries are equal. Equality is determined + /// by the header names being equal. + /// + /// The to compare with the current Object. + /// + /// True if the entries are equal; false if not. + /// + public override bool Equals(object obj) + { + var localEntry = obj as TarEntry; + + if (localEntry != null) + { + return Name.Equals(localEntry.Name); + } + return false; + } + + /// + /// Derive a Hash value for the current + /// + /// A Hash code for the current + public override int GetHashCode() + { + return Name.GetHashCode(); + } + + /// + /// Determine if the given entry is a descendant of this entry. + /// Descendancy is determined by the name of the descendant + /// starting with this entry's name. + /// + /// + /// Entry to be checked as a descendent of this. + /// + /// + /// True if entry is a descendant of this. + /// + public bool IsDescendent(TarEntry toTest) + { + if (toTest == null) + { + throw new ArgumentNullException(nameof(toTest)); + } + + return toTest.Name.StartsWith(Name, StringComparison.Ordinal); + } + + /// + /// Get this entry's header. + /// + /// + /// This entry's TarHeader. + /// + public TarHeader TarHeader + { + get + { + return header; + } + } + + /// + /// Get/Set this entry's name. + /// + public string Name + { + get + { + return header.Name; + } + set + { + header.Name = value; + } + } + + /// + /// Get/set this entry's user id. + /// + public int UserId + { + get + { + return header.UserId; + } + set + { + header.UserId = value; + } + } + + /// + /// Get/set this entry's group id. + /// + public int GroupId + { + get + { + return header.GroupId; + } + set + { + header.GroupId = value; + } + } + + /// + /// Get/set this entry's user name. + /// + public string UserName + { + get + { + return header.UserName; + } + set + { + header.UserName = value; + } + } + + /// + /// Get/set this entry's group name. + /// + public string GroupName + { + get + { + return header.GroupName; + } + set + { + header.GroupName = value; + } + } + + /// + /// Convenience method to set this entry's group and user ids. + /// + /// + /// This entry's new user id. + /// + /// + /// This entry's new group id. + /// + public void SetIds(int userId, int groupId) + { + UserId = userId; + GroupId = groupId; + } + + /// + /// Convenience method to set this entry's group and user names. + /// + /// + /// This entry's new user name. + /// + /// + /// This entry's new group name. + /// + public void SetNames(string userName, string groupName) + { + UserName = userName; + GroupName = groupName; + } + + /// + /// Get/Set the modification time for this entry + /// + public DateTime ModTime + { + get + { + return header.ModTime; + } + set + { + header.ModTime = value; + } + } + + /// + /// Get this entry's file. + /// + /// + /// This entry's file. + /// + public string File + { + get + { + return file; + } + } + + /// + /// Get/set this entry's recorded file size. + /// + public long Size + { + get + { + return header.Size; + } + set + { + header.Size = value; + } + } + + /// + /// Return true if this entry represents a directory, false otherwise + /// + /// + /// True if this entry is a directory. + /// + public bool IsDirectory + { + get + { + if (file != null) + { + return Directory.Exists(file); + } + + if (header != null) + { + if ((header.TypeFlag == TarHeader.LF_DIR) || Name.EndsWith("/", StringComparison.Ordinal)) + { + return true; + } + } + return false; + } + } + + /// + /// Fill in a TarHeader with information from a File. + /// + /// + /// The TarHeader to fill in. + /// + /// + /// The file from which to get the header information. + /// + public void GetFileTarHeader(TarHeader header, string file) + { + if (header == null) + { + throw new ArgumentNullException(nameof(header)); + } + + if (file == null) + { + throw new ArgumentNullException(nameof(file)); + } + + this.file = file; + + // bugfix from torhovl from #D forum: + string name = file; + + // 23-Jan-2004 GnuTar allows device names in path where the name is not local to the current directory + if (name.IndexOf(Directory.GetCurrentDirectory(), StringComparison.Ordinal) == 0) + { + name = name.Substring(Directory.GetCurrentDirectory().Length); + } + + /* + if (Path.DirectorySeparatorChar == '\\') + { + // check if the OS is Windows + // Strip off drive letters! + if (name.Length > 2) + { + char ch1 = name[0]; + char ch2 = name[1]; + + if (ch2 == ':' && Char.IsLetter(ch1)) + { + name = name.Substring(2); + } + } + } + */ + + name = name.Replace(Path.DirectorySeparatorChar, '/'); + + // No absolute pathnames + // Windows (and Posix?) paths can start with UNC style "\\NetworkDrive\", + // so we loop on starting /'s. + while (name.StartsWith("/", StringComparison.Ordinal)) + { + name = name.Substring(1); + } + + header.LinkName = String.Empty; + header.Name = name; + + if (Directory.Exists(file)) + { + header.Mode = 1003; // Magic number for security access for a UNIX filesystem + header.TypeFlag = TarHeader.LF_DIR; + if ((header.Name.Length == 0) || header.Name[header.Name.Length - 1] != '/') + { + header.Name = header.Name + "/"; + } + + header.Size = 0; + } + else + { + header.Mode = 33216; // Magic number for security access for a UNIX filesystem + header.TypeFlag = TarHeader.LF_NORMAL; + header.Size = new FileInfo(file.Replace('/', Path.DirectorySeparatorChar)).Length; + } + + header.ModTime = System.IO.File.GetLastWriteTime(file.Replace('/', Path.DirectorySeparatorChar)).ToUniversalTime(); + header.DevMajor = 0; + header.DevMinor = 0; + } + + /// + /// Get entries for all files present in this entries directory. + /// If this entry doesnt represent a directory zero entries are returned. + /// + /// + /// An array of TarEntry's for this entry's children. + /// + public TarEntry[] GetDirectoryEntries() + { + if ((file == null) || !Directory.Exists(file)) + { + return Empty.Array(); + } + + string[] list = Directory.GetFileSystemEntries(file); + TarEntry[] result = new TarEntry[list.Length]; + + for (int i = 0; i < list.Length; ++i) + { + result[i] = TarEntry.CreateEntryFromFile(list[i]); + } + + return result; + } + + /// + /// Write an entry's header information to a header buffer. + /// + /// + /// The tar entry header buffer to fill in. + /// + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public void WriteEntryHeader(byte[] outBuffer) + { + WriteEntryHeader(outBuffer, null); + } + + /// + /// Write an entry's header information to a header buffer. + /// + /// + /// The tar entry header buffer to fill in. + /// + /// + /// The used for the Name fields, or null for ASCII only + /// + public void WriteEntryHeader(byte[] outBuffer, Encoding nameEncoding) + { + header.WriteHeader(outBuffer, nameEncoding); + } + + /// + /// Convenience method that will modify an entry's name directly + /// in place in an entry header buffer byte array. + /// + /// + /// The buffer containing the entry header to modify. + /// + /// + /// The new name to place into the header buffer. + /// + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + static public void AdjustEntryName(byte[] buffer, string newName) + { + AdjustEntryName(buffer, newName, null); + } + + /// + /// Convenience method that will modify an entry's name directly + /// in place in an entry header buffer byte array. + /// + /// + /// The buffer containing the entry header to modify. + /// + /// + /// The new name to place into the header buffer. + /// + /// + /// The used for the Name fields, or null for ASCII only + /// + static public void AdjustEntryName(byte[] buffer, string newName, Encoding nameEncoding) + { + TarHeader.GetNameBytes(newName, buffer, 0, TarHeader.NAMELEN, nameEncoding); + } + + /// + /// Fill in a TarHeader given only the entry's name. + /// + /// + /// The TarHeader to fill in. + /// + /// + /// The tar entry name. + /// + static public void NameTarHeader(TarHeader header, string name) + { + if (header == null) + { + throw new ArgumentNullException(nameof(header)); + } + + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + bool isDir = name.EndsWith("/", StringComparison.Ordinal); + + header.Name = name; + header.Mode = isDir ? 1003 : 33216; + header.UserId = 0; + header.GroupId = 0; + header.Size = 0; + + header.ModTime = DateTime.UtcNow; + + header.TypeFlag = isDir ? TarHeader.LF_DIR : TarHeader.LF_NORMAL; + + header.LinkName = String.Empty; + header.UserName = String.Empty; + header.GroupName = String.Empty; + + header.DevMajor = 0; + header.DevMinor = 0; + } + + #region Instance Fields + + /// + /// The name of the file this entry represents or null if the entry is not based on a file. + /// + private string file; + + /// + /// The entry's header information. + /// + private TarHeader header; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarEntry.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarEntry.cs.meta new file mode 100644 index 0000000..21704e0 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarEntry.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 18b86f98bcf754e1984932627ede244b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarException.cs new file mode 100644 index 0000000..9d448ca --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarException.cs @@ -0,0 +1,54 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib.Tar +{ + /// + /// TarException represents exceptions specific to Tar classes and code. + /// + [Serializable] + public class TarException : SharpZipBaseException + { + /// + /// Initialise a new instance of . + /// + public TarException() + { + } + + /// + /// Initialise a new instance of with its message string. + /// + /// A that describes the error. + public TarException(string message) + : base(message) + { + } + + /// + /// Initialise a new instance of . + /// + /// A that describes the error. + /// The that caused this exception. + public TarException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the TarException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected TarException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarException.cs.meta new file mode 100644 index 0000000..4c577bb --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dc7e15c22d5e449c2ac79a8aa95244fb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarExtendedHeaderReader.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarExtendedHeaderReader.cs new file mode 100644 index 0000000..d1d438a --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarExtendedHeaderReader.cs @@ -0,0 +1,99 @@ +using System.Collections.Generic; +using System.Text; + +namespace ICSharpCode.SharpZipLib.Tar +{ + /// + /// Reads the extended header of a Tar stream + /// + public class TarExtendedHeaderReader + { + private const byte LENGTH = 0; + private const byte KEY = 1; + private const byte VALUE = 2; + private const byte END = 3; + + private readonly Dictionary headers = new Dictionary(); + + private string[] headerParts = new string[3]; + + private int bbIndex; + private byte[] byteBuffer; + private char[] charBuffer; + + private readonly StringBuilder sb = new StringBuilder(); + private readonly Decoder decoder = Encoding.UTF8.GetDecoder(); + + private int state = LENGTH; + + private static readonly byte[] StateNext = new[] { (byte)' ', (byte)'=', (byte)'\n' }; + + /// + /// Creates a new . + /// + public TarExtendedHeaderReader() + { + ResetBuffers(); + } + + /// + /// Read bytes from + /// + /// + /// + public void Read(byte[] buffer, int length) + { + for (int i = 0; i < length; i++) + { + byte next = buffer[i]; + + if (next == StateNext[state]) + { + Flush(); + headerParts[state] = sb.ToString(); + sb.Clear(); + + if (++state == END) + { + headers.Add(headerParts[KEY], headerParts[VALUE]); + headerParts = new string[3]; + state = LENGTH; + } + } + else + { + byteBuffer[bbIndex++] = next; + if (bbIndex == 4) + Flush(); + } + } + } + + private void Flush() + { + decoder.Convert(byteBuffer, 0, bbIndex, charBuffer, 0, 4, false, out int bytesUsed, out int charsUsed, out bool completed); + + sb.Append(charBuffer, 0, charsUsed); + ResetBuffers(); + } + + private void ResetBuffers() + { + charBuffer = new char[4]; + byteBuffer = new byte[4]; + bbIndex = 0; + } + + /// + /// Returns the parsed headers as key-value strings + /// + public Dictionary Headers + { + get + { + // TODO: Check for invalid state? -NM 2018-07-01 + return headers; + } + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarExtendedHeaderReader.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarExtendedHeaderReader.cs.meta new file mode 100644 index 0000000..aee8b6b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarExtendedHeaderReader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: af6a441f436a24e2e8b59648297743ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarHeader.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarHeader.cs new file mode 100644 index 0000000..3bd1bdf --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarHeader.cs @@ -0,0 +1,1310 @@ +using System; +using System.Text; + +namespace ICSharpCode.SharpZipLib.Tar +{ + /// + /// This class encapsulates the Tar Entry Header used in Tar Archives. + /// The class also holds a number of tar constants, used mostly in headers. + /// + /// + /// The tar format and its POSIX successor PAX have a long history which makes for compatability + /// issues when creating and reading files. + /// + /// This is further complicated by a large number of programs with variations on formats + /// One common issue is the handling of names longer than 100 characters. + /// GNU style long names are currently supported. + /// + /// This is the ustar (Posix 1003.1) header. + /// + /// struct header + /// { + /// char t_name[100]; // 0 Filename + /// char t_mode[8]; // 100 Permissions + /// char t_uid[8]; // 108 Numerical User ID + /// char t_gid[8]; // 116 Numerical Group ID + /// char t_size[12]; // 124 Filesize + /// char t_mtime[12]; // 136 st_mtime + /// char t_chksum[8]; // 148 Checksum + /// char t_typeflag; // 156 Type of File + /// char t_linkname[100]; // 157 Target of Links + /// char t_magic[6]; // 257 "ustar" or other... + /// char t_version[2]; // 263 Version fixed to 00 + /// char t_uname[32]; // 265 User Name + /// char t_gname[32]; // 297 Group Name + /// char t_devmajor[8]; // 329 Major for devices + /// char t_devminor[8]; // 337 Minor for devices + /// char t_prefix[155]; // 345 Prefix for t_name + /// char t_mfill[12]; // 500 Filler up to 512 + /// }; + /// + public class TarHeader + { + #region Constants + + /// + /// The length of the name field in a header buffer. + /// + public const int NAMELEN = 100; + + /// + /// The length of the mode field in a header buffer. + /// + public const int MODELEN = 8; + + /// + /// The length of the user id field in a header buffer. + /// + public const int UIDLEN = 8; + + /// + /// The length of the group id field in a header buffer. + /// + public const int GIDLEN = 8; + + /// + /// The length of the checksum field in a header buffer. + /// + public const int CHKSUMLEN = 8; + + /// + /// Offset of checksum in a header buffer. + /// + public const int CHKSUMOFS = 148; + + /// + /// The length of the size field in a header buffer. + /// + public const int SIZELEN = 12; + + /// + /// The length of the magic field in a header buffer. + /// + public const int MAGICLEN = 6; + + /// + /// The length of the version field in a header buffer. + /// + public const int VERSIONLEN = 2; + + /// + /// The length of the modification time field in a header buffer. + /// + public const int MODTIMELEN = 12; + + /// + /// The length of the user name field in a header buffer. + /// + public const int UNAMELEN = 32; + + /// + /// The length of the group name field in a header buffer. + /// + public const int GNAMELEN = 32; + + /// + /// The length of the devices field in a header buffer. + /// + public const int DEVLEN = 8; + + /// + /// The length of the name prefix field in a header buffer. + /// + public const int PREFIXLEN = 155; + + // + // LF_ constants represent the "type" of an entry + // + + /// + /// The "old way" of indicating a normal file. + /// + public const byte LF_OLDNORM = 0; + + /// + /// Normal file type. + /// + public const byte LF_NORMAL = (byte)'0'; + + /// + /// Link file type. + /// + public const byte LF_LINK = (byte)'1'; + + /// + /// Symbolic link file type. + /// + public const byte LF_SYMLINK = (byte)'2'; + + /// + /// Character device file type. + /// + public const byte LF_CHR = (byte)'3'; + + /// + /// Block device file type. + /// + public const byte LF_BLK = (byte)'4'; + + /// + /// Directory file type. + /// + public const byte LF_DIR = (byte)'5'; + + /// + /// FIFO (pipe) file type. + /// + public const byte LF_FIFO = (byte)'6'; + + /// + /// Contiguous file type. + /// + public const byte LF_CONTIG = (byte)'7'; + + /// + /// Posix.1 2001 global extended header + /// + public const byte LF_GHDR = (byte)'g'; + + /// + /// Posix.1 2001 extended header + /// + public const byte LF_XHDR = (byte)'x'; + + // POSIX allows for upper case ascii type as extensions + + /// + /// Solaris access control list file type + /// + public const byte LF_ACL = (byte)'A'; + + /// + /// GNU dir dump file type + /// This is a dir entry that contains the names of files that were in the + /// dir at the time the dump was made + /// + public const byte LF_GNU_DUMPDIR = (byte)'D'; + + /// + /// Solaris Extended Attribute File + /// + public const byte LF_EXTATTR = (byte)'E'; + + /// + /// Inode (metadata only) no file content + /// + public const byte LF_META = (byte)'I'; + + /// + /// Identifies the next file on the tape as having a long link name + /// + public const byte LF_GNU_LONGLINK = (byte)'K'; + + /// + /// Identifies the next file on the tape as having a long name + /// + public const byte LF_GNU_LONGNAME = (byte)'L'; + + /// + /// Continuation of a file that began on another volume + /// + public const byte LF_GNU_MULTIVOL = (byte)'M'; + + /// + /// For storing filenames that dont fit in the main header (old GNU) + /// + public const byte LF_GNU_NAMES = (byte)'N'; + + /// + /// GNU Sparse file + /// + public const byte LF_GNU_SPARSE = (byte)'S'; + + /// + /// GNU Tape/volume header ignore on extraction + /// + public const byte LF_GNU_VOLHDR = (byte)'V'; + + /// + /// The magic tag representing a POSIX tar archive. (would be written with a trailing NULL) + /// + public const string TMAGIC = "ustar"; + + /// + /// The magic tag representing an old GNU tar archive where version is included in magic and overwrites it + /// + public const string GNU_TMAGIC = "ustar "; + + private const long timeConversionFactor = 10000000L; // 1 tick == 100 nanoseconds + private static readonly DateTime dateTime1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0); + + #endregion Constants + + #region Constructors + + /// + /// Initialise a default TarHeader instance + /// + public TarHeader() + { + Magic = TMAGIC; + Version = " "; + + Name = ""; + LinkName = ""; + + UserId = defaultUserId; + GroupId = defaultGroupId; + UserName = defaultUser; + GroupName = defaultGroupName; + Size = 0; + } + + #endregion Constructors + + #region Properties + + /// + /// Get/set the name for this tar entry. + /// + /// Thrown when attempting to set the property to null. + public string Name + { + get { return name; } + set + { + if (value == null) + { + throw new ArgumentNullException(nameof(value)); + } + name = value; + } + } + + /// + /// Get the name of this entry. + /// + /// The entry's name. + [Obsolete("Use the Name property instead", true)] + public string GetName() + { + return name; + } + + /// + /// Get/set the entry's Unix style permission mode. + /// + public int Mode + { + get { return mode; } + set { mode = value; } + } + + /// + /// The entry's user id. + /// + /// + /// This is only directly relevant to unix systems. + /// The default is zero. + /// + public int UserId + { + get { return userId; } + set { userId = value; } + } + + /// + /// Get/set the entry's group id. + /// + /// + /// This is only directly relevant to linux/unix systems. + /// The default value is zero. + /// + public int GroupId + { + get { return groupId; } + set { groupId = value; } + } + + /// + /// Get/set the entry's size. + /// + /// Thrown when setting the size to less than zero. + public long Size + { + get { return size; } + set + { + if (value < 0) + { + throw new ArgumentOutOfRangeException(nameof(value), "Cannot be less than zero"); + } + size = value; + } + } + + /// + /// Get/set the entry's modification time. + /// + /// + /// The modification time is only accurate to within a second. + /// + /// Thrown when setting the date time to less than 1/1/1970. + public DateTime ModTime + { + get { return modTime; } + set + { + if (value < dateTime1970) + { + throw new ArgumentOutOfRangeException(nameof(value), "ModTime cannot be before Jan 1st 1970"); + } + modTime = new DateTime(value.Year, value.Month, value.Day, value.Hour, value.Minute, value.Second); + } + } + + /// + /// Get the entry's checksum. This is only valid/updated after writing or reading an entry. + /// + public int Checksum + { + get { return checksum; } + } + + /// + /// Get value of true if the header checksum is valid, false otherwise. + /// + public bool IsChecksumValid + { + get { return isChecksumValid; } + } + + /// + /// Get/set the entry's type flag. + /// + public byte TypeFlag + { + get { return typeFlag; } + set { typeFlag = value; } + } + + /// + /// The entry's link name. + /// + /// Thrown when attempting to set LinkName to null. + public string LinkName + { + get { return linkName; } + set + { + if (value == null) + { + throw new ArgumentNullException(nameof(value)); + } + linkName = value; + } + } + + /// + /// Get/set the entry's magic tag. + /// + /// Thrown when attempting to set Magic to null. + public string Magic + { + get { return magic; } + set + { + if (value == null) + { + throw new ArgumentNullException(nameof(value)); + } + magic = value; + } + } + + /// + /// The entry's version. + /// + /// Thrown when attempting to set Version to null. + public string Version + { + get + { + return version; + } + + set + { + if (value == null) + { + throw new ArgumentNullException(nameof(value)); + } + version = value; + } + } + + /// + /// The entry's user name. + /// + public string UserName + { + get { return userName; } + set + { + if (value != null) + { + userName = value.Substring(0, Math.Min(UNAMELEN, value.Length)); + } + else + { + string currentUser = "user"; + if (currentUser.Length > UNAMELEN) + { + currentUser = currentUser.Substring(0, UNAMELEN); + } + userName = currentUser; + } + } + } + + /// + /// Get/set the entry's group name. + /// + /// + /// This is only directly relevant to unix systems. + /// + public string GroupName + { + get { return groupName; } + set + { + if (value == null) + { + groupName = "None"; + } + else + { + groupName = value; + } + } + } + + /// + /// Get/set the entry's major device number. + /// + public int DevMajor + { + get { return devMajor; } + set { devMajor = value; } + } + + /// + /// Get/set the entry's minor device number. + /// + public int DevMinor + { + get { return devMinor; } + set { devMinor = value; } + } + + #endregion Properties + + #region ICloneable Members + + /// + /// Create a new that is a copy of the current instance. + /// + /// A new that is a copy of the current instance. + public object Clone() + { + return this.MemberwiseClone(); + } + + #endregion ICloneable Members + + /// + /// Parse TarHeader information from a header buffer. + /// + /// + /// The tar entry header buffer to get information from. + /// + /// + /// The used for the Name field, or null for ASCII only + /// + public void ParseBuffer(byte[] header, Encoding nameEncoding) + { + if (header == null) + { + throw new ArgumentNullException(nameof(header)); + } + + int offset = 0; + + name = ParseName(header, offset, NAMELEN, nameEncoding).ToString(); + offset += NAMELEN; + + mode = (int)ParseOctal(header, offset, MODELEN); + offset += MODELEN; + + UserId = (int)ParseOctal(header, offset, UIDLEN); + offset += UIDLEN; + + GroupId = (int)ParseOctal(header, offset, GIDLEN); + offset += GIDLEN; + + Size = ParseBinaryOrOctal(header, offset, SIZELEN); + offset += SIZELEN; + + ModTime = GetDateTimeFromCTime(ParseOctal(header, offset, MODTIMELEN)); + offset += MODTIMELEN; + + checksum = (int)ParseOctal(header, offset, CHKSUMLEN); + offset += CHKSUMLEN; + + TypeFlag = header[offset++]; + + LinkName = ParseName(header, offset, NAMELEN, nameEncoding).ToString(); + offset += NAMELEN; + + Magic = ParseName(header, offset, MAGICLEN, nameEncoding).ToString(); + offset += MAGICLEN; + + if (Magic == "ustar") + { + Version = ParseName(header, offset, VERSIONLEN, nameEncoding).ToString(); + offset += VERSIONLEN; + + UserName = ParseName(header, offset, UNAMELEN, nameEncoding).ToString(); + offset += UNAMELEN; + + GroupName = ParseName(header, offset, GNAMELEN, nameEncoding).ToString(); + offset += GNAMELEN; + + DevMajor = (int)ParseOctal(header, offset, DEVLEN); + offset += DEVLEN; + + DevMinor = (int)ParseOctal(header, offset, DEVLEN); + offset += DEVLEN; + + string prefix = ParseName(header, offset, PREFIXLEN, nameEncoding).ToString(); + if (!string.IsNullOrEmpty(prefix)) Name = prefix + '/' + Name; + } + + isChecksumValid = Checksum == TarHeader.MakeCheckSum(header); + } + + /// + /// Parse TarHeader information from a header buffer. + /// + /// + /// The tar entry header buffer to get information from. + /// + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public void ParseBuffer(byte[] header) + { + ParseBuffer(header, null); + } + + /// + /// 'Write' header information to buffer provided, updating the check sum. + /// + /// output buffer for header information + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public void WriteHeader(byte[] outBuffer) + { + WriteHeader(outBuffer, null); + } + + /// + /// 'Write' header information to buffer provided, updating the check sum. + /// + /// output buffer for header information + /// The used for the Name field, or null for ASCII only + public void WriteHeader(byte[] outBuffer, Encoding nameEncoding) + { + if (outBuffer == null) + { + throw new ArgumentNullException(nameof(outBuffer)); + } + + int offset = 0; + + offset = GetNameBytes(Name, outBuffer, offset, NAMELEN, nameEncoding); + offset = GetOctalBytes(mode, outBuffer, offset, MODELEN); + offset = GetOctalBytes(UserId, outBuffer, offset, UIDLEN); + offset = GetOctalBytes(GroupId, outBuffer, offset, GIDLEN); + + offset = GetBinaryOrOctalBytes(Size, outBuffer, offset, SIZELEN); + offset = GetOctalBytes(GetCTime(ModTime), outBuffer, offset, MODTIMELEN); + + int csOffset = offset; + for (int c = 0; c < CHKSUMLEN; ++c) + { + outBuffer[offset++] = (byte)' '; + } + + outBuffer[offset++] = TypeFlag; + + offset = GetNameBytes(LinkName, outBuffer, offset, NAMELEN, nameEncoding); + offset = GetAsciiBytes(Magic, 0, outBuffer, offset, MAGICLEN, nameEncoding); + offset = GetNameBytes(Version, outBuffer, offset, VERSIONLEN, nameEncoding); + offset = GetNameBytes(UserName, outBuffer, offset, UNAMELEN, nameEncoding); + offset = GetNameBytes(GroupName, outBuffer, offset, GNAMELEN, nameEncoding); + + if ((TypeFlag == LF_CHR) || (TypeFlag == LF_BLK)) + { + offset = GetOctalBytes(DevMajor, outBuffer, offset, DEVLEN); + offset = GetOctalBytes(DevMinor, outBuffer, offset, DEVLEN); + } + + for (; offset < outBuffer.Length;) + { + outBuffer[offset++] = 0; + } + + checksum = ComputeCheckSum(outBuffer); + + GetCheckSumOctalBytes(checksum, outBuffer, csOffset, CHKSUMLEN); + isChecksumValid = true; + } + + /// + /// Get a hash code for the current object. + /// + /// A hash code for the current object. + public override int GetHashCode() + { + return Name.GetHashCode(); + } + + /// + /// Determines if this instance is equal to the specified object. + /// + /// The object to compare with. + /// true if the objects are equal, false otherwise. + public override bool Equals(object obj) + { + var localHeader = obj as TarHeader; + + bool result; + if (localHeader != null) + { + result = (name == localHeader.name) + && (mode == localHeader.mode) + && (UserId == localHeader.UserId) + && (GroupId == localHeader.GroupId) + && (Size == localHeader.Size) + && (ModTime == localHeader.ModTime) + && (Checksum == localHeader.Checksum) + && (TypeFlag == localHeader.TypeFlag) + && (LinkName == localHeader.LinkName) + && (Magic == localHeader.Magic) + && (Version == localHeader.Version) + && (UserName == localHeader.UserName) + && (GroupName == localHeader.GroupName) + && (DevMajor == localHeader.DevMajor) + && (DevMinor == localHeader.DevMinor); + } + else + { + result = false; + } + return result; + } + + /// + /// Set defaults for values used when constructing a TarHeader instance. + /// + /// Value to apply as a default for userId. + /// Value to apply as a default for userName. + /// Value to apply as a default for groupId. + /// Value to apply as a default for groupName. + static internal void SetValueDefaults(int userId, string userName, int groupId, string groupName) + { + defaultUserId = userIdAsSet = userId; + defaultUser = userNameAsSet = userName; + defaultGroupId = groupIdAsSet = groupId; + defaultGroupName = groupNameAsSet = groupName; + } + + static internal void RestoreSetValues() + { + defaultUserId = userIdAsSet; + defaultUser = userNameAsSet; + defaultGroupId = groupIdAsSet; + defaultGroupName = groupNameAsSet; + } + + // Return value that may be stored in octal or binary. Length must exceed 8. + // + static private long ParseBinaryOrOctal(byte[] header, int offset, int length) + { + if (header[offset] >= 0x80) + { + // File sizes over 8GB are stored in 8 right-justified bytes of binary indicated by setting the high-order bit of the leftmost byte of a numeric field. + long result = 0; + for (int pos = length - 8; pos < length; pos++) + { + result = result << 8 | header[offset + pos]; + } + return result; + } + return ParseOctal(header, offset, length); + } + + /// + /// Parse an octal string from a header buffer. + /// + /// The header buffer from which to parse. + /// The offset into the buffer from which to parse. + /// The number of header bytes to parse. + /// The long equivalent of the octal string. + static public long ParseOctal(byte[] header, int offset, int length) + { + if (header == null) + { + throw new ArgumentNullException(nameof(header)); + } + + long result = 0; + bool stillPadding = true; + + int end = offset + length; + for (int i = offset; i < end; ++i) + { + if (header[i] == 0) + { + break; + } + + if (header[i] == (byte)' ' || header[i] == '0') + { + if (stillPadding) + { + continue; + } + + if (header[i] == (byte)' ') + { + break; + } + } + + stillPadding = false; + + result = (result << 3) + (header[i] - '0'); + } + + return result; + } + + /// + /// Parse a name from a header buffer. + /// + /// + /// The header buffer from which to parse. + /// + /// + /// The offset into the buffer from which to parse. + /// + /// + /// The number of header bytes to parse. + /// + /// + /// The name parsed. + /// + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + static public StringBuilder ParseName(byte[] header, int offset, int length) + { + return ParseName(header, offset, length, null); + } + + /// + /// Parse a name from a header buffer. + /// + /// + /// The header buffer from which to parse. + /// + /// + /// The offset into the buffer from which to parse. + /// + /// + /// The number of header bytes to parse. + /// + /// + /// name encoding, or null for ASCII only + /// + /// + /// The name parsed. + /// + static public StringBuilder ParseName(byte[] header, int offset, int length, Encoding encoding) + { + if (header == null) + { + throw new ArgumentNullException(nameof(header)); + } + + if (offset < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset), "Cannot be less than zero"); + } + + if (length < 0) + { + throw new ArgumentOutOfRangeException(nameof(length), "Cannot be less than zero"); + } + + if (offset + length > header.Length) + { + throw new ArgumentException("Exceeds header size", nameof(length)); + } + + var result = new StringBuilder(length); + + int count = 0; + if(encoding == null) + { + for (int i = offset; i < offset + length; ++i) + { + if (header[i] == 0) + { + break; + } + result.Append((char)header[i]); + } + } + else + { + for(int i = offset; i < offset + length; ++i, ++count) + { + if(header[i] == 0) + { + break; + } + } + result.Append(encoding.GetString(header, offset, count)); + } + + return result; + } + + /// + /// Add name to the buffer as a collection of bytes + /// + /// The name to add + /// The offset of the first character + /// The buffer to add to + /// The index of the first byte to add + /// The number of characters/bytes to add + /// The next free index in the + public static int GetNameBytes(StringBuilder name, int nameOffset, byte[] buffer, int bufferOffset, int length) + { + return GetNameBytes(name.ToString(), nameOffset, buffer, bufferOffset, length, null); + } + + /// + /// Add name to the buffer as a collection of bytes + /// + /// The name to add + /// The offset of the first character + /// The buffer to add to + /// The index of the first byte to add + /// The number of characters/bytes to add + /// The next free index in the + public static int GetNameBytes(string name, int nameOffset, byte[] buffer, int bufferOffset, int length) + { + return GetNameBytes(name, nameOffset, buffer, bufferOffset, length, null); + } + + /// + /// Add name to the buffer as a collection of bytes + /// + /// The name to add + /// The offset of the first character + /// The buffer to add to + /// The index of the first byte to add + /// The number of characters/bytes to add + /// name encoding, or null for ASCII only + /// The next free index in the + public static int GetNameBytes(string name, int nameOffset, byte[] buffer, int bufferOffset, int length, Encoding encoding) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + int i; + if(encoding != null) + { + // it can be more sufficient if using Span or unsafe + var nameArray = name.ToCharArray(nameOffset, Math.Min(name.Length - nameOffset, length)); + // it can be more sufficient if using Span(or unsafe?) and ArrayPool for temporary buffer + var bytes = encoding.GetBytes(nameArray, 0, nameArray.Length); + i = Math.Min(bytes.Length, length); + Array.Copy(bytes, 0, buffer, bufferOffset, i); + } + else + { + for (i = 0; i < length && nameOffset + i < name.Length; ++i) + { + buffer[bufferOffset + i] = (byte)name[nameOffset + i]; + } + } + + for (; i < length; ++i) + { + buffer[bufferOffset + i] = 0; + } + return bufferOffset + length; + } + /// + /// Add an entry name to the buffer + /// + /// + /// The name to add + /// + /// + /// The buffer to add to + /// + /// + /// The offset into the buffer from which to start adding + /// + /// + /// The number of header bytes to add + /// + /// + /// The index of the next free byte in the buffer + /// + /// TODO: what should be default behavior?(omit upper byte or UTF8?) + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public static int GetNameBytes(StringBuilder name, byte[] buffer, int offset, int length) + { + return GetNameBytes(name, buffer, offset, length, null); + } + + /// + /// Add an entry name to the buffer + /// + /// + /// The name to add + /// + /// + /// The buffer to add to + /// + /// + /// The offset into the buffer from which to start adding + /// + /// + /// The number of header bytes to add + /// + /// + /// + /// + /// The index of the next free byte in the buffer + /// + public static int GetNameBytes(StringBuilder name, byte[] buffer, int offset, int length, Encoding encoding) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + return GetNameBytes(name.ToString(), 0, buffer, offset, length, encoding); + } + + /// + /// Add an entry name to the buffer + /// + /// The name to add + /// The buffer to add to + /// The offset into the buffer from which to start adding + /// The number of header bytes to add + /// The index of the next free byte in the buffer + /// TODO: what should be default behavior?(omit upper byte or UTF8?) + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public static int GetNameBytes(string name, byte[] buffer, int offset, int length) + { + return GetNameBytes(name, buffer, offset, length, null); + } + + /// + /// Add an entry name to the buffer + /// + /// The name to add + /// The buffer to add to + /// The offset into the buffer from which to start adding + /// The number of header bytes to add + /// + /// The index of the next free byte in the buffer + public static int GetNameBytes(string name, byte[] buffer, int offset, int length, Encoding encoding) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + return GetNameBytes(name, 0, buffer, offset, length, encoding); + } + /// + /// Add a string to a buffer as a collection of ascii bytes. + /// + /// The string to add + /// The offset of the first character to add. + /// The buffer to add to. + /// The offset to start adding at. + /// The number of ascii characters to add. + /// The next free index in the buffer. + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public static int GetAsciiBytes(string toAdd, int nameOffset, byte[] buffer, int bufferOffset, int length) + { + return GetAsciiBytes(toAdd, nameOffset, buffer, bufferOffset, length, null); + } + + /// + /// Add a string to a buffer as a collection of ascii bytes. + /// + /// The string to add + /// The offset of the first character to add. + /// The buffer to add to. + /// The offset to start adding at. + /// The number of ascii characters to add. + /// String encoding, or null for ASCII only + /// The next free index in the buffer. + public static int GetAsciiBytes(string toAdd, int nameOffset, byte[] buffer, int bufferOffset, int length, Encoding encoding) + { + if (toAdd == null) + { + throw new ArgumentNullException(nameof(toAdd)); + } + + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + int i; + if(encoding == null) + { + for (i = 0; i < length && nameOffset + i < toAdd.Length; ++i) + { + buffer[bufferOffset + i] = (byte)toAdd[nameOffset + i]; + } + } + else + { + // It can be more sufficient if using unsafe code or Span(ToCharArray can be omitted) + var chars = toAdd.ToCharArray(); + // It can be more sufficient if using Span(or unsafe?) and ArrayPool for temporary buffer + var bytes = encoding.GetBytes(chars, nameOffset, Math.Min(toAdd.Length - nameOffset, length)); + i = Math.Min(bytes.Length, length); + Array.Copy(bytes, 0, buffer, bufferOffset, i); + } + // If length is beyond the toAdd string length (which is OK by the prev loop condition), eg if a field has fixed length and the string is shorter, make sure all of the extra chars are written as NULLs, so that the reader func would ignore them and get back the original string + for (; i < length; ++i) + buffer[bufferOffset + i] = 0; + return bufferOffset + length; + } + + /// + /// Put an octal representation of a value into a buffer + /// + /// + /// the value to be converted to octal + /// + /// + /// buffer to store the octal string + /// + /// + /// The offset into the buffer where the value starts + /// + /// + /// The length of the octal string to create + /// + /// + /// The offset of the character next byte after the octal string + /// + public static int GetOctalBytes(long value, byte[] buffer, int offset, int length) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + int localIndex = length - 1; + + // Either a space or null is valid here. We use NULL as per GNUTar + buffer[offset + localIndex] = 0; + --localIndex; + + if (value > 0) + { + for (long v = value; (localIndex >= 0) && (v > 0); --localIndex) + { + buffer[offset + localIndex] = (byte)((byte)'0' + (byte)(v & 7)); + v >>= 3; + } + } + + for (; localIndex >= 0; --localIndex) + { + buffer[offset + localIndex] = (byte)'0'; + } + + return offset + length; + } + + /// + /// Put an octal or binary representation of a value into a buffer + /// + /// Value to be convert to octal + /// The buffer to update + /// The offset into the buffer to store the value + /// The length of the octal string. Must be 12. + /// Index of next byte + private static int GetBinaryOrOctalBytes(long value, byte[] buffer, int offset, int length) + { + if (value > 0x1FFFFFFFF) + { // Octal 77777777777 (11 digits) + // Put value as binary, right-justified into the buffer. Set high order bit of left-most byte. + for (int pos = length - 1; pos > 0; pos--) + { + buffer[offset + pos] = (byte)value; + value = value >> 8; + } + buffer[offset] = 0x80; + return offset + length; + } + return GetOctalBytes(value, buffer, offset, length); + } + + /// + /// Add the checksum integer to header buffer. + /// + /// + /// The header buffer to set the checksum for + /// The offset into the buffer for the checksum + /// The number of header bytes to update. + /// It's formatted differently from the other fields: it has 6 digits, a + /// null, then a space -- rather than digits, a space, then a null. + /// The final space is already there, from checksumming + /// + /// The modified buffer offset + private static void GetCheckSumOctalBytes(long value, byte[] buffer, int offset, int length) + { + GetOctalBytes(value, buffer, offset, length - 1); + } + + /// + /// Compute the checksum for a tar entry header. + /// The checksum field must be all spaces prior to this happening + /// + /// The tar entry's header buffer. + /// The computed checksum. + private static int ComputeCheckSum(byte[] buffer) + { + int sum = 0; + for (int i = 0; i < buffer.Length; ++i) + { + sum += buffer[i]; + } + return sum; + } + + /// + /// Make a checksum for a tar entry ignoring the checksum contents. + /// + /// The tar entry's header buffer. + /// The checksum for the buffer + private static int MakeCheckSum(byte[] buffer) + { + int sum = 0; + for (int i = 0; i < CHKSUMOFS; ++i) + { + sum += buffer[i]; + } + + for (int i = 0; i < CHKSUMLEN; ++i) + { + sum += (byte)' '; + } + + for (int i = CHKSUMOFS + CHKSUMLEN; i < buffer.Length; ++i) + { + sum += buffer[i]; + } + return sum; + } + + private static int GetCTime(DateTime dateTime) + { + return unchecked((int)((dateTime.Ticks - dateTime1970.Ticks) / timeConversionFactor)); + } + + private static DateTime GetDateTimeFromCTime(long ticks) + { + DateTime result; + + try + { + result = new DateTime(dateTime1970.Ticks + ticks * timeConversionFactor); + } + catch (ArgumentOutOfRangeException) + { + result = dateTime1970; + } + return result; + } + + #region Instance Fields + + private string name; + private int mode; + private int userId; + private int groupId; + private long size; + private DateTime modTime; + private int checksum; + private bool isChecksumValid; + private byte typeFlag; + private string linkName; + private string magic; + private string version; + private string userName; + private string groupName; + private int devMajor; + private int devMinor; + + #endregion Instance Fields + + #region Class Fields + + // Values used during recursive operations. + static internal int userIdAsSet; + + static internal int groupIdAsSet; + static internal string userNameAsSet; + static internal string groupNameAsSet = "None"; + + static internal int defaultUserId; + static internal int defaultGroupId; + static internal string defaultGroupName = "None"; + static internal string defaultUser; + + #endregion Class Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarHeader.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarHeader.cs.meta new file mode 100644 index 0000000..8e2d340 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarHeader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 90f2f3de26e044305a3f96c26c908e36 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs new file mode 100644 index 0000000..f1a3622 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs @@ -0,0 +1,771 @@ +using System; +using System.IO; +using System.Text; + +namespace ICSharpCode.SharpZipLib.Tar +{ + /// + /// The TarInputStream reads a UNIX tar archive as an InputStream. + /// methods are provided to position at each successive entry in + /// the archive, and the read each entry as a normal input stream + /// using read(). + /// + public class TarInputStream : Stream + { + #region Constructors + + /// + /// Construct a TarInputStream with default block factor + /// + /// stream to source data from + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public TarInputStream(Stream inputStream) + : this(inputStream, TarBuffer.DefaultBlockFactor, null) + { + } + /// + /// Construct a TarInputStream with default block factor + /// + /// stream to source data from + /// The used for the Name fields, or null for ASCII only + public TarInputStream(Stream inputStream, Encoding nameEncoding) + : this(inputStream, TarBuffer.DefaultBlockFactor, nameEncoding) + { + } + + /// + /// Construct a TarInputStream with user specified block factor + /// + /// stream to source data from + /// block factor to apply to archive + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public TarInputStream(Stream inputStream, int blockFactor) + { + this.inputStream = inputStream; + tarBuffer = TarBuffer.CreateInputTarBuffer(inputStream, blockFactor); + encoding = null; + } + + /// + /// Construct a TarInputStream with user specified block factor + /// + /// stream to source data from + /// block factor to apply to archive + /// The used for the Name fields, or null for ASCII only + public TarInputStream(Stream inputStream, int blockFactor, Encoding nameEncoding) + { + this.inputStream = inputStream; + tarBuffer = TarBuffer.CreateInputTarBuffer(inputStream, blockFactor); + encoding = nameEncoding; + } + + #endregion Constructors + + /// + /// Gets or sets a flag indicating ownership of underlying stream. + /// When the flag is true will close the underlying stream also. + /// + /// The default value is true. + public bool IsStreamOwner + { + get { return tarBuffer.IsStreamOwner; } + set { tarBuffer.IsStreamOwner = value; } + } + + #region Stream Overrides + + /// + /// Gets a value indicating whether the current stream supports reading + /// + public override bool CanRead + { + get + { + return inputStream.CanRead; + } + } + + /// + /// Gets a value indicating whether the current stream supports seeking + /// This property always returns false. + /// + public override bool CanSeek + { + get + { + return false; + } + } + + /// + /// Gets a value indicating if the stream supports writing. + /// This property always returns false. + /// + public override bool CanWrite + { + get + { + return false; + } + } + + /// + /// The length in bytes of the stream + /// + public override long Length + { + get + { + return inputStream.Length; + } + } + + /// + /// Gets or sets the position within the stream. + /// Setting the Position is not supported and throws a NotSupportedExceptionNotSupportedException + /// + /// Any attempt to set position + public override long Position + { + get + { + return inputStream.Position; + } + set + { + throw new NotSupportedException("TarInputStream Seek not supported"); + } + } + + /// + /// Flushes the baseInputStream + /// + public override void Flush() + { + inputStream.Flush(); + } + + /// + /// Set the streams position. This operation is not supported and will throw a NotSupportedException + /// + /// The offset relative to the origin to seek to. + /// The to start seeking from. + /// The new position in the stream. + /// Any access + public override long Seek(long offset, SeekOrigin origin) + { + throw new NotSupportedException("TarInputStream Seek not supported"); + } + + /// + /// Sets the length of the stream + /// This operation is not supported and will throw a NotSupportedException + /// + /// The new stream length. + /// Any access + public override void SetLength(long value) + { + throw new NotSupportedException("TarInputStream SetLength not supported"); + } + + /// + /// Writes a block of bytes to this stream using data from a buffer. + /// This operation is not supported and will throw a NotSupportedException + /// + /// The buffer containing bytes to write. + /// The offset in the buffer of the frist byte to write. + /// The number of bytes to write. + /// Any access + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotSupportedException("TarInputStream Write not supported"); + } + + /// + /// Writes a byte to the current position in the file stream. + /// This operation is not supported and will throw a NotSupportedException + /// + /// The byte value to write. + /// Any access + public override void WriteByte(byte value) + { + throw new NotSupportedException("TarInputStream WriteByte not supported"); + } + + /// + /// Reads a byte from the current tar archive entry. + /// + /// A byte cast to an int; -1 if the at the end of the stream. + public override int ReadByte() + { + byte[] oneByteBuffer = new byte[1]; + int num = Read(oneByteBuffer, 0, 1); + if (num <= 0) + { + // return -1 to indicate that no byte was read. + return -1; + } + return oneByteBuffer[0]; + } + + /// + /// Reads bytes from the current tar archive entry. + /// + /// This method is aware of the boundaries of the current + /// entry in the archive and will deal with them appropriately + /// + /// + /// The buffer into which to place bytes read. + /// + /// + /// The offset at which to place bytes read. + /// + /// + /// The number of bytes to read. + /// + /// + /// The number of bytes read, or 0 at end of stream/EOF. + /// + public override int Read(byte[] buffer, int offset, int count) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + int totalRead = 0; + + if (entryOffset >= entrySize) + { + return 0; + } + + long numToRead = count; + + if ((numToRead + entryOffset) > entrySize) + { + numToRead = entrySize - entryOffset; + } + + if (readBuffer != null) + { + int sz = (numToRead > readBuffer.Length) ? readBuffer.Length : (int)numToRead; + + Array.Copy(readBuffer, 0, buffer, offset, sz); + + if (sz >= readBuffer.Length) + { + readBuffer = null; + } + else + { + int newLen = readBuffer.Length - sz; + byte[] newBuf = new byte[newLen]; + Array.Copy(readBuffer, sz, newBuf, 0, newLen); + readBuffer = newBuf; + } + + totalRead += sz; + numToRead -= sz; + offset += sz; + } + + while (numToRead > 0) + { + byte[] rec = tarBuffer.ReadBlock(); + if (rec == null) + { + // Unexpected EOF! + throw new TarException("unexpected EOF with " + numToRead + " bytes unread"); + } + + var sz = (int)numToRead; + int recLen = rec.Length; + + if (recLen > sz) + { + Array.Copy(rec, 0, buffer, offset, sz); + readBuffer = new byte[recLen - sz]; + Array.Copy(rec, sz, readBuffer, 0, recLen - sz); + } + else + { + sz = recLen; + Array.Copy(rec, 0, buffer, offset, recLen); + } + + totalRead += sz; + numToRead -= sz; + offset += sz; + } + + entryOffset += totalRead; + + return totalRead; + } + + /// + /// Closes this stream. Calls the TarBuffer's close() method. + /// The underlying stream is closed by the TarBuffer. + /// + protected override void Dispose(bool disposing) + { + if (disposing) + { + tarBuffer.Close(); + } + } + + #endregion Stream Overrides + + /// + /// Set the entry factory for this instance. + /// + /// The factory for creating new entries + public void SetEntryFactory(IEntryFactory factory) + { + entryFactory = factory; + } + + /// + /// Get the record size being used by this stream's TarBuffer. + /// + public int RecordSize + { + get { return tarBuffer.RecordSize; } + } + + /// + /// Get the record size being used by this stream's TarBuffer. + /// + /// + /// TarBuffer record size. + /// + [Obsolete("Use RecordSize property instead")] + public int GetRecordSize() + { + return tarBuffer.RecordSize; + } + + /// + /// Get the available data that can be read from the current + /// entry in the archive. This does not indicate how much data + /// is left in the entire archive, only in the current entry. + /// This value is determined from the entry's size header field + /// and the amount of data already read from the current entry. + /// + /// + /// The number of available bytes for the current entry. + /// + public long Available + { + get + { + return entrySize - entryOffset; + } + } + + /// + /// Skip bytes in the input buffer. This skips bytes in the + /// current entry's data, not the entire archive, and will + /// stop at the end of the current entry's data if the number + /// to skip extends beyond that point. + /// + /// + /// The number of bytes to skip. + /// + public void Skip(long skipCount) + { + // TODO: REVIEW efficiency of TarInputStream.Skip + // This is horribly inefficient, but it ensures that we + // properly skip over bytes via the TarBuffer... + // + byte[] skipBuf = new byte[8 * 1024]; + + for (long num = skipCount; num > 0;) + { + int toRead = num > skipBuf.Length ? skipBuf.Length : (int)num; + int numRead = Read(skipBuf, 0, toRead); + + if (numRead == -1) + { + break; + } + + num -= numRead; + } + } + + /// + /// Return a value of true if marking is supported; false otherwise. + /// + /// Currently marking is not supported, the return value is always false. + public bool IsMarkSupported + { + get + { + return false; + } + } + + /// + /// Since we do not support marking just yet, we do nothing. + /// + /// + /// The limit to mark. + /// + public void Mark(int markLimit) + { + } + + /// + /// Since we do not support marking just yet, we do nothing. + /// + public void Reset() + { + } + + /// + /// Get the next entry in this tar archive. This will skip + /// over any remaining data in the current entry, if there + /// is one, and place the input stream at the header of the + /// next entry, and read the header and instantiate a new + /// TarEntry from the header bytes and return that entry. + /// If there are no more entries in the archive, null will + /// be returned to indicate that the end of the archive has + /// been reached. + /// + /// + /// The next TarEntry in the archive, or null. + /// + public TarEntry GetNextEntry() + { + if (hasHitEOF) + { + return null; + } + + if (currentEntry != null) + { + SkipToNextEntry(); + } + + byte[] headerBuf = tarBuffer.ReadBlock(); + + if (headerBuf == null) + { + hasHitEOF = true; + } + else if (TarBuffer.IsEndOfArchiveBlock(headerBuf)) + { + hasHitEOF = true; + + // Read the second zero-filled block + tarBuffer.ReadBlock(); + } + else + { + hasHitEOF = false; + } + + if (hasHitEOF) + { + currentEntry = null; + } + else + { + try + { + var header = new TarHeader(); + header.ParseBuffer(headerBuf, encoding); + if (!header.IsChecksumValid) + { + throw new TarException("Header checksum is invalid"); + } + this.entryOffset = 0; + this.entrySize = header.Size; + + StringBuilder longName = null; + + if (header.TypeFlag == TarHeader.LF_GNU_LONGNAME) + { + byte[] nameBuffer = new byte[TarBuffer.BlockSize]; + long numToRead = this.entrySize; + + longName = new StringBuilder(); + + while (numToRead > 0) + { + int numRead = this.Read(nameBuffer, 0, (numToRead > nameBuffer.Length ? nameBuffer.Length : (int)numToRead)); + + if (numRead == -1) + { + throw new InvalidHeaderException("Failed to read long name entry"); + } + + longName.Append(TarHeader.ParseName(nameBuffer, 0, numRead, encoding).ToString()); + numToRead -= numRead; + } + + SkipToNextEntry(); + headerBuf = this.tarBuffer.ReadBlock(); + } + else if (header.TypeFlag == TarHeader.LF_GHDR) + { // POSIX global extended header + // Ignore things we dont understand completely for now + SkipToNextEntry(); + headerBuf = this.tarBuffer.ReadBlock(); + } + else if (header.TypeFlag == TarHeader.LF_XHDR) + { // POSIX extended header + byte[] nameBuffer = new byte[TarBuffer.BlockSize]; + long numToRead = this.entrySize; + + var xhr = new TarExtendedHeaderReader(); + + while (numToRead > 0) + { + int numRead = this.Read(nameBuffer, 0, (numToRead > nameBuffer.Length ? nameBuffer.Length : (int)numToRead)); + + if (numRead == -1) + { + throw new InvalidHeaderException("Failed to read long name entry"); + } + + xhr.Read(nameBuffer, numRead); + numToRead -= numRead; + } + + if (xhr.Headers.TryGetValue("path", out string name)) + { + longName = new StringBuilder(name); + } + + SkipToNextEntry(); + headerBuf = this.tarBuffer.ReadBlock(); + } + else if (header.TypeFlag == TarHeader.LF_GNU_VOLHDR) + { + // TODO: could show volume name when verbose + SkipToNextEntry(); + headerBuf = this.tarBuffer.ReadBlock(); + } + else if (header.TypeFlag != TarHeader.LF_NORMAL && + header.TypeFlag != TarHeader.LF_OLDNORM && + header.TypeFlag != TarHeader.LF_LINK && + header.TypeFlag != TarHeader.LF_SYMLINK && + header.TypeFlag != TarHeader.LF_DIR) + { + // Ignore things we dont understand completely for now + SkipToNextEntry(); + headerBuf = tarBuffer.ReadBlock(); + } + + if (entryFactory == null) + { + currentEntry = new TarEntry(headerBuf, encoding); + if (longName != null) + { + currentEntry.Name = longName.ToString(); + } + } + else + { + currentEntry = entryFactory.CreateEntry(headerBuf); + } + + // Magic was checked here for 'ustar' but there are multiple valid possibilities + // so this is not done anymore. + + entryOffset = 0; + + // TODO: Review How do we resolve this discrepancy?! + entrySize = this.currentEntry.Size; + } + catch (InvalidHeaderException ex) + { + entrySize = 0; + entryOffset = 0; + currentEntry = null; + string errorText = string.Format("Bad header in record {0} block {1} {2}", + tarBuffer.CurrentRecord, tarBuffer.CurrentBlock, ex.Message); + throw new InvalidHeaderException(errorText); + } + } + return currentEntry; + } + + /// + /// Copies the contents of the current tar archive entry directly into + /// an output stream. + /// + /// + /// The OutputStream into which to write the entry's data. + /// + public void CopyEntryContents(Stream outputStream) + { + byte[] tempBuffer = new byte[32 * 1024]; + + while (true) + { + int numRead = Read(tempBuffer, 0, tempBuffer.Length); + if (numRead <= 0) + { + break; + } + outputStream.Write(tempBuffer, 0, numRead); + } + } + + private void SkipToNextEntry() + { + long numToSkip = entrySize - entryOffset; + + if (numToSkip > 0) + { + Skip(numToSkip); + } + + readBuffer = null; + } + + /// + /// This interface is provided, along with the method , to allow + /// the programmer to have their own subclass instantiated for the + /// entries return from . + /// + public interface IEntryFactory + { + // This interface does not considering name encoding. + // How this interface should be? + /// + /// Create an entry based on name alone + /// + /// + /// Name of the new EntryPointNotFoundException to create + /// + /// created TarEntry or descendant class + TarEntry CreateEntry(string name); + + /// + /// Create an instance based on an actual file + /// + /// + /// Name of file to represent in the entry + /// + /// + /// Created TarEntry or descendant class + /// + TarEntry CreateEntryFromFile(string fileName); + + /// + /// Create a tar entry based on the header information passed + /// + /// + /// Buffer containing header information to create an entry from. + /// + /// + /// Created TarEntry or descendant class + /// + TarEntry CreateEntry(byte[] headerBuffer); + } + + /// + /// Standard entry factory class creating instances of the class TarEntry + /// + public class EntryFactoryAdapter : IEntryFactory + { + Encoding nameEncoding; + /// + /// Construct standard entry factory class with ASCII name encoding + /// + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public EntryFactoryAdapter() + { + } + /// + /// Construct standard entry factory with name encoding + /// + /// The used for the Name fields, or null for ASCII only + public EntryFactoryAdapter(Encoding nameEncoding) + { + this.nameEncoding = nameEncoding; + } + /// + /// Create a based on named + /// + /// The name to use for the entry + /// A new + public TarEntry CreateEntry(string name) + { + return TarEntry.CreateTarEntry(name); + } + + /// + /// Create a tar entry with details obtained from file + /// + /// The name of the file to retrieve details from. + /// A new + public TarEntry CreateEntryFromFile(string fileName) + { + return TarEntry.CreateEntryFromFile(fileName); + } + + /// + /// Create an entry based on details in header + /// + /// The buffer containing entry details. + /// A new + public TarEntry CreateEntry(byte[] headerBuffer) + { + return new TarEntry(headerBuffer, nameEncoding); + } + } + + #region Instance Fields + + /// + /// Flag set when last block has been read + /// + protected bool hasHitEOF; + + /// + /// Size of this entry as recorded in header + /// + protected long entrySize; + + /// + /// Number of bytes read for this entry so far + /// + protected long entryOffset; + + /// + /// Buffer used with calls to Read() + /// + protected byte[] readBuffer; + + /// + /// Working buffer + /// + protected TarBuffer tarBuffer; + + /// + /// Current entry being read + /// + private TarEntry currentEntry; + + /// + /// Factory used to create TarEntry or descendant class instance + /// + protected IEntryFactory entryFactory; + + /// + /// Stream used as the source of input data. + /// + private readonly Stream inputStream; + + private readonly Encoding encoding; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs.meta new file mode 100644 index 0000000..bab07f1 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 61e4999c6d26644408addec5f94f6f68 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs new file mode 100644 index 0000000..7c52e6c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs @@ -0,0 +1,522 @@ +using System; +using System.IO; +using System.Text; + +namespace ICSharpCode.SharpZipLib.Tar +{ + /// + /// The TarOutputStream writes a UNIX tar archive as an OutputStream. + /// Methods are provided to put entries, and then write their contents + /// by writing to this stream using write(). + /// + /// public + public class TarOutputStream : Stream + { + #region Constructors + + /// + /// Construct TarOutputStream using default block factor + /// + /// stream to write to + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public TarOutputStream(Stream outputStream) + : this(outputStream, TarBuffer.DefaultBlockFactor) + { + } + + /// + /// Construct TarOutputStream using default block factor + /// + /// stream to write to + /// The used for the Name fields, or null for ASCII only + public TarOutputStream(Stream outputStream, Encoding nameEncoding) + : this(outputStream, TarBuffer.DefaultBlockFactor, nameEncoding) + { + } + + /// + /// Construct TarOutputStream with user specified block factor + /// + /// stream to write to + /// blocking factor + [Obsolete("No Encoding for Name field is specified, any non-ASCII bytes will be discarded")] + public TarOutputStream(Stream outputStream, int blockFactor) + { + if (outputStream == null) + { + throw new ArgumentNullException(nameof(outputStream)); + } + + this.outputStream = outputStream; + buffer = TarBuffer.CreateOutputTarBuffer(outputStream, blockFactor); + + assemblyBuffer = new byte[TarBuffer.BlockSize]; + blockBuffer = new byte[TarBuffer.BlockSize]; + } + + /// + /// Construct TarOutputStream with user specified block factor + /// + /// stream to write to + /// blocking factor + /// The used for the Name fields, or null for ASCII only + public TarOutputStream(Stream outputStream, int blockFactor, Encoding nameEncoding) + { + if (outputStream == null) + { + throw new ArgumentNullException(nameof(outputStream)); + } + + this.outputStream = outputStream; + buffer = TarBuffer.CreateOutputTarBuffer(outputStream, blockFactor); + + assemblyBuffer = new byte[TarBuffer.BlockSize]; + blockBuffer = new byte[TarBuffer.BlockSize]; + + this.nameEncoding = nameEncoding; + } + + #endregion Constructors + + /// + /// Gets or sets a flag indicating ownership of underlying stream. + /// When the flag is true will close the underlying stream also. + /// + /// The default value is true. + public bool IsStreamOwner + { + get { return buffer.IsStreamOwner; } + set { buffer.IsStreamOwner = value; } + } + + /// + /// true if the stream supports reading; otherwise, false. + /// + public override bool CanRead + { + get + { + return outputStream.CanRead; + } + } + + /// + /// true if the stream supports seeking; otherwise, false. + /// + public override bool CanSeek + { + get + { + return outputStream.CanSeek; + } + } + + /// + /// true if stream supports writing; otherwise, false. + /// + public override bool CanWrite + { + get + { + return outputStream.CanWrite; + } + } + + /// + /// length of stream in bytes + /// + public override long Length + { + get + { + return outputStream.Length; + } + } + + /// + /// gets or sets the position within the current stream. + /// + public override long Position + { + get + { + return outputStream.Position; + } + set + { + outputStream.Position = value; + } + } + + /// + /// set the position within the current stream + /// + /// The offset relative to the to seek to + /// The to seek from. + /// The new position in the stream. + public override long Seek(long offset, SeekOrigin origin) + { + return outputStream.Seek(offset, origin); + } + + /// + /// Set the length of the current stream + /// + /// The new stream length. + public override void SetLength(long value) + { + outputStream.SetLength(value); + } + + /// + /// Read a byte from the stream and advance the position within the stream + /// by one byte or returns -1 if at the end of the stream. + /// + /// The byte value or -1 if at end of stream + public override int ReadByte() + { + return outputStream.ReadByte(); + } + + /// + /// read bytes from the current stream and advance the position within the + /// stream by the number of bytes read. + /// + /// The buffer to store read bytes in. + /// The index into the buffer to being storing bytes at. + /// The desired number of bytes to read. + /// The total number of bytes read, or zero if at the end of the stream. + /// The number of bytes may be less than the count + /// requested if data is not available. + public override int Read(byte[] buffer, int offset, int count) + { + return outputStream.Read(buffer, offset, count); + } + + /// + /// All buffered data is written to destination + /// + public override void Flush() + { + outputStream.Flush(); + } + + /// + /// Ends the TAR archive without closing the underlying OutputStream. + /// The result is that the EOF block of nulls is written. + /// + public void Finish() + { + if (IsEntryOpen) + { + CloseEntry(); + } + WriteEofBlock(); + } + + /// + /// Ends the TAR archive and closes the underlying OutputStream. + /// + /// This means that Finish() is called followed by calling the + /// TarBuffer's Close(). + protected override void Dispose(bool disposing) + { + if (!isClosed) + { + isClosed = true; + Finish(); + buffer.Close(); + } + } + + /// + /// Get the record size being used by this stream's TarBuffer. + /// + public int RecordSize + { + get { return buffer.RecordSize; } + } + + /// + /// Get the record size being used by this stream's TarBuffer. + /// + /// + /// The TarBuffer record size. + /// + [Obsolete("Use RecordSize property instead")] + public int GetRecordSize() + { + return buffer.RecordSize; + } + + /// + /// Get a value indicating whether an entry is open, requiring more data to be written. + /// + private bool IsEntryOpen + { + get { return (currBytes < currSize); } + } + + /// + /// Put an entry on the output stream. This writes the entry's + /// header and positions the output stream for writing + /// the contents of the entry. Once this method is called, the + /// stream is ready for calls to write() to write the entry's + /// contents. Once the contents are written, closeEntry() + /// MUST be called to ensure that all buffered data + /// is completely written to the output stream. + /// + /// + /// The TarEntry to be written to the archive. + /// + public void PutNextEntry(TarEntry entry) + { + if (entry == null) + { + throw new ArgumentNullException(nameof(entry)); + } + + var namelen = nameEncoding != null ? nameEncoding.GetByteCount(entry.TarHeader.Name) : entry.TarHeader.Name.Length; + + if (namelen > TarHeader.NAMELEN) + { + var longHeader = new TarHeader(); + longHeader.TypeFlag = TarHeader.LF_GNU_LONGNAME; + longHeader.Name = longHeader.Name + "././@LongLink"; + longHeader.Mode = 420;//644 by default + longHeader.UserId = entry.UserId; + longHeader.GroupId = entry.GroupId; + longHeader.GroupName = entry.GroupName; + longHeader.UserName = entry.UserName; + longHeader.LinkName = ""; + longHeader.Size = namelen + 1; // Plus one to avoid dropping last char + + longHeader.WriteHeader(blockBuffer, nameEncoding); + buffer.WriteBlock(blockBuffer); // Add special long filename header block + + int nameCharIndex = 0; + + while (nameCharIndex < namelen + 1 /* we've allocated one for the null char, now we must make sure it gets written out */) + { + Array.Clear(blockBuffer, 0, blockBuffer.Length); + TarHeader.GetAsciiBytes(entry.TarHeader.Name, nameCharIndex, this.blockBuffer, 0, TarBuffer.BlockSize, nameEncoding); // This func handles OK the extra char out of string length + nameCharIndex += TarBuffer.BlockSize; + buffer.WriteBlock(blockBuffer); + } + } + + entry.WriteEntryHeader(blockBuffer, nameEncoding); + buffer.WriteBlock(blockBuffer); + + currBytes = 0; + + currSize = entry.IsDirectory ? 0 : entry.Size; + } + + /// + /// Close an entry. This method MUST be called for all file + /// entries that contain data. The reason is that we must + /// buffer data written to the stream in order to satisfy + /// the buffer's block based writes. Thus, there may be + /// data fragments still being assembled that must be written + /// to the output stream before this entry is closed and the + /// next entry written. + /// + public void CloseEntry() + { + if (assemblyBufferLength > 0) + { + Array.Clear(assemblyBuffer, assemblyBufferLength, assemblyBuffer.Length - assemblyBufferLength); + + buffer.WriteBlock(assemblyBuffer); + + currBytes += assemblyBufferLength; + assemblyBufferLength = 0; + } + + if (currBytes < currSize) + { + string errorText = string.Format( + "Entry closed at '{0}' before the '{1}' bytes specified in the header were written", + currBytes, currSize); + throw new TarException(errorText); + } + } + + /// + /// Writes a byte to the current tar archive entry. + /// This method simply calls Write(byte[], int, int). + /// + /// + /// The byte to be written. + /// + public override void WriteByte(byte value) + { + Write(new byte[] { value }, 0, 1); + } + + /// + /// Writes bytes to the current tar archive entry. This method + /// is aware of the current entry and will throw an exception if + /// you attempt to write bytes past the length specified for the + /// current entry. The method is also (painfully) aware of the + /// record buffering required by TarBuffer, and manages buffers + /// that are not a multiple of recordsize in length, including + /// assembling records from small buffers. + /// + /// + /// The buffer to write to the archive. + /// + /// + /// The offset in the buffer from which to get bytes. + /// + /// + /// The number of bytes to write. + /// + public override void Write(byte[] buffer, int offset, int count) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (offset < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset), "Cannot be negative"); + } + + if (buffer.Length - offset < count) + { + throw new ArgumentException("offset and count combination is invalid"); + } + + if (count < 0) + { + throw new ArgumentOutOfRangeException(nameof(count), "Cannot be negative"); + } + + if ((currBytes + count) > currSize) + { + string errorText = string.Format("request to write '{0}' bytes exceeds size in header of '{1}' bytes", + count, this.currSize); + throw new ArgumentOutOfRangeException(nameof(count), errorText); + } + + // + // We have to deal with assembly!!! + // The programmer can be writing little 32 byte chunks for all + // we know, and we must assemble complete blocks for writing. + // TODO REVIEW Maybe this should be in TarBuffer? Could that help to + // eliminate some of the buffer copying. + // + if (assemblyBufferLength > 0) + { + if ((assemblyBufferLength + count) >= blockBuffer.Length) + { + int aLen = blockBuffer.Length - assemblyBufferLength; + + Array.Copy(assemblyBuffer, 0, blockBuffer, 0, assemblyBufferLength); + Array.Copy(buffer, offset, blockBuffer, assemblyBufferLength, aLen); + + this.buffer.WriteBlock(blockBuffer); + + currBytes += blockBuffer.Length; + + offset += aLen; + count -= aLen; + + assemblyBufferLength = 0; + } + else + { + Array.Copy(buffer, offset, assemblyBuffer, assemblyBufferLength, count); + offset += count; + assemblyBufferLength += count; + count -= count; + } + } + + // + // When we get here we have EITHER: + // o An empty "assembly" buffer. + // o No bytes to write (count == 0) + // + while (count > 0) + { + if (count < blockBuffer.Length) + { + Array.Copy(buffer, offset, assemblyBuffer, assemblyBufferLength, count); + assemblyBufferLength += count; + break; + } + + this.buffer.WriteBlock(buffer, offset); + + int bufferLength = blockBuffer.Length; + currBytes += bufferLength; + count -= bufferLength; + offset += bufferLength; + } + } + + /// + /// Write an EOF (end of archive) block to the tar archive. + /// The end of the archive is indicated by two blocks consisting entirely of zero bytes. + /// + private void WriteEofBlock() + { + Array.Clear(blockBuffer, 0, blockBuffer.Length); + buffer.WriteBlock(blockBuffer); + buffer.WriteBlock(blockBuffer); + } + + #region Instance Fields + + /// + /// bytes written for this entry so far + /// + private long currBytes; + + /// + /// current 'Assembly' buffer length + /// + private int assemblyBufferLength; + + /// + /// Flag indicating whether this instance has been closed or not. + /// + private bool isClosed; + + /// + /// Size for the current entry + /// + protected long currSize; + + /// + /// single block working buffer + /// + protected byte[] blockBuffer; + + /// + /// 'Assembly' buffer used to assemble data before writing + /// + protected byte[] assemblyBuffer; + + /// + /// TarBuffer used to provide correct blocking factor + /// + protected TarBuffer buffer; + + /// + /// the destination stream for the archive contents + /// + protected Stream outputStream; + + /// + /// name encoding + /// + protected Encoding nameEncoding; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs.meta new file mode 100644 index 0000000..cd59391 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c07fec77f5c974ffd81e4153a26c494e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip.meta new file mode 100644 index 0000000..2ad419e --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19f463d741cd747d8b1ed75b72343cf4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression.meta new file mode 100644 index 0000000..2460479 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b109d01bcae004e1dbc6a27d4d63c6db +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs new file mode 100644 index 0000000..3dbe98c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs @@ -0,0 +1,604 @@ +using System; + +namespace ICSharpCode.SharpZipLib.Zip.Compression +{ + /// + /// This is the Deflater class. The deflater class compresses input + /// with the deflate algorithm described in RFC 1951. It has several + /// compression levels and three different strategies described below. + /// + /// This class is not thread safe. This is inherent in the API, due + /// to the split of deflate and setInput. + /// + /// author of the original java version : Jochen Hoenicke + /// + public class Deflater + { + #region Deflater Documentation + + /* + * The Deflater can do the following state transitions: + * + * (1) -> INIT_STATE ----> INIT_FINISHING_STATE ---. + * / | (2) (5) | + * / v (5) | + * (3)| SETDICT_STATE ---> SETDICT_FINISHING_STATE |(3) + * \ | (3) | ,--------' + * | | | (3) / + * v v (5) v v + * (1) -> BUSY_STATE ----> FINISHING_STATE + * | (6) + * v + * FINISHED_STATE + * \_____________________________________/ + * | (7) + * v + * CLOSED_STATE + * + * (1) If we should produce a header we start in INIT_STATE, otherwise + * we start in BUSY_STATE. + * (2) A dictionary may be set only when we are in INIT_STATE, then + * we change the state as indicated. + * (3) Whether a dictionary is set or not, on the first call of deflate + * we change to BUSY_STATE. + * (4) -- intentionally left blank -- :) + * (5) FINISHING_STATE is entered, when flush() is called to indicate that + * there is no more INPUT. There are also states indicating, that + * the header wasn't written yet. + * (6) FINISHED_STATE is entered, when everything has been flushed to the + * internal pending output buffer. + * (7) At any time (7) + * + */ + + #endregion Deflater Documentation + + #region Public Constants + + /// + /// The best and slowest compression level. This tries to find very + /// long and distant string repetitions. + /// + public const int BEST_COMPRESSION = 9; + + /// + /// The worst but fastest compression level. + /// + public const int BEST_SPEED = 1; + + /// + /// The default compression level. + /// + public const int DEFAULT_COMPRESSION = -1; + + /// + /// This level won't compress at all but output uncompressed blocks. + /// + public const int NO_COMPRESSION = 0; + + /// + /// The compression method. This is the only method supported so far. + /// There is no need to use this constant at all. + /// + public const int DEFLATED = 8; + + #endregion Public Constants + + #region Public Enum + + /// + /// Compression Level as an enum for safer use + /// + public enum CompressionLevel + { + /// + /// The best and slowest compression level. This tries to find very + /// long and distant string repetitions. + /// + BEST_COMPRESSION = Deflater.BEST_COMPRESSION, + + /// + /// The worst but fastest compression level. + /// + BEST_SPEED = Deflater.BEST_SPEED, + + /// + /// The default compression level. + /// + DEFAULT_COMPRESSION = Deflater.DEFAULT_COMPRESSION, + + /// + /// This level won't compress at all but output uncompressed blocks. + /// + NO_COMPRESSION = Deflater.NO_COMPRESSION, + + /// + /// The compression method. This is the only method supported so far. + /// There is no need to use this constant at all. + /// + DEFLATED = Deflater.DEFLATED + } + + #endregion Public Enum + + #region Local Constants + + private const int IS_SETDICT = 0x01; + private const int IS_FLUSHING = 0x04; + private const int IS_FINISHING = 0x08; + + private const int INIT_STATE = 0x00; + private const int SETDICT_STATE = 0x01; + + // private static int INIT_FINISHING_STATE = 0x08; + // private static int SETDICT_FINISHING_STATE = 0x09; + private const int BUSY_STATE = 0x10; + + private const int FLUSHING_STATE = 0x14; + private const int FINISHING_STATE = 0x1c; + private const int FINISHED_STATE = 0x1e; + private const int CLOSED_STATE = 0x7f; + + #endregion Local Constants + + #region Constructors + + /// + /// Creates a new deflater with default compression level. + /// + public Deflater() : this(DEFAULT_COMPRESSION, false) + { + } + + /// + /// Creates a new deflater with given compression level. + /// + /// + /// the compression level, a value between NO_COMPRESSION + /// and BEST_COMPRESSION, or DEFAULT_COMPRESSION. + /// + /// if lvl is out of range. + public Deflater(int level) : this(level, false) + { + } + + /// + /// Creates a new deflater with given compression level. + /// + /// + /// the compression level, a value between NO_COMPRESSION + /// and BEST_COMPRESSION. + /// + /// + /// true, if we should suppress the Zlib/RFC1950 header at the + /// beginning and the adler checksum at the end of the output. This is + /// useful for the GZIP/PKZIP formats. + /// + /// if lvl is out of range. + public Deflater(int level, bool noZlibHeaderOrFooter) + { + if (level == DEFAULT_COMPRESSION) + { + level = 6; + } + else if (level < NO_COMPRESSION || level > BEST_COMPRESSION) + { + throw new ArgumentOutOfRangeException(nameof(level)); + } + + pending = new DeflaterPending(); + engine = new DeflaterEngine(pending, noZlibHeaderOrFooter); + this.noZlibHeaderOrFooter = noZlibHeaderOrFooter; + SetStrategy(DeflateStrategy.Default); + SetLevel(level); + Reset(); + } + + #endregion Constructors + + /// + /// Resets the deflater. The deflater acts afterwards as if it was + /// just created with the same compression level and strategy as it + /// had before. + /// + public void Reset() + { + state = (noZlibHeaderOrFooter ? BUSY_STATE : INIT_STATE); + totalOut = 0; + pending.Reset(); + engine.Reset(); + } + + /// + /// Gets the current adler checksum of the data that was processed so far. + /// + public int Adler + { + get + { + return engine.Adler; + } + } + + /// + /// Gets the number of input bytes processed so far. + /// + public long TotalIn + { + get + { + return engine.TotalIn; + } + } + + /// + /// Gets the number of output bytes so far. + /// + public long TotalOut + { + get + { + return totalOut; + } + } + + /// + /// Flushes the current input block. Further calls to deflate() will + /// produce enough output to inflate everything in the current input + /// block. This is not part of Sun's JDK so I have made it package + /// private. It is used by DeflaterOutputStream to implement + /// flush(). + /// + public void Flush() + { + state |= IS_FLUSHING; + } + + /// + /// Finishes the deflater with the current input block. It is an error + /// to give more input after this method was called. This method must + /// be called to force all bytes to be flushed. + /// + public void Finish() + { + state |= (IS_FLUSHING | IS_FINISHING); + } + + /// + /// Returns true if the stream was finished and no more output bytes + /// are available. + /// + public bool IsFinished + { + get + { + return (state == FINISHED_STATE) && pending.IsFlushed; + } + } + + /// + /// Returns true, if the input buffer is empty. + /// You should then call setInput(). + /// NOTE: This method can also return true when the stream + /// was finished. + /// + public bool IsNeedingInput + { + get + { + return engine.NeedsInput(); + } + } + + /// + /// Sets the data which should be compressed next. This should be only + /// called when needsInput indicates that more input is needed. + /// If you call setInput when needsInput() returns false, the + /// previous input that is still pending will be thrown away. + /// The given byte array should not be changed, before needsInput() returns + /// true again. + /// This call is equivalent to setInput(input, 0, input.length). + /// + /// + /// the buffer containing the input data. + /// + /// + /// if the buffer was finished() or ended(). + /// + public void SetInput(byte[] input) + { + SetInput(input, 0, input.Length); + } + + /// + /// Sets the data which should be compressed next. This should be + /// only called when needsInput indicates that more input is needed. + /// The given byte array should not be changed, before needsInput() returns + /// true again. + /// + /// + /// the buffer containing the input data. + /// + /// + /// the start of the data. + /// + /// + /// the number of data bytes of input. + /// + /// + /// if the buffer was Finish()ed or if previous input is still pending. + /// + public void SetInput(byte[] input, int offset, int count) + { + if ((state & IS_FINISHING) != 0) + { + throw new InvalidOperationException("Finish() already called"); + } + engine.SetInput(input, offset, count); + } + + /// + /// Sets the compression level. There is no guarantee of the exact + /// position of the change, but if you call this when needsInput is + /// true the change of compression level will occur somewhere near + /// before the end of the so far given input. + /// + /// + /// the new compression level. + /// + public void SetLevel(int level) + { + if (level == DEFAULT_COMPRESSION) + { + level = 6; + } + else if (level < NO_COMPRESSION || level > BEST_COMPRESSION) + { + throw new ArgumentOutOfRangeException(nameof(level)); + } + + if (this.level != level) + { + this.level = level; + engine.SetLevel(level); + } + } + + /// + /// Get current compression level + /// + /// Returns the current compression level + public int GetLevel() + { + return level; + } + + /// + /// Sets the compression strategy. Strategy is one of + /// DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact + /// position where the strategy is changed, the same as for + /// SetLevel() applies. + /// + /// + /// The new compression strategy. + /// + public void SetStrategy(DeflateStrategy strategy) + { + engine.Strategy = strategy; + } + + /// + /// Deflates the current input block with to the given array. + /// + /// + /// The buffer where compressed data is stored + /// + /// + /// The number of compressed bytes added to the output, or 0 if either + /// IsNeedingInput() or IsFinished returns true or length is zero. + /// + public int Deflate(byte[] output) + { + return Deflate(output, 0, output.Length); + } + + /// + /// Deflates the current input block to the given array. + /// + /// + /// Buffer to store the compressed data. + /// + /// + /// Offset into the output array. + /// + /// + /// The maximum number of bytes that may be stored. + /// + /// + /// The number of compressed bytes added to the output, or 0 if either + /// needsInput() or finished() returns true or length is zero. + /// + /// + /// If Finish() was previously called. + /// + /// + /// If offset or length don't match the array length. + /// + public int Deflate(byte[] output, int offset, int length) + { + int origLength = length; + + if (state == CLOSED_STATE) + { + throw new InvalidOperationException("Deflater closed"); + } + + if (state < BUSY_STATE) + { + // output header + int header = (DEFLATED + + ((DeflaterConstants.MAX_WBITS - 8) << 4)) << 8; + int level_flags = (level - 1) >> 1; + if (level_flags < 0 || level_flags > 3) + { + level_flags = 3; + } + header |= level_flags << 6; + if ((state & IS_SETDICT) != 0) + { + // Dictionary was set + header |= DeflaterConstants.PRESET_DICT; + } + header += 31 - (header % 31); + + pending.WriteShortMSB(header); + if ((state & IS_SETDICT) != 0) + { + int chksum = engine.Adler; + engine.ResetAdler(); + pending.WriteShortMSB(chksum >> 16); + pending.WriteShortMSB(chksum & 0xffff); + } + + state = BUSY_STATE | (state & (IS_FLUSHING | IS_FINISHING)); + } + + for (; ; ) + { + int count = pending.Flush(output, offset, length); + offset += count; + totalOut += count; + length -= count; + + if (length == 0 || state == FINISHED_STATE) + { + break; + } + + if (!engine.Deflate((state & IS_FLUSHING) != 0, (state & IS_FINISHING) != 0)) + { + switch (state) + { + case BUSY_STATE: + // We need more input now + return origLength - length; + + case FLUSHING_STATE: + if (level != NO_COMPRESSION) + { + /* We have to supply some lookahead. 8 bit lookahead + * is needed by the zlib inflater, and we must fill + * the next byte, so that all bits are flushed. + */ + int neededbits = 8 + ((-pending.BitCount) & 7); + while (neededbits > 0) + { + /* write a static tree block consisting solely of + * an EOF: + */ + pending.WriteBits(2, 10); + neededbits -= 10; + } + } + state = BUSY_STATE; + break; + + case FINISHING_STATE: + pending.AlignToByte(); + + // Compressed data is complete. Write footer information if required. + if (!noZlibHeaderOrFooter) + { + int adler = engine.Adler; + pending.WriteShortMSB(adler >> 16); + pending.WriteShortMSB(adler & 0xffff); + } + state = FINISHED_STATE; + break; + } + } + } + return origLength - length; + } + + /// + /// Sets the dictionary which should be used in the deflate process. + /// This call is equivalent to setDictionary(dict, 0, dict.Length). + /// + /// + /// the dictionary. + /// + /// + /// if SetInput () or Deflate () were already called or another dictionary was already set. + /// + public void SetDictionary(byte[] dictionary) + { + SetDictionary(dictionary, 0, dictionary.Length); + } + + /// + /// Sets the dictionary which should be used in the deflate process. + /// The dictionary is a byte array containing strings that are + /// likely to occur in the data which should be compressed. The + /// dictionary is not stored in the compressed output, only a + /// checksum. To decompress the output you need to supply the same + /// dictionary again. + /// + /// + /// The dictionary data + /// + /// + /// The index where dictionary information commences. + /// + /// + /// The number of bytes in the dictionary. + /// + /// + /// If SetInput () or Deflate() were already called or another dictionary was already set. + /// + public void SetDictionary(byte[] dictionary, int index, int count) + { + if (state != INIT_STATE) + { + throw new InvalidOperationException(); + } + + state = SETDICT_STATE; + engine.SetDictionary(dictionary, index, count); + } + + #region Instance Fields + + /// + /// Compression level. + /// + private int level; + + /// + /// If true no Zlib/RFC1950 headers or footers are generated + /// + private bool noZlibHeaderOrFooter; + + /// + /// The current state. + /// + private int state; + + /// + /// The total bytes of output written. + /// + private long totalOut; + + /// + /// The pending output. + /// + private DeflaterPending pending; + + /// + /// The deflater engine. + /// + private DeflaterEngine engine; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs.meta new file mode 100644 index 0000000..46231a5 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 223dd74e74ce2461db089c9a23d1b1be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs new file mode 100644 index 0000000..b7c7d2a --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs @@ -0,0 +1,146 @@ +using System; + +namespace ICSharpCode.SharpZipLib.Zip.Compression +{ + /// + /// This class contains constants used for deflation. + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "kept for backwards compatibility")] + public static class DeflaterConstants + { + /// + /// Set to true to enable debugging + /// + public const bool DEBUGGING = false; + + /// + /// Written to Zip file to identify a stored block + /// + public const int STORED_BLOCK = 0; + + /// + /// Identifies static tree in Zip file + /// + public const int STATIC_TREES = 1; + + /// + /// Identifies dynamic tree in Zip file + /// + public const int DYN_TREES = 2; + + /// + /// Header flag indicating a preset dictionary for deflation + /// + public const int PRESET_DICT = 0x20; + + /// + /// Sets internal buffer sizes for Huffman encoding + /// + public const int DEFAULT_MEM_LEVEL = 8; + + /// + /// Internal compression engine constant + /// + public const int MAX_MATCH = 258; + + /// + /// Internal compression engine constant + /// + public const int MIN_MATCH = 3; + + /// + /// Internal compression engine constant + /// + public const int MAX_WBITS = 15; + + /// + /// Internal compression engine constant + /// + public const int WSIZE = 1 << MAX_WBITS; + + /// + /// Internal compression engine constant + /// + public const int WMASK = WSIZE - 1; + + /// + /// Internal compression engine constant + /// + public const int HASH_BITS = DEFAULT_MEM_LEVEL + 7; + + /// + /// Internal compression engine constant + /// + public const int HASH_SIZE = 1 << HASH_BITS; + + /// + /// Internal compression engine constant + /// + public const int HASH_MASK = HASH_SIZE - 1; + + /// + /// Internal compression engine constant + /// + public const int HASH_SHIFT = (HASH_BITS + MIN_MATCH - 1) / MIN_MATCH; + + /// + /// Internal compression engine constant + /// + public const int MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; + + /// + /// Internal compression engine constant + /// + public const int MAX_DIST = WSIZE - MIN_LOOKAHEAD; + + /// + /// Internal compression engine constant + /// + public const int PENDING_BUF_SIZE = 1 << (DEFAULT_MEM_LEVEL + 8); + + /// + /// Internal compression engine constant + /// + public static int MAX_BLOCK_SIZE = Math.Min(65535, PENDING_BUF_SIZE - 5); + + /// + /// Internal compression engine constant + /// + public const int DEFLATE_STORED = 0; + + /// + /// Internal compression engine constant + /// + public const int DEFLATE_FAST = 1; + + /// + /// Internal compression engine constant + /// + public const int DEFLATE_SLOW = 2; + + /// + /// Internal compression engine constant + /// + public static int[] GOOD_LENGTH = { 0, 4, 4, 4, 4, 8, 8, 8, 32, 32 }; + + /// + /// Internal compression engine constant + /// + public static int[] MAX_LAZY = { 0, 4, 5, 6, 4, 16, 16, 32, 128, 258 }; + + /// + /// Internal compression engine constant + /// + public static int[] NICE_LENGTH = { 0, 8, 16, 32, 16, 32, 128, 128, 258, 258 }; + + /// + /// Internal compression engine constant + /// + public static int[] MAX_CHAIN = { 0, 4, 8, 32, 16, 32, 128, 256, 1024, 4096 }; + + /// + /// Internal compression engine constant + /// + public static int[] COMPR_FUNC = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 2 }; + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs.meta new file mode 100644 index 0000000..29ff191 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 77b7498058b864a66889c79b6cbe1595 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs new file mode 100644 index 0000000..556911c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs @@ -0,0 +1,946 @@ +using ICSharpCode.SharpZipLib.Checksum; +using System; + +namespace ICSharpCode.SharpZipLib.Zip.Compression +{ + /// + /// Strategies for deflater + /// + public enum DeflateStrategy + { + /// + /// The default strategy + /// + Default = 0, + + /// + /// This strategy will only allow longer string repetitions. It is + /// useful for random data with a small character set. + /// + Filtered = 1, + + /// + /// This strategy will not look for string repetitions at all. It + /// only encodes with Huffman trees (which means, that more common + /// characters get a smaller encoding. + /// + HuffmanOnly = 2 + } + + // DEFLATE ALGORITHM: + // + // The uncompressed stream is inserted into the window array. When + // the window array is full the first half is thrown away and the + // second half is copied to the beginning. + // + // The head array is a hash table. Three characters build a hash value + // and they the value points to the corresponding index in window of + // the last string with this hash. The prev array implements a + // linked list of matches with the same hash: prev[index & WMASK] points + // to the previous index with the same hash. + // + + /// + /// Low level compression engine for deflate algorithm which uses a 32K sliding window + /// with secondary compression from Huffman/Shannon-Fano codes. + /// + public class DeflaterEngine + { + #region Constants + + private const int TooFar = 4096; + + #endregion Constants + + #region Constructors + + /// + /// Construct instance with pending buffer + /// Adler calculation will be performed + /// + /// + /// Pending buffer to use + /// + public DeflaterEngine(DeflaterPending pending) + : this (pending, false) + { + } + + + + /// + /// Construct instance with pending buffer + /// + /// + /// Pending buffer to use + /// + /// + /// If no adler calculation should be performed + /// + public DeflaterEngine(DeflaterPending pending, bool noAdlerCalculation) + { + this.pending = pending; + huffman = new DeflaterHuffman(pending); + if (!noAdlerCalculation) + adler = new Adler32(); + + window = new byte[2 * DeflaterConstants.WSIZE]; + head = new short[DeflaterConstants.HASH_SIZE]; + prev = new short[DeflaterConstants.WSIZE]; + + // We start at index 1, to avoid an implementation deficiency, that + // we cannot build a repeat pattern at index 0. + blockStart = strstart = 1; + } + + #endregion Constructors + + /// + /// Deflate drives actual compression of data + /// + /// True to flush input buffers + /// Finish deflation with the current input. + /// Returns true if progress has been made. + public bool Deflate(bool flush, bool finish) + { + bool progress; + do + { + FillWindow(); + bool canFlush = flush && (inputOff == inputEnd); + +#if DebugDeflation + if (DeflaterConstants.DEBUGGING) { + Console.WriteLine("window: [" + blockStart + "," + strstart + "," + + lookahead + "], " + compressionFunction + "," + canFlush); + } +#endif + switch (compressionFunction) + { + case DeflaterConstants.DEFLATE_STORED: + progress = DeflateStored(canFlush, finish); + break; + + case DeflaterConstants.DEFLATE_FAST: + progress = DeflateFast(canFlush, finish); + break; + + case DeflaterConstants.DEFLATE_SLOW: + progress = DeflateSlow(canFlush, finish); + break; + + default: + throw new InvalidOperationException("unknown compressionFunction"); + } + } while (pending.IsFlushed && progress); // repeat while we have no pending output and progress was made + return progress; + } + + /// + /// Sets input data to be deflated. Should only be called when NeedsInput() + /// returns true + /// + /// The buffer containing input data. + /// The offset of the first byte of data. + /// The number of bytes of data to use as input. + public void SetInput(byte[] buffer, int offset, int count) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (offset < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset)); + } + + if (count < 0) + { + throw new ArgumentOutOfRangeException(nameof(count)); + } + + if (inputOff < inputEnd) + { + throw new InvalidOperationException("Old input was not completely processed"); + } + + int end = offset + count; + + /* We want to throw an ArrayIndexOutOfBoundsException early. The + * check is very tricky: it also handles integer wrap around. + */ + if ((offset > end) || (end > buffer.Length)) + { + throw new ArgumentOutOfRangeException(nameof(count)); + } + + inputBuf = buffer; + inputOff = offset; + inputEnd = end; + } + + /// + /// Determines if more input is needed. + /// + /// Return true if input is needed via SetInput + public bool NeedsInput() + { + return (inputEnd == inputOff); + } + + /// + /// Set compression dictionary + /// + /// The buffer containing the dictionary data + /// The offset in the buffer for the first byte of data + /// The length of the dictionary data. + public void SetDictionary(byte[] buffer, int offset, int length) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && (strstart != 1) ) + { + throw new InvalidOperationException("strstart not 1"); + } +#endif + adler?.Update(new ArraySegment(buffer, offset, length)); + if (length < DeflaterConstants.MIN_MATCH) + { + return; + } + + if (length > DeflaterConstants.MAX_DIST) + { + offset += length - DeflaterConstants.MAX_DIST; + length = DeflaterConstants.MAX_DIST; + } + + System.Array.Copy(buffer, offset, window, strstart, length); + + UpdateHash(); + --length; + while (--length > 0) + { + InsertString(); + strstart++; + } + strstart += 2; + blockStart = strstart; + } + + /// + /// Reset internal state + /// + public void Reset() + { + huffman.Reset(); + adler?.Reset(); + blockStart = strstart = 1; + lookahead = 0; + totalIn = 0; + prevAvailable = false; + matchLen = DeflaterConstants.MIN_MATCH - 1; + + for (int i = 0; i < DeflaterConstants.HASH_SIZE; i++) + { + head[i] = 0; + } + + for (int i = 0; i < DeflaterConstants.WSIZE; i++) + { + prev[i] = 0; + } + } + + /// + /// Reset Adler checksum + /// + public void ResetAdler() + { + adler?.Reset(); + } + + /// + /// Get current value of Adler checksum + /// + public int Adler + { + get + { + return (adler != null) ? unchecked((int)adler.Value) : 0; + } + } + + /// + /// Total data processed + /// + public long TotalIn + { + get + { + return totalIn; + } + } + + /// + /// Get/set the deflate strategy + /// + public DeflateStrategy Strategy + { + get + { + return strategy; + } + set + { + strategy = value; + } + } + + /// + /// Set the deflate level (0-9) + /// + /// The value to set the level to. + public void SetLevel(int level) + { + if ((level < 0) || (level > 9)) + { + throw new ArgumentOutOfRangeException(nameof(level)); + } + + goodLength = DeflaterConstants.GOOD_LENGTH[level]; + max_lazy = DeflaterConstants.MAX_LAZY[level]; + niceLength = DeflaterConstants.NICE_LENGTH[level]; + max_chain = DeflaterConstants.MAX_CHAIN[level]; + + if (DeflaterConstants.COMPR_FUNC[level] != compressionFunction) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING) { + Console.WriteLine("Change from " + compressionFunction + " to " + + DeflaterConstants.COMPR_FUNC[level]); + } +#endif + switch (compressionFunction) + { + case DeflaterConstants.DEFLATE_STORED: + if (strstart > blockStart) + { + huffman.FlushStoredBlock(window, blockStart, + strstart - blockStart, false); + blockStart = strstart; + } + UpdateHash(); + break; + + case DeflaterConstants.DEFLATE_FAST: + if (strstart > blockStart) + { + huffman.FlushBlock(window, blockStart, strstart - blockStart, + false); + blockStart = strstart; + } + break; + + case DeflaterConstants.DEFLATE_SLOW: + if (prevAvailable) + { + huffman.TallyLit(window[strstart - 1] & 0xff); + } + if (strstart > blockStart) + { + huffman.FlushBlock(window, blockStart, strstart - blockStart, false); + blockStart = strstart; + } + prevAvailable = false; + matchLen = DeflaterConstants.MIN_MATCH - 1; + break; + } + compressionFunction = DeflaterConstants.COMPR_FUNC[level]; + } + } + + /// + /// Fill the window + /// + public void FillWindow() + { + /* If the window is almost full and there is insufficient lookahead, + * move the upper half to the lower one to make room in the upper half. + */ + if (strstart >= DeflaterConstants.WSIZE + DeflaterConstants.MAX_DIST) + { + SlideWindow(); + } + + /* If there is not enough lookahead, but still some input left, + * read in the input + */ + if (lookahead < DeflaterConstants.MIN_LOOKAHEAD && inputOff < inputEnd) + { + int more = 2 * DeflaterConstants.WSIZE - lookahead - strstart; + + if (more > inputEnd - inputOff) + { + more = inputEnd - inputOff; + } + + System.Array.Copy(inputBuf, inputOff, window, strstart + lookahead, more); + adler?.Update(new ArraySegment(inputBuf, inputOff, more)); + + inputOff += more; + totalIn += more; + lookahead += more; + } + + if (lookahead >= DeflaterConstants.MIN_MATCH) + { + UpdateHash(); + } + } + + private void UpdateHash() + { + /* + if (DEBUGGING) { + Console.WriteLine("updateHash: "+strstart); + } + */ + ins_h = (window[strstart] << DeflaterConstants.HASH_SHIFT) ^ window[strstart + 1]; + } + + /// + /// Inserts the current string in the head hash and returns the previous + /// value for this hash. + /// + /// The previous hash value + private int InsertString() + { + short match; + int hash = ((ins_h << DeflaterConstants.HASH_SHIFT) ^ window[strstart + (DeflaterConstants.MIN_MATCH - 1)]) & DeflaterConstants.HASH_MASK; + +#if DebugDeflation + if (DeflaterConstants.DEBUGGING) + { + if (hash != (((window[strstart] << (2*HASH_SHIFT)) ^ + (window[strstart + 1] << HASH_SHIFT) ^ + (window[strstart + 2])) & HASH_MASK)) { + throw new SharpZipBaseException("hash inconsistent: " + hash + "/" + +window[strstart] + "," + +window[strstart + 1] + "," + +window[strstart + 2] + "," + HASH_SHIFT); + } + } +#endif + prev[strstart & DeflaterConstants.WMASK] = match = head[hash]; + head[hash] = unchecked((short)strstart); + ins_h = hash; + return match & 0xffff; + } + + private void SlideWindow() + { + Array.Copy(window, DeflaterConstants.WSIZE, window, 0, DeflaterConstants.WSIZE); + matchStart -= DeflaterConstants.WSIZE; + strstart -= DeflaterConstants.WSIZE; + blockStart -= DeflaterConstants.WSIZE; + + // Slide the hash table (could be avoided with 32 bit values + // at the expense of memory usage). + for (int i = 0; i < DeflaterConstants.HASH_SIZE; ++i) + { + int m = head[i] & 0xffff; + head[i] = (short)(m >= DeflaterConstants.WSIZE ? (m - DeflaterConstants.WSIZE) : 0); + } + + // Slide the prev table. + for (int i = 0; i < DeflaterConstants.WSIZE; i++) + { + int m = prev[i] & 0xffff; + prev[i] = (short)(m >= DeflaterConstants.WSIZE ? (m - DeflaterConstants.WSIZE) : 0); + } + } + + /// + /// Find the best (longest) string in the window matching the + /// string starting at strstart. + /// + /// Preconditions: + /// + /// strstart + DeflaterConstants.MAX_MATCH <= window.length. + /// + /// + /// True if a match greater than the minimum length is found + private bool FindLongestMatch(int curMatch) + { + int match; + int scan = strstart; + // scanMax is the highest position that we can look at + int scanMax = scan + Math.Min(DeflaterConstants.MAX_MATCH, lookahead) - 1; + int limit = Math.Max(scan - DeflaterConstants.MAX_DIST, 0); + + byte[] window = this.window; + short[] prev = this.prev; + int chainLength = this.max_chain; + int niceLength = Math.Min(this.niceLength, lookahead); + + matchLen = Math.Max(matchLen, DeflaterConstants.MIN_MATCH - 1); + + if (scan + matchLen > scanMax) return false; + + byte scan_end1 = window[scan + matchLen - 1]; + byte scan_end = window[scan + matchLen]; + + // Do not waste too much time if we already have a good match: + if (matchLen >= this.goodLength) chainLength >>= 2; + + do + { + match = curMatch; + scan = strstart; + + if (window[match + matchLen] != scan_end + || window[match + matchLen - 1] != scan_end1 + || window[match] != window[scan] + || window[++match] != window[++scan]) + { + continue; + } + + // scan is set to strstart+1 and the comparison passed, so + // scanMax - scan is the maximum number of bytes we can compare. + // below we compare 8 bytes at a time, so first we compare + // (scanMax - scan) % 8 bytes, so the remainder is a multiple of 8 + + switch ((scanMax - scan) % 8) + { + case 1: + if (window[++scan] == window[++match]) break; + break; + + case 2: + if (window[++scan] == window[++match] + && window[++scan] == window[++match]) break; + break; + + case 3: + if (window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match]) break; + break; + + case 4: + if (window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match]) break; + break; + + case 5: + if (window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match]) break; + break; + + case 6: + if (window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match]) break; + break; + + case 7: + if (window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match]) break; + break; + } + + if (window[scan] == window[match]) + { + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart + 258 unless lookahead is + * exhausted first. + */ + do + { + if (scan == scanMax) + { + ++scan; // advance to first position not matched + ++match; + + break; + } + } + while (window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match] + && window[++scan] == window[++match]); + } + + if (scan - strstart > matchLen) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && (ins_h == 0) ) + Console.Error.WriteLine("Found match: " + curMatch + "-" + (scan - strstart)); +#endif + + matchStart = curMatch; + matchLen = scan - strstart; + + if (matchLen >= niceLength) + break; + + scan_end1 = window[scan - 1]; + scan_end = window[scan]; + } + } while ((curMatch = (prev[curMatch & DeflaterConstants.WMASK] & 0xffff)) > limit && 0 != --chainLength); + + return matchLen >= DeflaterConstants.MIN_MATCH; + } + + private bool DeflateStored(bool flush, bool finish) + { + if (!flush && (lookahead == 0)) + { + return false; + } + + strstart += lookahead; + lookahead = 0; + + int storedLength = strstart - blockStart; + + if ((storedLength >= DeflaterConstants.MAX_BLOCK_SIZE) || // Block is full + (blockStart < DeflaterConstants.WSIZE && storedLength >= DeflaterConstants.MAX_DIST) || // Block may move out of window + flush) + { + bool lastBlock = finish; + if (storedLength > DeflaterConstants.MAX_BLOCK_SIZE) + { + storedLength = DeflaterConstants.MAX_BLOCK_SIZE; + lastBlock = false; + } + +#if DebugDeflation + if (DeflaterConstants.DEBUGGING) + { + Console.WriteLine("storedBlock[" + storedLength + "," + lastBlock + "]"); + } +#endif + + huffman.FlushStoredBlock(window, blockStart, storedLength, lastBlock); + blockStart += storedLength; + return !(lastBlock || storedLength == 0); + } + return true; + } + + private bool DeflateFast(bool flush, bool finish) + { + if (lookahead < DeflaterConstants.MIN_LOOKAHEAD && !flush) + { + return false; + } + + while (lookahead >= DeflaterConstants.MIN_LOOKAHEAD || flush) + { + if (lookahead == 0) + { + // We are flushing everything + huffman.FlushBlock(window, blockStart, strstart - blockStart, finish); + blockStart = strstart; + return false; + } + + if (strstart > 2 * DeflaterConstants.WSIZE - DeflaterConstants.MIN_LOOKAHEAD) + { + /* slide window, as FindLongestMatch needs this. + * This should only happen when flushing and the window + * is almost full. + */ + SlideWindow(); + } + + int hashHead; + if (lookahead >= DeflaterConstants.MIN_MATCH && + (hashHead = InsertString()) != 0 && + strategy != DeflateStrategy.HuffmanOnly && + strstart - hashHead <= DeflaterConstants.MAX_DIST && + FindLongestMatch(hashHead)) + { + // longestMatch sets matchStart and matchLen +#if DebugDeflation + if (DeflaterConstants.DEBUGGING) + { + for (int i = 0 ; i < matchLen; i++) { + if (window[strstart + i] != window[matchStart + i]) { + throw new SharpZipBaseException("Match failure"); + } + } + } +#endif + + bool full = huffman.TallyDist(strstart - matchStart, matchLen); + + lookahead -= matchLen; + if (matchLen <= max_lazy && lookahead >= DeflaterConstants.MIN_MATCH) + { + while (--matchLen > 0) + { + ++strstart; + InsertString(); + } + ++strstart; + } + else + { + strstart += matchLen; + if (lookahead >= DeflaterConstants.MIN_MATCH - 1) + { + UpdateHash(); + } + } + matchLen = DeflaterConstants.MIN_MATCH - 1; + if (!full) + { + continue; + } + } + else + { + // No match found + huffman.TallyLit(window[strstart] & 0xff); + ++strstart; + --lookahead; + } + + if (huffman.IsFull()) + { + bool lastBlock = finish && (lookahead == 0); + huffman.FlushBlock(window, blockStart, strstart - blockStart, lastBlock); + blockStart = strstart; + return !lastBlock; + } + } + return true; + } + + private bool DeflateSlow(bool flush, bool finish) + { + if (lookahead < DeflaterConstants.MIN_LOOKAHEAD && !flush) + { + return false; + } + + while (lookahead >= DeflaterConstants.MIN_LOOKAHEAD || flush) + { + if (lookahead == 0) + { + if (prevAvailable) + { + huffman.TallyLit(window[strstart - 1] & 0xff); + } + prevAvailable = false; + + // We are flushing everything +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && !flush) + { + throw new SharpZipBaseException("Not flushing, but no lookahead"); + } +#endif + huffman.FlushBlock(window, blockStart, strstart - blockStart, + finish); + blockStart = strstart; + return false; + } + + if (strstart >= 2 * DeflaterConstants.WSIZE - DeflaterConstants.MIN_LOOKAHEAD) + { + /* slide window, as FindLongestMatch needs this. + * This should only happen when flushing and the window + * is almost full. + */ + SlideWindow(); + } + + int prevMatch = matchStart; + int prevLen = matchLen; + if (lookahead >= DeflaterConstants.MIN_MATCH) + { + int hashHead = InsertString(); + + if (strategy != DeflateStrategy.HuffmanOnly && + hashHead != 0 && + strstart - hashHead <= DeflaterConstants.MAX_DIST && + FindLongestMatch(hashHead)) + { + // longestMatch sets matchStart and matchLen + + // Discard match if too small and too far away + if (matchLen <= 5 && (strategy == DeflateStrategy.Filtered || (matchLen == DeflaterConstants.MIN_MATCH && strstart - matchStart > TooFar))) + { + matchLen = DeflaterConstants.MIN_MATCH - 1; + } + } + } + + // previous match was better + if ((prevLen >= DeflaterConstants.MIN_MATCH) && (matchLen <= prevLen)) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING) + { + for (int i = 0 ; i < matchLen; i++) { + if (window[strstart-1+i] != window[prevMatch + i]) + throw new SharpZipBaseException(); + } + } +#endif + huffman.TallyDist(strstart - 1 - prevMatch, prevLen); + prevLen -= 2; + do + { + strstart++; + lookahead--; + if (lookahead >= DeflaterConstants.MIN_MATCH) + { + InsertString(); + } + } while (--prevLen > 0); + + strstart++; + lookahead--; + prevAvailable = false; + matchLen = DeflaterConstants.MIN_MATCH - 1; + } + else + { + if (prevAvailable) + { + huffman.TallyLit(window[strstart - 1] & 0xff); + } + prevAvailable = true; + strstart++; + lookahead--; + } + + if (huffman.IsFull()) + { + int len = strstart - blockStart; + if (prevAvailable) + { + len--; + } + bool lastBlock = (finish && (lookahead == 0) && !prevAvailable); + huffman.FlushBlock(window, blockStart, len, lastBlock); + blockStart += len; + return !lastBlock; + } + } + return true; + } + + #region Instance Fields + + // Hash index of string to be inserted + private int ins_h; + + /// + /// Hashtable, hashing three characters to an index for window, so + /// that window[index]..window[index+2] have this hash code. + /// Note that the array should really be unsigned short, so you need + /// to and the values with 0xffff. + /// + private short[] head; + + /// + /// prev[index & WMASK] points to the previous index that has the + /// same hash code as the string starting at index. This way + /// entries with the same hash code are in a linked list. + /// Note that the array should really be unsigned short, so you need + /// to and the values with 0xffff. + /// + private short[] prev; + + private int matchStart; + + // Length of best match + private int matchLen; + + // Set if previous match exists + private bool prevAvailable; + + private int blockStart; + + /// + /// Points to the current character in the window. + /// + private int strstart; + + /// + /// lookahead is the number of characters starting at strstart in + /// window that are valid. + /// So window[strstart] until window[strstart+lookahead-1] are valid + /// characters. + /// + private int lookahead; + + /// + /// This array contains the part of the uncompressed stream that + /// is of relevance. The current character is indexed by strstart. + /// + private byte[] window; + + private DeflateStrategy strategy; + private int max_chain, max_lazy, niceLength, goodLength; + + /// + /// The current compression function. + /// + private int compressionFunction; + + /// + /// The input data for compression. + /// + private byte[] inputBuf; + + /// + /// The total bytes of input read. + /// + private long totalIn; + + /// + /// The offset into inputBuf, where input data starts. + /// + private int inputOff; + + /// + /// The end offset of the input data. + /// + private int inputEnd; + + private DeflaterPending pending; + private DeflaterHuffman huffman; + + /// + /// The adler checksum + /// + private Adler32 adler; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs.meta new file mode 100644 index 0000000..7636b0b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1d1746810b85414b8da384d6fc856bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs new file mode 100644 index 0000000..2f71366 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs @@ -0,0 +1,959 @@ +using System; + +namespace ICSharpCode.SharpZipLib.Zip.Compression +{ + /// + /// This is the DeflaterHuffman class. + /// + /// This class is not thread safe. This is inherent in the API, due + /// to the split of Deflate and SetInput. + /// + /// author of the original java version : Jochen Hoenicke + /// + public class DeflaterHuffman + { + private const int BUFSIZE = 1 << (DeflaterConstants.DEFAULT_MEM_LEVEL + 6); + private const int LITERAL_NUM = 286; + + // Number of distance codes + private const int DIST_NUM = 30; + + // Number of codes used to transfer bit lengths + private const int BITLEN_NUM = 19; + + // repeat previous bit length 3-6 times (2 bits of repeat count) + private const int REP_3_6 = 16; + + // repeat a zero length 3-10 times (3 bits of repeat count) + private const int REP_3_10 = 17; + + // repeat a zero length 11-138 times (7 bits of repeat count) + private const int REP_11_138 = 18; + + private const int EOF_SYMBOL = 256; + + // The lengths of the bit length codes are sent in order of decreasing + // probability, to avoid transmitting the lengths for unused bit length codes. + private static readonly int[] BL_ORDER = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; + + private static readonly byte[] bit4Reverse = { + 0, + 8, + 4, + 12, + 2, + 10, + 6, + 14, + 1, + 9, + 5, + 13, + 3, + 11, + 7, + 15 + }; + + private static short[] staticLCodes; + private static byte[] staticLLength; + private static short[] staticDCodes; + private static byte[] staticDLength; + + private class Tree + { + #region Instance Fields + + public short[] freqs; + + public byte[] length; + + public int minNumCodes; + + public int numCodes; + + private short[] codes; + private readonly int[] bl_counts; + private readonly int maxLength; + private DeflaterHuffman dh; + + #endregion Instance Fields + + #region Constructors + + public Tree(DeflaterHuffman dh, int elems, int minCodes, int maxLength) + { + this.dh = dh; + this.minNumCodes = minCodes; + this.maxLength = maxLength; + freqs = new short[elems]; + bl_counts = new int[maxLength]; + } + + #endregion Constructors + + /// + /// Resets the internal state of the tree + /// + public void Reset() + { + for (int i = 0; i < freqs.Length; i++) + { + freqs[i] = 0; + } + codes = null; + length = null; + } + + public void WriteSymbol(int code) + { + // if (DeflaterConstants.DEBUGGING) { + // freqs[code]--; + // // Console.Write("writeSymbol("+freqs.length+","+code+"): "); + // } + dh.pending.WriteBits(codes[code] & 0xffff, length[code]); + } + + /// + /// Check that all frequencies are zero + /// + /// + /// At least one frequency is non-zero + /// + public void CheckEmpty() + { + bool empty = true; + for (int i = 0; i < freqs.Length; i++) + { + empty &= freqs[i] == 0; + } + + if (!empty) + { + throw new SharpZipBaseException("!Empty"); + } + } + + /// + /// Set static codes and length + /// + /// new codes + /// length for new codes + public void SetStaticCodes(short[] staticCodes, byte[] staticLengths) + { + codes = staticCodes; + length = staticLengths; + } + + /// + /// Build dynamic codes and lengths + /// + public void BuildCodes() + { + int numSymbols = freqs.Length; + int[] nextCode = new int[maxLength]; + int code = 0; + + codes = new short[freqs.Length]; + + // if (DeflaterConstants.DEBUGGING) { + // //Console.WriteLine("buildCodes: "+freqs.Length); + // } + + for (int bits = 0; bits < maxLength; bits++) + { + nextCode[bits] = code; + code += bl_counts[bits] << (15 - bits); + + // if (DeflaterConstants.DEBUGGING) { + // //Console.WriteLine("bits: " + ( bits + 1) + " count: " + bl_counts[bits] + // +" nextCode: "+code); + // } + } + +#if DebugDeflation + if ( DeflaterConstants.DEBUGGING && (code != 65536) ) + { + throw new SharpZipBaseException("Inconsistent bl_counts!"); + } +#endif + for (int i = 0; i < numCodes; i++) + { + int bits = length[i]; + if (bits > 0) + { + // if (DeflaterConstants.DEBUGGING) { + // //Console.WriteLine("codes["+i+"] = rev(" + nextCode[bits-1]+"), + // +bits); + // } + + codes[i] = BitReverse(nextCode[bits - 1]); + nextCode[bits - 1] += 1 << (16 - bits); + } + } + } + + public void BuildTree() + { + int numSymbols = freqs.Length; + + /* heap is a priority queue, sorted by frequency, least frequent + * nodes first. The heap is a binary tree, with the property, that + * the parent node is smaller than both child nodes. This assures + * that the smallest node is the first parent. + * + * The binary tree is encoded in an array: 0 is root node and + * the nodes 2*n+1, 2*n+2 are the child nodes of node n. + */ + int[] heap = new int[numSymbols]; + int heapLen = 0; + int maxCode = 0; + for (int n = 0; n < numSymbols; n++) + { + int freq = freqs[n]; + if (freq != 0) + { + // Insert n into heap + int pos = heapLen++; + int ppos; + while (pos > 0 && freqs[heap[ppos = (pos - 1) / 2]] > freq) + { + heap[pos] = heap[ppos]; + pos = ppos; + } + heap[pos] = n; + + maxCode = n; + } + } + + /* We could encode a single literal with 0 bits but then we + * don't see the literals. Therefore we force at least two + * literals to avoid this case. We don't care about order in + * this case, both literals get a 1 bit code. + */ + while (heapLen < 2) + { + int node = maxCode < 2 ? ++maxCode : 0; + heap[heapLen++] = node; + } + + numCodes = Math.Max(maxCode + 1, minNumCodes); + + int numLeafs = heapLen; + int[] childs = new int[4 * heapLen - 2]; + int[] values = new int[2 * heapLen - 1]; + int numNodes = numLeafs; + for (int i = 0; i < heapLen; i++) + { + int node = heap[i]; + childs[2 * i] = node; + childs[2 * i + 1] = -1; + values[i] = freqs[node] << 8; + heap[i] = i; + } + + /* Construct the Huffman tree by repeatedly combining the least two + * frequent nodes. + */ + do + { + int first = heap[0]; + int last = heap[--heapLen]; + + // Propagate the hole to the leafs of the heap + int ppos = 0; + int path = 1; + + while (path < heapLen) + { + if (path + 1 < heapLen && values[heap[path]] > values[heap[path + 1]]) + { + path++; + } + + heap[ppos] = heap[path]; + ppos = path; + path = path * 2 + 1; + } + + /* Now propagate the last element down along path. Normally + * it shouldn't go too deep. + */ + int lastVal = values[last]; + while ((path = ppos) > 0 && values[heap[ppos = (path - 1) / 2]] > lastVal) + { + heap[path] = heap[ppos]; + } + heap[path] = last; + + int second = heap[0]; + + // Create a new node father of first and second + last = numNodes++; + childs[2 * last] = first; + childs[2 * last + 1] = second; + int mindepth = Math.Min(values[first] & 0xff, values[second] & 0xff); + values[last] = lastVal = values[first] + values[second] - mindepth + 1; + + // Again, propagate the hole to the leafs + ppos = 0; + path = 1; + + while (path < heapLen) + { + if (path + 1 < heapLen && values[heap[path]] > values[heap[path + 1]]) + { + path++; + } + + heap[ppos] = heap[path]; + ppos = path; + path = ppos * 2 + 1; + } + + // Now propagate the new element down along path + while ((path = ppos) > 0 && values[heap[ppos = (path - 1) / 2]] > lastVal) + { + heap[path] = heap[ppos]; + } + heap[path] = last; + } while (heapLen > 1); + + if (heap[0] != childs.Length / 2 - 1) + { + throw new SharpZipBaseException("Heap invariant violated"); + } + + BuildLength(childs); + } + + /// + /// Get encoded length + /// + /// Encoded length, the sum of frequencies * lengths + public int GetEncodedLength() + { + int len = 0; + for (int i = 0; i < freqs.Length; i++) + { + len += freqs[i] * length[i]; + } + return len; + } + + /// + /// Scan a literal or distance tree to determine the frequencies of the codes + /// in the bit length tree. + /// + public void CalcBLFreq(Tree blTree) + { + int max_count; /* max repeat count */ + int min_count; /* min repeat count */ + int count; /* repeat count of the current code */ + int curlen = -1; /* length of current code */ + + int i = 0; + while (i < numCodes) + { + count = 1; + int nextlen = length[i]; + if (nextlen == 0) + { + max_count = 138; + min_count = 3; + } + else + { + max_count = 6; + min_count = 3; + if (curlen != nextlen) + { + blTree.freqs[nextlen]++; + count = 0; + } + } + curlen = nextlen; + i++; + + while (i < numCodes && curlen == length[i]) + { + i++; + if (++count >= max_count) + { + break; + } + } + + if (count < min_count) + { + blTree.freqs[curlen] += (short)count; + } + else if (curlen != 0) + { + blTree.freqs[REP_3_6]++; + } + else if (count <= 10) + { + blTree.freqs[REP_3_10]++; + } + else + { + blTree.freqs[REP_11_138]++; + } + } + } + + /// + /// Write tree values + /// + /// Tree to write + public void WriteTree(Tree blTree) + { + int max_count; // max repeat count + int min_count; // min repeat count + int count; // repeat count of the current code + int curlen = -1; // length of current code + + int i = 0; + while (i < numCodes) + { + count = 1; + int nextlen = length[i]; + if (nextlen == 0) + { + max_count = 138; + min_count = 3; + } + else + { + max_count = 6; + min_count = 3; + if (curlen != nextlen) + { + blTree.WriteSymbol(nextlen); + count = 0; + } + } + curlen = nextlen; + i++; + + while (i < numCodes && curlen == length[i]) + { + i++; + if (++count >= max_count) + { + break; + } + } + + if (count < min_count) + { + while (count-- > 0) + { + blTree.WriteSymbol(curlen); + } + } + else if (curlen != 0) + { + blTree.WriteSymbol(REP_3_6); + dh.pending.WriteBits(count - 3, 2); + } + else if (count <= 10) + { + blTree.WriteSymbol(REP_3_10); + dh.pending.WriteBits(count - 3, 3); + } + else + { + blTree.WriteSymbol(REP_11_138); + dh.pending.WriteBits(count - 11, 7); + } + } + } + + private void BuildLength(int[] childs) + { + this.length = new byte[freqs.Length]; + int numNodes = childs.Length / 2; + int numLeafs = (numNodes + 1) / 2; + int overflow = 0; + + for (int i = 0; i < maxLength; i++) + { + bl_counts[i] = 0; + } + + // First calculate optimal bit lengths + int[] lengths = new int[numNodes]; + lengths[numNodes - 1] = 0; + + for (int i = numNodes - 1; i >= 0; i--) + { + if (childs[2 * i + 1] != -1) + { + int bitLength = lengths[i] + 1; + if (bitLength > maxLength) + { + bitLength = maxLength; + overflow++; + } + lengths[childs[2 * i]] = lengths[childs[2 * i + 1]] = bitLength; + } + else + { + // A leaf node + int bitLength = lengths[i]; + bl_counts[bitLength - 1]++; + this.length[childs[2 * i]] = (byte)lengths[i]; + } + } + + // if (DeflaterConstants.DEBUGGING) { + // //Console.WriteLine("Tree "+freqs.Length+" lengths:"); + // for (int i=0; i < numLeafs; i++) { + // //Console.WriteLine("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]] + // + " len: "+length[childs[2*i]]); + // } + // } + + if (overflow == 0) + { + return; + } + + int incrBitLen = maxLength - 1; + do + { + // Find the first bit length which could increase: + while (bl_counts[--incrBitLen] == 0) + { + } + + // Move this node one down and remove a corresponding + // number of overflow nodes. + do + { + bl_counts[incrBitLen]--; + bl_counts[++incrBitLen]++; + overflow -= 1 << (maxLength - 1 - incrBitLen); + } while (overflow > 0 && incrBitLen < maxLength - 1); + } while (overflow > 0); + + /* We may have overshot above. Move some nodes from maxLength to + * maxLength-1 in that case. + */ + bl_counts[maxLength - 1] += overflow; + bl_counts[maxLength - 2] -= overflow; + + /* Now recompute all bit lengths, scanning in increasing + * frequency. It is simpler to reconstruct all lengths instead of + * fixing only the wrong ones. This idea is taken from 'ar' + * written by Haruhiko Okumura. + * + * The nodes were inserted with decreasing frequency into the childs + * array. + */ + int nodePtr = 2 * numLeafs; + for (int bits = maxLength; bits != 0; bits--) + { + int n = bl_counts[bits - 1]; + while (n > 0) + { + int childPtr = 2 * childs[nodePtr++]; + if (childs[childPtr + 1] == -1) + { + // We found another leaf + length[childs[childPtr]] = (byte)bits; + n--; + } + } + } + // if (DeflaterConstants.DEBUGGING) { + // //Console.WriteLine("*** After overflow elimination. ***"); + // for (int i=0; i < numLeafs; i++) { + // //Console.WriteLine("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]] + // + " len: "+length[childs[2*i]]); + // } + // } + } + } + + #region Instance Fields + + /// + /// Pending buffer to use + /// + public DeflaterPending pending; + + private Tree literalTree; + private Tree distTree; + private Tree blTree; + + // Buffer for distances + private short[] d_buf; + + private byte[] l_buf; + private int last_lit; + private int extra_bits; + + #endregion Instance Fields + + static DeflaterHuffman() + { + // See RFC 1951 3.2.6 + // Literal codes + staticLCodes = new short[LITERAL_NUM]; + staticLLength = new byte[LITERAL_NUM]; + + int i = 0; + while (i < 144) + { + staticLCodes[i] = BitReverse((0x030 + i) << 8); + staticLLength[i++] = 8; + } + + while (i < 256) + { + staticLCodes[i] = BitReverse((0x190 - 144 + i) << 7); + staticLLength[i++] = 9; + } + + while (i < 280) + { + staticLCodes[i] = BitReverse((0x000 - 256 + i) << 9); + staticLLength[i++] = 7; + } + + while (i < LITERAL_NUM) + { + staticLCodes[i] = BitReverse((0x0c0 - 280 + i) << 8); + staticLLength[i++] = 8; + } + + // Distance codes + staticDCodes = new short[DIST_NUM]; + staticDLength = new byte[DIST_NUM]; + for (i = 0; i < DIST_NUM; i++) + { + staticDCodes[i] = BitReverse(i << 11); + staticDLength[i] = 5; + } + } + + /// + /// Construct instance with pending buffer + /// + /// Pending buffer to use + public DeflaterHuffman(DeflaterPending pending) + { + this.pending = pending; + + literalTree = new Tree(this, LITERAL_NUM, 257, 15); + distTree = new Tree(this, DIST_NUM, 1, 15); + blTree = new Tree(this, BITLEN_NUM, 4, 7); + + d_buf = new short[BUFSIZE]; + l_buf = new byte[BUFSIZE]; + } + + /// + /// Reset internal state + /// + public void Reset() + { + last_lit = 0; + extra_bits = 0; + literalTree.Reset(); + distTree.Reset(); + blTree.Reset(); + } + + /// + /// Write all trees to pending buffer + /// + /// The number/rank of treecodes to send. + public void SendAllTrees(int blTreeCodes) + { + blTree.BuildCodes(); + literalTree.BuildCodes(); + distTree.BuildCodes(); + pending.WriteBits(literalTree.numCodes - 257, 5); + pending.WriteBits(distTree.numCodes - 1, 5); + pending.WriteBits(blTreeCodes - 4, 4); + for (int rank = 0; rank < blTreeCodes; rank++) + { + pending.WriteBits(blTree.length[BL_ORDER[rank]], 3); + } + literalTree.WriteTree(blTree); + distTree.WriteTree(blTree); + +#if DebugDeflation + if (DeflaterConstants.DEBUGGING) { + blTree.CheckEmpty(); + } +#endif + } + + /// + /// Compress current buffer writing data to pending buffer + /// + public void CompressBlock() + { + for (int i = 0; i < last_lit; i++) + { + int litlen = l_buf[i] & 0xff; + int dist = d_buf[i]; + if (dist-- != 0) + { + // if (DeflaterConstants.DEBUGGING) { + // Console.Write("["+(dist+1)+","+(litlen+3)+"]: "); + // } + + int lc = Lcode(litlen); + literalTree.WriteSymbol(lc); + + int bits = (lc - 261) / 4; + if (bits > 0 && bits <= 5) + { + pending.WriteBits(litlen & ((1 << bits) - 1), bits); + } + + int dc = Dcode(dist); + distTree.WriteSymbol(dc); + + bits = dc / 2 - 1; + if (bits > 0) + { + pending.WriteBits(dist & ((1 << bits) - 1), bits); + } + } + else + { + // if (DeflaterConstants.DEBUGGING) { + // if (litlen > 32 && litlen < 127) { + // Console.Write("("+(char)litlen+"): "); + // } else { + // Console.Write("{"+litlen+"}: "); + // } + // } + literalTree.WriteSymbol(litlen); + } + } + +#if DebugDeflation + if (DeflaterConstants.DEBUGGING) { + Console.Write("EOF: "); + } +#endif + literalTree.WriteSymbol(EOF_SYMBOL); + +#if DebugDeflation + if (DeflaterConstants.DEBUGGING) { + literalTree.CheckEmpty(); + distTree.CheckEmpty(); + } +#endif + } + + /// + /// Flush block to output with no compression + /// + /// Data to write + /// Index of first byte to write + /// Count of bytes to write + /// True if this is the last block + public void FlushStoredBlock(byte[] stored, int storedOffset, int storedLength, bool lastBlock) + { +#if DebugDeflation + // if (DeflaterConstants.DEBUGGING) { + // //Console.WriteLine("Flushing stored block "+ storedLength); + // } +#endif + pending.WriteBits((DeflaterConstants.STORED_BLOCK << 1) + (lastBlock ? 1 : 0), 3); + pending.AlignToByte(); + pending.WriteShort(storedLength); + pending.WriteShort(~storedLength); + pending.WriteBlock(stored, storedOffset, storedLength); + Reset(); + } + + /// + /// Flush block to output with compression + /// + /// Data to flush + /// Index of first byte to flush + /// Count of bytes to flush + /// True if this is the last block + public void FlushBlock(byte[] stored, int storedOffset, int storedLength, bool lastBlock) + { + literalTree.freqs[EOF_SYMBOL]++; + + // Build trees + literalTree.BuildTree(); + distTree.BuildTree(); + + // Calculate bitlen frequency + literalTree.CalcBLFreq(blTree); + distTree.CalcBLFreq(blTree); + + // Build bitlen tree + blTree.BuildTree(); + + int blTreeCodes = 4; + for (int i = 18; i > blTreeCodes; i--) + { + if (blTree.length[BL_ORDER[i]] > 0) + { + blTreeCodes = i + 1; + } + } + int opt_len = 14 + blTreeCodes * 3 + blTree.GetEncodedLength() + + literalTree.GetEncodedLength() + distTree.GetEncodedLength() + + extra_bits; + + int static_len = extra_bits; + for (int i = 0; i < LITERAL_NUM; i++) + { + static_len += literalTree.freqs[i] * staticLLength[i]; + } + for (int i = 0; i < DIST_NUM; i++) + { + static_len += distTree.freqs[i] * staticDLength[i]; + } + if (opt_len >= static_len) + { + // Force static trees + opt_len = static_len; + } + + if (storedOffset >= 0 && storedLength + 4 < opt_len >> 3) + { + // Store Block + + // if (DeflaterConstants.DEBUGGING) { + // //Console.WriteLine("Storing, since " + storedLength + " < " + opt_len + // + " <= " + static_len); + // } + FlushStoredBlock(stored, storedOffset, storedLength, lastBlock); + } + else if (opt_len == static_len) + { + // Encode with static tree + pending.WriteBits((DeflaterConstants.STATIC_TREES << 1) + (lastBlock ? 1 : 0), 3); + literalTree.SetStaticCodes(staticLCodes, staticLLength); + distTree.SetStaticCodes(staticDCodes, staticDLength); + CompressBlock(); + Reset(); + } + else + { + // Encode with dynamic tree + pending.WriteBits((DeflaterConstants.DYN_TREES << 1) + (lastBlock ? 1 : 0), 3); + SendAllTrees(blTreeCodes); + CompressBlock(); + Reset(); + } + } + + /// + /// Get value indicating if internal buffer is full + /// + /// true if buffer is full + public bool IsFull() + { + return last_lit >= BUFSIZE; + } + + /// + /// Add literal to buffer + /// + /// Literal value to add to buffer. + /// Value indicating internal buffer is full + public bool TallyLit(int literal) + { + // if (DeflaterConstants.DEBUGGING) { + // if (lit > 32 && lit < 127) { + // //Console.WriteLine("("+(char)lit+")"); + // } else { + // //Console.WriteLine("{"+lit+"}"); + // } + // } + d_buf[last_lit] = 0; + l_buf[last_lit++] = (byte)literal; + literalTree.freqs[literal]++; + return IsFull(); + } + + /// + /// Add distance code and length to literal and distance trees + /// + /// Distance code + /// Length + /// Value indicating if internal buffer is full + public bool TallyDist(int distance, int length) + { + // if (DeflaterConstants.DEBUGGING) { + // //Console.WriteLine("[" + distance + "," + length + "]"); + // } + + d_buf[last_lit] = (short)distance; + l_buf[last_lit++] = (byte)(length - 3); + + int lc = Lcode(length - 3); + literalTree.freqs[lc]++; + if (lc >= 265 && lc < 285) + { + extra_bits += (lc - 261) / 4; + } + + int dc = Dcode(distance - 1); + distTree.freqs[dc]++; + if (dc >= 4) + { + extra_bits += dc / 2 - 1; + } + return IsFull(); + } + + /// + /// Reverse the bits of a 16 bit value. + /// + /// Value to reverse bits + /// Value with bits reversed + public static short BitReverse(int toReverse) + { + return (short)(bit4Reverse[toReverse & 0xF] << 12 | + bit4Reverse[(toReverse >> 4) & 0xF] << 8 | + bit4Reverse[(toReverse >> 8) & 0xF] << 4 | + bit4Reverse[toReverse >> 12]); + } + + private static int Lcode(int length) + { + if (length == 255) + { + return 285; + } + + int code = 257; + while (length >= 8) + { + code += 4; + length >>= 1; + } + return code + length; + } + + private static int Dcode(int distance) + { + int code = 0; + while (distance >= 4) + { + code += 2; + distance >>= 1; + } + return code + distance; + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs.meta new file mode 100644 index 0000000..e21aede --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 161779d6891f24d31a14d3049ff0369e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs new file mode 100644 index 0000000..80d3e21 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs @@ -0,0 +1,17 @@ +namespace ICSharpCode.SharpZipLib.Zip.Compression +{ + /// + /// This class stores the pending output of the Deflater. + /// + /// author of the original java version : Jochen Hoenicke + /// + public class DeflaterPending : PendingBuffer + { + /// + /// Construct instance with default buffer size + /// + public DeflaterPending() : base(DeflaterConstants.PENDING_BUF_SIZE) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs.meta new file mode 100644 index 0000000..83fe1d7 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5a3e914e44a64422395805cf32fab70f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs new file mode 100644 index 0000000..439b4c6 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs @@ -0,0 +1,887 @@ +using ICSharpCode.SharpZipLib.Checksum; +using ICSharpCode.SharpZipLib.Zip.Compression.Streams; +using System; + +namespace ICSharpCode.SharpZipLib.Zip.Compression +{ + /// + /// Inflater is used to decompress data that has been compressed according + /// to the "deflate" standard described in rfc1951. + /// + /// By default Zlib (rfc1950) headers and footers are expected in the input. + /// You can use constructor public Inflater(bool noHeader) passing true + /// if there is no Zlib header information + /// + /// The usage is as following. First you have to set some input with + /// SetInput(), then Inflate() it. If inflate doesn't + /// inflate any bytes there may be three reasons: + ///
    + ///
  • IsNeedingInput() returns true because the input buffer is empty. + /// You have to provide more input with SetInput(). + /// NOTE: IsNeedingInput() also returns true when, the stream is finished. + ///
  • + ///
  • IsNeedingDictionary() returns true, you have to provide a preset + /// dictionary with SetDictionary().
  • + ///
  • IsFinished returns true, the inflater has finished.
  • + ///
+ /// Once the first output byte is produced, a dictionary will not be + /// needed at a later stage. + /// + /// author of the original java version : John Leuner, Jochen Hoenicke + ///
+ public class Inflater + { + #region Constants/Readonly + + /// + /// Copy lengths for literal codes 257..285 + /// + private static readonly int[] CPLENS = { + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 + }; + + /// + /// Extra bits for literal codes 257..285 + /// + private static readonly int[] CPLEXT = { + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, + 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0 + }; + + /// + /// Copy offsets for distance codes 0..29 + /// + private static readonly int[] CPDIST = { + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577 + }; + + /// + /// Extra bits for distance codes + /// + private static readonly int[] CPDEXT = { + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, + 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, + 12, 12, 13, 13 + }; + + /// + /// These are the possible states for an inflater + /// + private const int DECODE_HEADER = 0; + + private const int DECODE_DICT = 1; + private const int DECODE_BLOCKS = 2; + private const int DECODE_STORED_LEN1 = 3; + private const int DECODE_STORED_LEN2 = 4; + private const int DECODE_STORED = 5; + private const int DECODE_DYN_HEADER = 6; + private const int DECODE_HUFFMAN = 7; + private const int DECODE_HUFFMAN_LENBITS = 8; + private const int DECODE_HUFFMAN_DIST = 9; + private const int DECODE_HUFFMAN_DISTBITS = 10; + private const int DECODE_CHKSUM = 11; + private const int FINISHED = 12; + + #endregion Constants/Readonly + + #region Instance Fields + + /// + /// This variable contains the current state. + /// + private int mode; + + /// + /// The adler checksum of the dictionary or of the decompressed + /// stream, as it is written in the header resp. footer of the + /// compressed stream. + /// Only valid if mode is DECODE_DICT or DECODE_CHKSUM. + /// + private int readAdler; + + /// + /// The number of bits needed to complete the current state. This + /// is valid, if mode is DECODE_DICT, DECODE_CHKSUM, + /// DECODE_HUFFMAN_LENBITS or DECODE_HUFFMAN_DISTBITS. + /// + private int neededBits; + + private int repLength; + private int repDist; + private int uncomprLen; + + /// + /// True, if the last block flag was set in the last block of the + /// inflated stream. This means that the stream ends after the + /// current block. + /// + private bool isLastBlock; + + /// + /// The total number of inflated bytes. + /// + private long totalOut; + + /// + /// The total number of bytes set with setInput(). This is not the + /// value returned by the TotalIn property, since this also includes the + /// unprocessed input. + /// + private long totalIn; + + /// + /// This variable stores the noHeader flag that was given to the constructor. + /// True means, that the inflated stream doesn't contain a Zlib header or + /// footer. + /// + private bool noHeader; + + private readonly StreamManipulator input; + private OutputWindow outputWindow; + private InflaterDynHeader dynHeader; + private InflaterHuffmanTree litlenTree, distTree; + private Adler32 adler; + + #endregion Instance Fields + + #region Constructors + + /// + /// Creates a new inflater or RFC1951 decompressor + /// RFC1950/Zlib headers and footers will be expected in the input data + /// + public Inflater() : this(false) + { + } + + /// + /// Creates a new inflater. + /// + /// + /// True if no RFC1950/Zlib header and footer fields are expected in the input data + /// + /// This is used for GZIPed/Zipped input. + /// + /// For compatibility with + /// Sun JDK you should provide one byte of input more than needed in + /// this case. + /// + public Inflater(bool noHeader) + { + this.noHeader = noHeader; + if (!noHeader) + this.adler = new Adler32(); + input = new StreamManipulator(); + outputWindow = new OutputWindow(); + mode = noHeader ? DECODE_BLOCKS : DECODE_HEADER; + } + + #endregion Constructors + + /// + /// Resets the inflater so that a new stream can be decompressed. All + /// pending input and output will be discarded. + /// + public void Reset() + { + mode = noHeader ? DECODE_BLOCKS : DECODE_HEADER; + totalIn = 0; + totalOut = 0; + input.Reset(); + outputWindow.Reset(); + dynHeader = null; + litlenTree = null; + distTree = null; + isLastBlock = false; + adler?.Reset(); + } + + /// + /// Decodes a zlib/RFC1950 header. + /// + /// + /// False if more input is needed. + /// + /// + /// The header is invalid. + /// + private bool DecodeHeader() + { + int header = input.PeekBits(16); + if (header < 0) + { + return false; + } + input.DropBits(16); + + // The header is written in "wrong" byte order + header = ((header << 8) | (header >> 8)) & 0xffff; + if (header % 31 != 0) + { + throw new SharpZipBaseException("Header checksum illegal"); + } + + if ((header & 0x0f00) != (Deflater.DEFLATED << 8)) + { + throw new SharpZipBaseException("Compression Method unknown"); + } + + /* Maximum size of the backwards window in bits. + * We currently ignore this, but we could use it to make the + * inflater window more space efficient. On the other hand the + * full window (15 bits) is needed most times, anyway. + int max_wbits = ((header & 0x7000) >> 12) + 8; + */ + + if ((header & 0x0020) == 0) + { // Dictionary flag? + mode = DECODE_BLOCKS; + } + else + { + mode = DECODE_DICT; + neededBits = 32; + } + return true; + } + + /// + /// Decodes the dictionary checksum after the deflate header. + /// + /// + /// False if more input is needed. + /// + private bool DecodeDict() + { + while (neededBits > 0) + { + int dictByte = input.PeekBits(8); + if (dictByte < 0) + { + return false; + } + input.DropBits(8); + readAdler = (readAdler << 8) | dictByte; + neededBits -= 8; + } + return false; + } + + /// + /// Decodes the huffman encoded symbols in the input stream. + /// + /// + /// false if more input is needed, true if output window is + /// full or the current block ends. + /// + /// + /// if deflated stream is invalid. + /// + private bool DecodeHuffman() + { + int free = outputWindow.GetFreeSpace(); + while (free >= 258) + { + int symbol; + switch (mode) + { + case DECODE_HUFFMAN: + // This is the inner loop so it is optimized a bit + while (((symbol = litlenTree.GetSymbol(input)) & ~0xff) == 0) + { + outputWindow.Write(symbol); + if (--free < 258) + { + return true; + } + } + + if (symbol < 257) + { + if (symbol < 0) + { + return false; + } + else + { + // symbol == 256: end of block + distTree = null; + litlenTree = null; + mode = DECODE_BLOCKS; + return true; + } + } + + try + { + repLength = CPLENS[symbol - 257]; + neededBits = CPLEXT[symbol - 257]; + } + catch (Exception) + { + throw new SharpZipBaseException("Illegal rep length code"); + } + goto case DECODE_HUFFMAN_LENBITS; // fall through + + case DECODE_HUFFMAN_LENBITS: + if (neededBits > 0) + { + mode = DECODE_HUFFMAN_LENBITS; + int i = input.PeekBits(neededBits); + if (i < 0) + { + return false; + } + input.DropBits(neededBits); + repLength += i; + } + mode = DECODE_HUFFMAN_DIST; + goto case DECODE_HUFFMAN_DIST; // fall through + + case DECODE_HUFFMAN_DIST: + symbol = distTree.GetSymbol(input); + if (symbol < 0) + { + return false; + } + + try + { + repDist = CPDIST[symbol]; + neededBits = CPDEXT[symbol]; + } + catch (Exception) + { + throw new SharpZipBaseException("Illegal rep dist code"); + } + + goto case DECODE_HUFFMAN_DISTBITS; // fall through + + case DECODE_HUFFMAN_DISTBITS: + if (neededBits > 0) + { + mode = DECODE_HUFFMAN_DISTBITS; + int i = input.PeekBits(neededBits); + if (i < 0) + { + return false; + } + input.DropBits(neededBits); + repDist += i; + } + + outputWindow.Repeat(repLength, repDist); + free -= repLength; + mode = DECODE_HUFFMAN; + break; + + default: + throw new SharpZipBaseException("Inflater unknown mode"); + } + } + return true; + } + + /// + /// Decodes the adler checksum after the deflate stream. + /// + /// + /// false if more input is needed. + /// + /// + /// If checksum doesn't match. + /// + private bool DecodeChksum() + { + while (neededBits > 0) + { + int chkByte = input.PeekBits(8); + if (chkByte < 0) + { + return false; + } + input.DropBits(8); + readAdler = (readAdler << 8) | chkByte; + neededBits -= 8; + } + + if ((int)adler?.Value != readAdler) + { + throw new SharpZipBaseException("Adler chksum doesn't match: " + (int)adler?.Value + " vs. " + readAdler); + } + + mode = FINISHED; + return false; + } + + /// + /// Decodes the deflated stream. + /// + /// + /// false if more input is needed, or if finished. + /// + /// + /// if deflated stream is invalid. + /// + private bool Decode() + { + switch (mode) + { + case DECODE_HEADER: + return DecodeHeader(); + + case DECODE_DICT: + return DecodeDict(); + + case DECODE_CHKSUM: + return DecodeChksum(); + + case DECODE_BLOCKS: + if (isLastBlock) + { + if (noHeader) + { + mode = FINISHED; + return false; + } + else + { + input.SkipToByteBoundary(); + neededBits = 32; + mode = DECODE_CHKSUM; + return true; + } + } + + int type = input.PeekBits(3); + if (type < 0) + { + return false; + } + input.DropBits(3); + + isLastBlock |= (type & 1) != 0; + switch (type >> 1) + { + case DeflaterConstants.STORED_BLOCK: + input.SkipToByteBoundary(); + mode = DECODE_STORED_LEN1; + break; + + case DeflaterConstants.STATIC_TREES: + litlenTree = InflaterHuffmanTree.defLitLenTree; + distTree = InflaterHuffmanTree.defDistTree; + mode = DECODE_HUFFMAN; + break; + + case DeflaterConstants.DYN_TREES: + dynHeader = new InflaterDynHeader(input); + mode = DECODE_DYN_HEADER; + break; + + default: + throw new SharpZipBaseException("Unknown block type " + type); + } + return true; + + case DECODE_STORED_LEN1: + { + if ((uncomprLen = input.PeekBits(16)) < 0) + { + return false; + } + input.DropBits(16); + mode = DECODE_STORED_LEN2; + } + goto case DECODE_STORED_LEN2; // fall through + + case DECODE_STORED_LEN2: + { + int nlen = input.PeekBits(16); + if (nlen < 0) + { + return false; + } + input.DropBits(16); + if (nlen != (uncomprLen ^ 0xffff)) + { + throw new SharpZipBaseException("broken uncompressed block"); + } + mode = DECODE_STORED; + } + goto case DECODE_STORED; // fall through + + case DECODE_STORED: + { + int more = outputWindow.CopyStored(input, uncomprLen); + uncomprLen -= more; + if (uncomprLen == 0) + { + mode = DECODE_BLOCKS; + return true; + } + return !input.IsNeedingInput; + } + + case DECODE_DYN_HEADER: + if (!dynHeader.AttemptRead()) + { + return false; + } + + litlenTree = dynHeader.LiteralLengthTree; + distTree = dynHeader.DistanceTree; + mode = DECODE_HUFFMAN; + goto case DECODE_HUFFMAN; // fall through + + case DECODE_HUFFMAN: + case DECODE_HUFFMAN_LENBITS: + case DECODE_HUFFMAN_DIST: + case DECODE_HUFFMAN_DISTBITS: + return DecodeHuffman(); + + case FINISHED: + return false; + + default: + throw new SharpZipBaseException("Inflater.Decode unknown mode"); + } + } + + /// + /// Sets the preset dictionary. This should only be called, if + /// needsDictionary() returns true and it should set the same + /// dictionary, that was used for deflating. The getAdler() + /// function returns the checksum of the dictionary needed. + /// + /// + /// The dictionary. + /// + public void SetDictionary(byte[] buffer) + { + SetDictionary(buffer, 0, buffer.Length); + } + + /// + /// Sets the preset dictionary. This should only be called, if + /// needsDictionary() returns true and it should set the same + /// dictionary, that was used for deflating. The getAdler() + /// function returns the checksum of the dictionary needed. + /// + /// + /// The dictionary. + /// + /// + /// The index into buffer where the dictionary starts. + /// + /// + /// The number of bytes in the dictionary. + /// + /// + /// No dictionary is needed. + /// + /// + /// The adler checksum for the buffer is invalid + /// + public void SetDictionary(byte[] buffer, int index, int count) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (index < 0) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + + if (count < 0) + { + throw new ArgumentOutOfRangeException(nameof(count)); + } + + if (!IsNeedingDictionary) + { + throw new InvalidOperationException("Dictionary is not needed"); + } + + adler?.Update(new ArraySegment(buffer, index, count)); + + if (adler != null && (int)adler.Value != readAdler) + { + throw new SharpZipBaseException("Wrong adler checksum"); + } + adler?.Reset(); + outputWindow.CopyDict(buffer, index, count); + mode = DECODE_BLOCKS; + } + + /// + /// Sets the input. This should only be called, if needsInput() + /// returns true. + /// + /// + /// the input. + /// + public void SetInput(byte[] buffer) + { + SetInput(buffer, 0, buffer.Length); + } + + /// + /// Sets the input. This should only be called, if needsInput() + /// returns true. + /// + /// + /// The source of input data + /// + /// + /// The index into buffer where the input starts. + /// + /// + /// The number of bytes of input to use. + /// + /// + /// No input is needed. + /// + /// + /// The index and/or count are wrong. + /// + public void SetInput(byte[] buffer, int index, int count) + { + input.SetInput(buffer, index, count); + totalIn += (long)count; + } + + /// + /// Inflates the compressed stream to the output buffer. If this + /// returns 0, you should check, whether IsNeedingDictionary(), + /// IsNeedingInput() or IsFinished() returns true, to determine why no + /// further output is produced. + /// + /// + /// the output buffer. + /// + /// + /// The number of bytes written to the buffer, 0 if no further + /// output can be produced. + /// + /// + /// if buffer has length 0. + /// + /// + /// if deflated stream is invalid. + /// + public int Inflate(byte[] buffer) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + return Inflate(buffer, 0, buffer.Length); + } + + /// + /// Inflates the compressed stream to the output buffer. If this + /// returns 0, you should check, whether needsDictionary(), + /// needsInput() or finished() returns true, to determine why no + /// further output is produced. + /// + /// + /// the output buffer. + /// + /// + /// the offset in buffer where storing starts. + /// + /// + /// the maximum number of bytes to output. + /// + /// + /// the number of bytes written to the buffer, 0 if no further output can be produced. + /// + /// + /// if count is less than 0. + /// + /// + /// if the index and / or count are wrong. + /// + /// + /// if deflated stream is invalid. + /// + public int Inflate(byte[] buffer, int offset, int count) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (count < 0) + { + throw new ArgumentOutOfRangeException(nameof(count), "count cannot be negative"); + } + + if (offset < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset), "offset cannot be negative"); + } + + if (offset + count > buffer.Length) + { + throw new ArgumentException("count exceeds buffer bounds"); + } + + // Special case: count may be zero + if (count == 0) + { + if (!IsFinished) + { // -jr- 08-Nov-2003 INFLATE_BUG fix.. + Decode(); + } + return 0; + } + + int bytesCopied = 0; + + do + { + if (mode != DECODE_CHKSUM) + { + /* Don't give away any output, if we are waiting for the + * checksum in the input stream. + * + * With this trick we have always: + * IsNeedingInput() and not IsFinished() + * implies more output can be produced. + */ + int more = outputWindow.CopyOutput(buffer, offset, count); + if (more > 0) + { + adler?.Update(new ArraySegment(buffer, offset, more)); + offset += more; + bytesCopied += more; + totalOut += (long)more; + count -= more; + if (count == 0) + { + return bytesCopied; + } + } + } + } while (Decode() || ((outputWindow.GetAvailable() > 0) && (mode != DECODE_CHKSUM))); + return bytesCopied; + } + + /// + /// Returns true, if the input buffer is empty. + /// You should then call setInput(). + /// NOTE: This method also returns true when the stream is finished. + /// + public bool IsNeedingInput + { + get + { + return input.IsNeedingInput; + } + } + + /// + /// Returns true, if a preset dictionary is needed to inflate the input. + /// + public bool IsNeedingDictionary + { + get + { + return mode == DECODE_DICT && neededBits == 0; + } + } + + /// + /// Returns true, if the inflater has finished. This means, that no + /// input is needed and no output can be produced. + /// + public bool IsFinished + { + get + { + return mode == FINISHED && outputWindow.GetAvailable() == 0; + } + } + + /// + /// Gets the adler checksum. This is either the checksum of all + /// uncompressed bytes returned by inflate(), or if needsDictionary() + /// returns true (and thus no output was yet produced) this is the + /// adler checksum of the expected dictionary. + /// + /// + /// the adler checksum. + /// + public int Adler + { + get + { + if (IsNeedingDictionary) + { + return readAdler; + } + else if (adler != null) + { + return (int)adler.Value; + } + else + { + return 0; + } + } + } + + /// + /// Gets the total number of output bytes returned by Inflate(). + /// + /// + /// the total number of output bytes. + /// + public long TotalOut + { + get + { + return totalOut; + } + } + + /// + /// Gets the total number of processed compressed input bytes. + /// + /// + /// The total number of bytes of processed input bytes. + /// + public long TotalIn + { + get + { + return totalIn - (long)RemainingInput; + } + } + + /// + /// Gets the number of unprocessed input bytes. Useful, if the end of the + /// stream is reached and you want to further process the bytes after + /// the deflate stream. + /// + /// + /// The number of bytes of the input which have not been processed. + /// + public int RemainingInput + { + // TODO: This should be a long? + get + { + return input.AvailableBytes; + } + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs.meta new file mode 100644 index 0000000..e6abf47 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 98073e313aaa64a3890ce67a929035ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs new file mode 100644 index 0000000..8e0196b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs @@ -0,0 +1,151 @@ +using ICSharpCode.SharpZipLib.Zip.Compression.Streams; +using System; +using System.Collections.Generic; + +namespace ICSharpCode.SharpZipLib.Zip.Compression +{ + internal class InflaterDynHeader + { + #region Constants + + // maximum number of literal/length codes + private const int LITLEN_MAX = 286; + + // maximum number of distance codes + private const int DIST_MAX = 30; + + // maximum data code lengths to read + private const int CODELEN_MAX = LITLEN_MAX + DIST_MAX; + + // maximum meta code length codes to read + private const int META_MAX = 19; + + private static readonly int[] MetaCodeLengthIndex = + { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; + + #endregion Constants + + /// + /// Continue decoding header from until more bits are needed or decoding has been completed + /// + /// Returns whether decoding could be completed + public bool AttemptRead() + => !state.MoveNext() || state.Current; + + public InflaterDynHeader(StreamManipulator input) + { + this.input = input; + stateMachine = CreateStateMachine(); + state = stateMachine.GetEnumerator(); + } + + private IEnumerable CreateStateMachine() + { + // Read initial code length counts from header + while (!input.TryGetBits(5, ref litLenCodeCount, 257)) yield return false; + while (!input.TryGetBits(5, ref distanceCodeCount, 1)) yield return false; + while (!input.TryGetBits(4, ref metaCodeCount, 4)) yield return false; + var dataCodeCount = litLenCodeCount + distanceCodeCount; + + if (litLenCodeCount > LITLEN_MAX) throw new ValueOutOfRangeException(nameof(litLenCodeCount)); + if (distanceCodeCount > DIST_MAX) throw new ValueOutOfRangeException(nameof(distanceCodeCount)); + if (metaCodeCount > META_MAX) throw new ValueOutOfRangeException(nameof(metaCodeCount)); + + // Load code lengths for the meta tree from the header bits + for (int i = 0; i < metaCodeCount; i++) + { + while (!input.TryGetBits(3, ref codeLengths, MetaCodeLengthIndex[i])) yield return false; + } + + var metaCodeTree = new InflaterHuffmanTree(codeLengths); + + // Decompress the meta tree symbols into the data table code lengths + int index = 0; + while (index < dataCodeCount) + { + byte codeLength; + int symbol; + + while ((symbol = metaCodeTree.GetSymbol(input)) < 0) yield return false; + + if (symbol < 16) + { + // append literal code length + codeLengths[index++] = (byte)symbol; + } + else + { + int repeatCount = 0; + + if (symbol == 16) // Repeat last code length 3..6 times + { + if (index == 0) + throw new StreamDecodingException("Cannot repeat previous code length when no other code length has been read"); + + codeLength = codeLengths[index - 1]; + + // 2 bits + 3, [3..6] + while (!input.TryGetBits(2, ref repeatCount, 3)) yield return false; + } + else if (symbol == 17) // Repeat zero 3..10 times + { + codeLength = 0; + + // 3 bits + 3, [3..10] + while (!input.TryGetBits(3, ref repeatCount, 3)) yield return false; + } + else // (symbol == 18), Repeat zero 11..138 times + { + codeLength = 0; + + // 7 bits + 11, [11..138] + while (!input.TryGetBits(7, ref repeatCount, 11)) yield return false; + } + + if (index + repeatCount > dataCodeCount) + throw new StreamDecodingException("Cannot repeat code lengths past total number of data code lengths"); + + while (repeatCount-- > 0) + codeLengths[index++] = codeLength; + } + } + + if (codeLengths[256] == 0) + throw new StreamDecodingException("Inflater dynamic header end-of-block code missing"); + + litLenTree = new InflaterHuffmanTree(new ArraySegment(codeLengths, 0, litLenCodeCount)); + distTree = new InflaterHuffmanTree(new ArraySegment(codeLengths, litLenCodeCount, distanceCodeCount)); + + yield return true; + } + + /// + /// Get literal/length huffman tree, must not be used before has returned true + /// + /// If hader has not been successfully read by the state machine + public InflaterHuffmanTree LiteralLengthTree + => litLenTree ?? throw new StreamDecodingException("Header properties were accessed before header had been successfully read"); + + /// + /// Get distance huffman tree, must not be used before has returned true + /// + /// If hader has not been successfully read by the state machine + public InflaterHuffmanTree DistanceTree + => distTree ?? throw new StreamDecodingException("Header properties were accessed before header had been successfully read"); + + #region Instance Fields + + private readonly StreamManipulator input; + private readonly IEnumerator state; + private readonly IEnumerable stateMachine; + + private byte[] codeLengths = new byte[CODELEN_MAX]; + + private InflaterHuffmanTree litLenTree; + private InflaterHuffmanTree distTree; + + private int litLenCodeCount, distanceCodeCount, metaCodeCount; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs.meta new file mode 100644 index 0000000..12580ee --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1876ffc4441ea4b6cadf552d3b203219 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs new file mode 100644 index 0000000..ed31882 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs @@ -0,0 +1,237 @@ +using ICSharpCode.SharpZipLib.Zip.Compression.Streams; +using System; +using System.Collections.Generic; + +namespace ICSharpCode.SharpZipLib.Zip.Compression +{ + /// + /// Huffman tree used for inflation + /// + public class InflaterHuffmanTree + { + #region Constants + + private const int MAX_BITLEN = 15; + + #endregion Constants + + #region Instance Fields + + private short[] tree; + + #endregion Instance Fields + + /// + /// Literal length tree + /// + public static InflaterHuffmanTree defLitLenTree; + + /// + /// Distance tree + /// + public static InflaterHuffmanTree defDistTree; + + static InflaterHuffmanTree() + { + try + { + byte[] codeLengths = new byte[288]; + int i = 0; + while (i < 144) + { + codeLengths[i++] = 8; + } + while (i < 256) + { + codeLengths[i++] = 9; + } + while (i < 280) + { + codeLengths[i++] = 7; + } + while (i < 288) + { + codeLengths[i++] = 8; + } + defLitLenTree = new InflaterHuffmanTree(codeLengths); + + codeLengths = new byte[32]; + i = 0; + while (i < 32) + { + codeLengths[i++] = 5; + } + defDistTree = new InflaterHuffmanTree(codeLengths); + } + catch (Exception) + { + throw new SharpZipBaseException("InflaterHuffmanTree: static tree length illegal"); + } + } + + #region Constructors + + /// + /// Constructs a Huffman tree from the array of code lengths. + /// + /// + /// the array of code lengths + /// + public InflaterHuffmanTree(IList codeLengths) + { + BuildTree(codeLengths); + } + + #endregion Constructors + + private void BuildTree(IList codeLengths) + { + int[] blCount = new int[MAX_BITLEN + 1]; + int[] nextCode = new int[MAX_BITLEN + 1]; + + for (int i = 0; i < codeLengths.Count; i++) + { + int bits = codeLengths[i]; + if (bits > 0) + { + blCount[bits]++; + } + } + + int code = 0; + int treeSize = 512; + for (int bits = 1; bits <= MAX_BITLEN; bits++) + { + nextCode[bits] = code; + code += blCount[bits] << (16 - bits); + if (bits >= 10) + { + /* We need an extra table for bit lengths >= 10. */ + int start = nextCode[bits] & 0x1ff80; + int end = code & 0x1ff80; + treeSize += (end - start) >> (16 - bits); + } + } + + /* -jr comment this out! doesnt work for dynamic trees and pkzip 2.04g + if (code != 65536) + { + throw new SharpZipBaseException("Code lengths don't add up properly."); + } + */ + /* Now create and fill the extra tables from longest to shortest + * bit len. This way the sub trees will be aligned. + */ + tree = new short[treeSize]; + int treePtr = 512; + for (int bits = MAX_BITLEN; bits >= 10; bits--) + { + int end = code & 0x1ff80; + code -= blCount[bits] << (16 - bits); + int start = code & 0x1ff80; + for (int i = start; i < end; i += 1 << 7) + { + tree[DeflaterHuffman.BitReverse(i)] = (short)((-treePtr << 4) | bits); + treePtr += 1 << (bits - 9); + } + } + + for (int i = 0; i < codeLengths.Count; i++) + { + int bits = codeLengths[i]; + if (bits == 0) + { + continue; + } + code = nextCode[bits]; + int revcode = DeflaterHuffman.BitReverse(code); + if (bits <= 9) + { + do + { + tree[revcode] = (short)((i << 4) | bits); + revcode += 1 << bits; + } while (revcode < 512); + } + else + { + int subTree = tree[revcode & 511]; + int treeLen = 1 << (subTree & 15); + subTree = -(subTree >> 4); + do + { + tree[subTree | (revcode >> 9)] = (short)((i << 4) | bits); + revcode += 1 << bits; + } while (revcode < treeLen); + } + nextCode[bits] = code + (1 << (16 - bits)); + } + } + + /// + /// Reads the next symbol from input. The symbol is encoded using the + /// huffman tree. + /// + /// + /// input the input source. + /// + /// + /// the next symbol, or -1 if not enough input is available. + /// + public int GetSymbol(StreamManipulator input) + { + int lookahead, symbol; + if ((lookahead = input.PeekBits(9)) >= 0) + { + symbol = tree[lookahead]; + int bitlen = symbol & 15; + + if (symbol >= 0) + { + if(bitlen == 0){ + throw new SharpZipBaseException("Encountered invalid codelength 0"); + } + input.DropBits(bitlen); + return symbol >> 4; + } + int subtree = -(symbol >> 4); + if ((lookahead = input.PeekBits(bitlen)) >= 0) + { + symbol = tree[subtree | (lookahead >> 9)]; + input.DropBits(symbol & 15); + return symbol >> 4; + } + else + { + int bits = input.AvailableBits; + lookahead = input.PeekBits(bits); + symbol = tree[subtree | (lookahead >> 9)]; + if ((symbol & 15) <= bits) + { + input.DropBits(symbol & 15); + return symbol >> 4; + } + else + { + return -1; + } + } + } + else // Less than 9 bits + { + int bits = input.AvailableBits; + lookahead = input.PeekBits(bits); + symbol = tree[lookahead]; + if (symbol >= 0 && (symbol & 15) <= bits) + { + input.DropBits(symbol & 15); + return symbol >> 4; + } + else + { + return -1; + } + } + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs.meta new file mode 100644 index 0000000..37a1d89 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 757c459db771a4fcfb94d2d90f7e20ca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs new file mode 100644 index 0000000..6ed7e4a --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs @@ -0,0 +1,268 @@ +namespace ICSharpCode.SharpZipLib.Zip.Compression +{ + /// + /// This class is general purpose class for writing data to a buffer. + /// + /// It allows you to write bits as well as bytes + /// Based on DeflaterPending.java + /// + /// author of the original java version : Jochen Hoenicke + /// + public class PendingBuffer + { + #region Instance Fields + + /// + /// Internal work buffer + /// + private readonly byte[] buffer; + + private int start; + private int end; + + private uint bits; + private int bitCount; + + #endregion Instance Fields + + #region Constructors + + /// + /// construct instance using default buffer size of 4096 + /// + public PendingBuffer() : this(4096) + { + } + + /// + /// construct instance using specified buffer size + /// + /// + /// size to use for internal buffer + /// + public PendingBuffer(int bufferSize) + { + buffer = new byte[bufferSize]; + } + + #endregion Constructors + + /// + /// Clear internal state/buffers + /// + public void Reset() + { + start = end = bitCount = 0; + } + + /// + /// Write a byte to buffer + /// + /// + /// The value to write + /// + public void WriteByte(int value) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && (start != 0) ) + { + throw new SharpZipBaseException("Debug check: start != 0"); + } +#endif + buffer[end++] = unchecked((byte)value); + } + + /// + /// Write a short value to buffer LSB first + /// + /// + /// The value to write. + /// + public void WriteShort(int value) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && (start != 0) ) + { + throw new SharpZipBaseException("Debug check: start != 0"); + } +#endif + buffer[end++] = unchecked((byte)value); + buffer[end++] = unchecked((byte)(value >> 8)); + } + + /// + /// write an integer LSB first + /// + /// The value to write. + public void WriteInt(int value) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && (start != 0) ) + { + throw new SharpZipBaseException("Debug check: start != 0"); + } +#endif + buffer[end++] = unchecked((byte)value); + buffer[end++] = unchecked((byte)(value >> 8)); + buffer[end++] = unchecked((byte)(value >> 16)); + buffer[end++] = unchecked((byte)(value >> 24)); + } + + /// + /// Write a block of data to buffer + /// + /// data to write + /// offset of first byte to write + /// number of bytes to write + public void WriteBlock(byte[] block, int offset, int length) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && (start != 0) ) + { + throw new SharpZipBaseException("Debug check: start != 0"); + } +#endif + System.Array.Copy(block, offset, buffer, end, length); + end += length; + } + + /// + /// The number of bits written to the buffer + /// + public int BitCount + { + get + { + return bitCount; + } + } + + /// + /// Align internal buffer on a byte boundary + /// + public void AlignToByte() + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && (start != 0) ) + { + throw new SharpZipBaseException("Debug check: start != 0"); + } +#endif + if (bitCount > 0) + { + buffer[end++] = unchecked((byte)bits); + if (bitCount > 8) + { + buffer[end++] = unchecked((byte)(bits >> 8)); + } + } + bits = 0; + bitCount = 0; + } + + /// + /// Write bits to internal buffer + /// + /// source of bits + /// number of bits to write + public void WriteBits(int b, int count) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && (start != 0) ) + { + throw new SharpZipBaseException("Debug check: start != 0"); + } + + // if (DeflaterConstants.DEBUGGING) { + // //Console.WriteLine("writeBits("+b+","+count+")"); + // } +#endif + bits |= (uint)(b << bitCount); + bitCount += count; + if (bitCount >= 16) + { + buffer[end++] = unchecked((byte)bits); + buffer[end++] = unchecked((byte)(bits >> 8)); + bits >>= 16; + bitCount -= 16; + } + } + + /// + /// Write a short value to internal buffer most significant byte first + /// + /// value to write + public void WriteShortMSB(int s) + { +#if DebugDeflation + if (DeflaterConstants.DEBUGGING && (start != 0) ) + { + throw new SharpZipBaseException("Debug check: start != 0"); + } +#endif + buffer[end++] = unchecked((byte)(s >> 8)); + buffer[end++] = unchecked((byte)s); + } + + /// + /// Indicates if buffer has been flushed + /// + public bool IsFlushed + { + get + { + return end == 0; + } + } + + /// + /// Flushes the pending buffer into the given output array. If the + /// output array is to small, only a partial flush is done. + /// + /// The output array. + /// The offset into output array. + /// The maximum number of bytes to store. + /// The number of bytes flushed. + public int Flush(byte[] output, int offset, int length) + { + if (bitCount >= 8) + { + buffer[end++] = unchecked((byte)bits); + bits >>= 8; + bitCount -= 8; + } + + if (length > end - start) + { + length = end - start; + System.Array.Copy(buffer, start, output, offset, length); + start = 0; + end = 0; + } + else + { + System.Array.Copy(buffer, start, output, offset, length); + start += length; + } + return length; + } + + /// + /// Convert internal buffer to byte array. + /// Buffer is empty on completion + /// + /// + /// The internal buffer contents converted to a byte array. + /// + public byte[] ToByteArray() + { + AlignToByte(); + + byte[] result = new byte[end - start]; + System.Array.Copy(buffer, start, result, 0, result.Length); + start = 0; + end = 0; + return result; + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs.meta new file mode 100644 index 0000000..45259cf --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2a6367048f9ee4d4f963aac9fe78c69e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams.meta new file mode 100644 index 0000000..d196b26 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 70769970530804aa49e0242ade051837 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs new file mode 100644 index 0000000..b6d4025 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs @@ -0,0 +1,438 @@ +using ICSharpCode.SharpZipLib.Encryption; +using System; +using System.IO; +using System.Security.Cryptography; + +namespace ICSharpCode.SharpZipLib.Zip.Compression.Streams +{ + /// + /// A special stream deflating or compressing the bytes that are + /// written to it. It uses a Deflater to perform actual deflating.
+ /// Authors of the original java version : Tom Tromey, Jochen Hoenicke + ///
+ public class DeflaterOutputStream : Stream + { + #region Constructors + + /// + /// Creates a new DeflaterOutputStream with a default Deflater and default buffer size. + /// + /// + /// the output stream where deflated output should be written. + /// + public DeflaterOutputStream(Stream baseOutputStream) + : this(baseOutputStream, new Deflater(), 512) + { + } + + /// + /// Creates a new DeflaterOutputStream with the given Deflater and + /// default buffer size. + /// + /// + /// the output stream where deflated output should be written. + /// + /// + /// the underlying deflater. + /// + public DeflaterOutputStream(Stream baseOutputStream, Deflater deflater) + : this(baseOutputStream, deflater, 512) + { + } + + /// + /// Creates a new DeflaterOutputStream with the given Deflater and + /// buffer size. + /// + /// + /// The output stream where deflated output is written. + /// + /// + /// The underlying deflater to use + /// + /// + /// The buffer size in bytes to use when deflating (minimum value 512) + /// + /// + /// bufsize is less than or equal to zero. + /// + /// + /// baseOutputStream does not support writing + /// + /// + /// deflater instance is null + /// + public DeflaterOutputStream(Stream baseOutputStream, Deflater deflater, int bufferSize) + { + if (baseOutputStream == null) + { + throw new ArgumentNullException(nameof(baseOutputStream)); + } + + if (baseOutputStream.CanWrite == false) + { + throw new ArgumentException("Must support writing", nameof(baseOutputStream)); + } + + if (bufferSize < 512) + { + throw new ArgumentOutOfRangeException(nameof(bufferSize)); + } + + baseOutputStream_ = baseOutputStream; + buffer_ = new byte[bufferSize]; + deflater_ = deflater ?? throw new ArgumentNullException(nameof(deflater)); + } + + #endregion Constructors + + #region Public API + + /// + /// Finishes the stream by calling finish() on the deflater. + /// + /// + /// Not all input is deflated + /// + public virtual void Finish() + { + deflater_.Finish(); + while (!deflater_.IsFinished) + { + int len = deflater_.Deflate(buffer_, 0, buffer_.Length); + if (len <= 0) + { + break; + } + + if (cryptoTransform_ != null) + { + EncryptBlock(buffer_, 0, len); + } + + baseOutputStream_.Write(buffer_, 0, len); + } + + if (!deflater_.IsFinished) + { + throw new SharpZipBaseException("Can't deflate all input?"); + } + + baseOutputStream_.Flush(); + + if (cryptoTransform_ != null) + { + if (cryptoTransform_ is ZipAESTransform) + { + AESAuthCode = ((ZipAESTransform)cryptoTransform_).GetAuthCode(); + } + cryptoTransform_.Dispose(); + cryptoTransform_ = null; + } + } + + /// + /// Gets or sets a flag indicating ownership of underlying stream. + /// When the flag is true will close the underlying stream also. + /// + /// The default value is true. + public bool IsStreamOwner { get; set; } = true; + + /// + /// Allows client to determine if an entry can be patched after its added + /// + public bool CanPatchEntries + { + get + { + return baseOutputStream_.CanSeek; + } + } + + #endregion Public API + + #region Encryption + + /// + /// The CryptoTransform currently being used to encrypt the compressed data. + /// + protected ICryptoTransform cryptoTransform_; + + /// + /// Returns the 10 byte AUTH CODE to be appended immediately following the AES data stream. + /// + protected byte[] AESAuthCode; + + /// + /// Encrypt a block of data + /// + /// + /// Data to encrypt. NOTE the original contents of the buffer are lost + /// + /// + /// Offset of first byte in buffer to encrypt + /// + /// + /// Number of bytes in buffer to encrypt + /// + protected void EncryptBlock(byte[] buffer, int offset, int length) + { + cryptoTransform_.TransformBlock(buffer, 0, length, buffer, 0); + } + + #endregion Encryption + + #region Deflation Support + + /// + /// Deflates everything in the input buffers. This will call + /// def.deflate() until all bytes from the input buffers + /// are processed. + /// + protected void Deflate() + { + Deflate(false); + } + + private void Deflate(bool flushing) + { + while (flushing || !deflater_.IsNeedingInput) + { + int deflateCount = deflater_.Deflate(buffer_, 0, buffer_.Length); + + if (deflateCount <= 0) + { + break; + } + if (cryptoTransform_ != null) + { + EncryptBlock(buffer_, 0, deflateCount); + } + + baseOutputStream_.Write(buffer_, 0, deflateCount); + } + + if (!deflater_.IsNeedingInput) + { + throw new SharpZipBaseException("DeflaterOutputStream can't deflate all input?"); + } + } + + #endregion Deflation Support + + #region Stream Overrides + + /// + /// Gets value indicating stream can be read from + /// + public override bool CanRead + { + get + { + return false; + } + } + + /// + /// Gets a value indicating if seeking is supported for this stream + /// This property always returns false + /// + public override bool CanSeek + { + get + { + return false; + } + } + + /// + /// Get value indicating if this stream supports writing + /// + public override bool CanWrite + { + get + { + return baseOutputStream_.CanWrite; + } + } + + /// + /// Get current length of stream + /// + public override long Length + { + get + { + return baseOutputStream_.Length; + } + } + + /// + /// Gets the current position within the stream. + /// + /// Any attempt to set position + public override long Position + { + get + { + return baseOutputStream_.Position; + } + set + { + throw new NotSupportedException("Position property not supported"); + } + } + + /// + /// Sets the current position of this stream to the given value. Not supported by this class! + /// + /// The offset relative to the to seek. + /// The to seek from. + /// The new position in the stream. + /// Any access + public override long Seek(long offset, SeekOrigin origin) + { + throw new NotSupportedException("DeflaterOutputStream Seek not supported"); + } + + /// + /// Sets the length of this stream to the given value. Not supported by this class! + /// + /// The new stream length. + /// Any access + public override void SetLength(long value) + { + throw new NotSupportedException("DeflaterOutputStream SetLength not supported"); + } + + /// + /// Read a byte from stream advancing position by one + /// + /// The byte read cast to an int. THe value is -1 if at the end of the stream. + /// Any access + public override int ReadByte() + { + throw new NotSupportedException("DeflaterOutputStream ReadByte not supported"); + } + + /// + /// Read a block of bytes from stream + /// + /// The buffer to store read data in. + /// The offset to start storing at. + /// The maximum number of bytes to read. + /// The actual number of bytes read. Zero if end of stream is detected. + /// Any access + public override int Read(byte[] buffer, int offset, int count) + { + throw new NotSupportedException("DeflaterOutputStream Read not supported"); + } + + /// + /// Flushes the stream by calling Flush on the deflater and then + /// on the underlying stream. This ensures that all bytes are flushed. + /// + public override void Flush() + { + deflater_.Flush(); + Deflate(true); + baseOutputStream_.Flush(); + } + + /// + /// Calls and closes the underlying + /// stream when is true. + /// + protected override void Dispose(bool disposing) + { + if (!isClosed_) + { + isClosed_ = true; + + try + { + Finish(); + if (cryptoTransform_ != null) + { + GetAuthCodeIfAES(); + cryptoTransform_.Dispose(); + cryptoTransform_ = null; + } + } + finally + { + if (IsStreamOwner) + { + baseOutputStream_.Dispose(); + } + } + } + } + + /// + /// Get the Auth code for AES encrypted entries + /// + protected void GetAuthCodeIfAES() + { + if (cryptoTransform_ is ZipAESTransform) + { + AESAuthCode = ((ZipAESTransform)cryptoTransform_).GetAuthCode(); + } + } + + /// + /// Writes a single byte to the compressed output stream. + /// + /// + /// The byte value. + /// + public override void WriteByte(byte value) + { + byte[] b = new byte[1]; + b[0] = value; + Write(b, 0, 1); + } + + /// + /// Writes bytes from an array to the compressed stream. + /// + /// + /// The byte array + /// + /// + /// The offset into the byte array where to start. + /// + /// + /// The number of bytes to write. + /// + public override void Write(byte[] buffer, int offset, int count) + { + deflater_.SetInput(buffer, offset, count); + Deflate(); + } + + #endregion Stream Overrides + + #region Instance Fields + + /// + /// This buffer is used temporarily to retrieve the bytes from the + /// deflater and write them to the underlying output stream. + /// + private byte[] buffer_; + + /// + /// The deflater which is used to deflate the stream. + /// + protected Deflater deflater_; + + /// + /// Base stream the deflater depends on. + /// + protected Stream baseOutputStream_; + + private bool isClosed_; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs.meta new file mode 100644 index 0000000..3acacf0 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b1e1e93e5628b47809fa2267d0171aaa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs new file mode 100644 index 0000000..7790474 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs @@ -0,0 +1,713 @@ +using System; +using System.IO; +using System.Security.Cryptography; + +namespace ICSharpCode.SharpZipLib.Zip.Compression.Streams +{ + /// + /// An input buffer customised for use by + /// + /// + /// The buffer supports decryption of incoming data. + /// + public class InflaterInputBuffer + { + #region Constructors + + /// + /// Initialise a new instance of with a default buffer size + /// + /// The stream to buffer. + public InflaterInputBuffer(Stream stream) : this(stream, 4096) + { + } + + /// + /// Initialise a new instance of + /// + /// The stream to buffer. + /// The size to use for the buffer + /// A minimum buffer size of 1KB is permitted. Lower sizes are treated as 1KB. + public InflaterInputBuffer(Stream stream, int bufferSize) + { + inputStream = stream; + if (bufferSize < 1024) + { + bufferSize = 1024; + } + rawData = new byte[bufferSize]; + clearText = rawData; + } + + #endregion Constructors + + /// + /// Get the length of bytes in the + /// + public int RawLength + { + get + { + return rawLength; + } + } + + /// + /// Get the contents of the raw data buffer. + /// + /// This may contain encrypted data. + public byte[] RawData + { + get + { + return rawData; + } + } + + /// + /// Get the number of useable bytes in + /// + public int ClearTextLength + { + get + { + return clearTextLength; + } + } + + /// + /// Get the contents of the clear text buffer. + /// + public byte[] ClearText + { + get + { + return clearText; + } + } + + /// + /// Get/set the number of bytes available + /// + public int Available + { + get { return available; } + set { available = value; } + } + + /// + /// Call passing the current clear text buffer contents. + /// + /// The inflater to set input for. + public void SetInflaterInput(Inflater inflater) + { + if (available > 0) + { + inflater.SetInput(clearText, clearTextLength - available, available); + available = 0; + } + } + + /// + /// Fill the buffer from the underlying input stream. + /// + public void Fill() + { + rawLength = 0; + int toRead = rawData.Length; + + while (toRead > 0 && inputStream.CanRead) + { + int count = inputStream.Read(rawData, rawLength, toRead); + if (count <= 0) + { + break; + } + rawLength += count; + toRead -= count; + } + + if (cryptoTransform != null) + { + clearTextLength = cryptoTransform.TransformBlock(rawData, 0, rawLength, clearText, 0); + } + else + { + clearTextLength = rawLength; + } + + available = clearTextLength; + } + + /// + /// Read a buffer directly from the input stream + /// + /// The buffer to fill + /// Returns the number of bytes read. + public int ReadRawBuffer(byte[] buffer) + { + return ReadRawBuffer(buffer, 0, buffer.Length); + } + + /// + /// Read a buffer directly from the input stream + /// + /// The buffer to read into + /// The offset to start reading data into. + /// The number of bytes to read. + /// Returns the number of bytes read. + public int ReadRawBuffer(byte[] outBuffer, int offset, int length) + { + if (length < 0) + { + throw new ArgumentOutOfRangeException(nameof(length)); + } + + int currentOffset = offset; + int currentLength = length; + + while (currentLength > 0) + { + if (available <= 0) + { + Fill(); + if (available <= 0) + { + return 0; + } + } + int toCopy = Math.Min(currentLength, available); + System.Array.Copy(rawData, rawLength - (int)available, outBuffer, currentOffset, toCopy); + currentOffset += toCopy; + currentLength -= toCopy; + available -= toCopy; + } + return length; + } + + /// + /// Read clear text data from the input stream. + /// + /// The buffer to add data to. + /// The offset to start adding data at. + /// The number of bytes to read. + /// Returns the number of bytes actually read. + public int ReadClearTextBuffer(byte[] outBuffer, int offset, int length) + { + if (length < 0) + { + throw new ArgumentOutOfRangeException(nameof(length)); + } + + int currentOffset = offset; + int currentLength = length; + + while (currentLength > 0) + { + if (available <= 0) + { + Fill(); + if (available <= 0) + { + return 0; + } + } + + int toCopy = Math.Min(currentLength, available); + Array.Copy(clearText, clearTextLength - (int)available, outBuffer, currentOffset, toCopy); + currentOffset += toCopy; + currentLength -= toCopy; + available -= toCopy; + } + return length; + } + + /// + /// Read a from the input stream. + /// + /// Returns the byte read. + public byte ReadLeByte() + { + if (available <= 0) + { + Fill(); + if (available <= 0) + { + throw new ZipException("EOF in header"); + } + } + byte result = rawData[rawLength - available]; + available -= 1; + return result; + } + + /// + /// Read an in little endian byte order. + /// + /// The short value read case to an int. + public int ReadLeShort() + { + return ReadLeByte() | (ReadLeByte() << 8); + } + + /// + /// Read an in little endian byte order. + /// + /// The int value read. + public int ReadLeInt() + { + return ReadLeShort() | (ReadLeShort() << 16); + } + + /// + /// Read a in little endian byte order. + /// + /// The long value read. + public long ReadLeLong() + { + return (uint)ReadLeInt() | ((long)ReadLeInt() << 32); + } + + /// + /// Get/set the to apply to any data. + /// + /// Set this value to null to have no transform applied. + public ICryptoTransform CryptoTransform + { + set + { + cryptoTransform = value; + if (cryptoTransform != null) + { + if (rawData == clearText) + { + if (internalClearText == null) + { + internalClearText = new byte[rawData.Length]; + } + clearText = internalClearText; + } + clearTextLength = rawLength; + if (available > 0) + { + cryptoTransform.TransformBlock(rawData, rawLength - available, available, clearText, rawLength - available); + } + } + else + { + clearText = rawData; + clearTextLength = rawLength; + } + } + } + + #region Instance Fields + + private int rawLength; + private byte[] rawData; + + private int clearTextLength; + private byte[] clearText; + private byte[] internalClearText; + + private int available; + + private ICryptoTransform cryptoTransform; + private Stream inputStream; + + #endregion Instance Fields + } + + /// + /// This filter stream is used to decompress data compressed using the "deflate" + /// format. The "deflate" format is described in RFC 1951. + /// + /// This stream may form the basis for other decompression filters, such + /// as the GZipInputStream. + /// + /// Author of the original java version : John Leuner. + /// + public class InflaterInputStream : Stream + { + #region Constructors + + /// + /// Create an InflaterInputStream with the default decompressor + /// and a default buffer size of 4KB. + /// + /// + /// The InputStream to read bytes from + /// + public InflaterInputStream(Stream baseInputStream) + : this(baseInputStream, new Inflater(), 4096) + { + } + + /// + /// Create an InflaterInputStream with the specified decompressor + /// and a default buffer size of 4KB. + /// + /// + /// The source of input data + /// + /// + /// The decompressor used to decompress data read from baseInputStream + /// + public InflaterInputStream(Stream baseInputStream, Inflater inf) + : this(baseInputStream, inf, 4096) + { + } + + /// + /// Create an InflaterInputStream with the specified decompressor + /// and the specified buffer size. + /// + /// + /// The InputStream to read bytes from + /// + /// + /// The decompressor to use + /// + /// + /// Size of the buffer to use + /// + public InflaterInputStream(Stream baseInputStream, Inflater inflater, int bufferSize) + { + if (baseInputStream == null) + { + throw new ArgumentNullException(nameof(baseInputStream)); + } + + if (inflater == null) + { + throw new ArgumentNullException(nameof(inflater)); + } + + if (bufferSize <= 0) + { + throw new ArgumentOutOfRangeException(nameof(bufferSize)); + } + + this.baseInputStream = baseInputStream; + this.inf = inflater; + + inputBuffer = new InflaterInputBuffer(baseInputStream, bufferSize); + } + + #endregion Constructors + + /// + /// Gets or sets a flag indicating ownership of underlying stream. + /// When the flag is true will close the underlying stream also. + /// + /// The default value is true. + public bool IsStreamOwner { get; set; } = true; + + /// + /// Skip specified number of bytes of uncompressed data + /// + /// + /// Number of bytes to skip + /// + /// + /// The number of bytes skipped, zero if the end of + /// stream has been reached + /// + /// + /// The number of bytes to skip is less than or equal to zero. + /// + public long Skip(long count) + { + if (count <= 0) + { + throw new ArgumentOutOfRangeException(nameof(count)); + } + + // v0.80 Skip by seeking if underlying stream supports it... + if (baseInputStream.CanSeek) + { + baseInputStream.Seek(count, SeekOrigin.Current); + return count; + } + else + { + int length = 2048; + if (count < length) + { + length = (int)count; + } + + byte[] tmp = new byte[length]; + int readCount = 1; + long toSkip = count; + + while ((toSkip > 0) && (readCount > 0)) + { + if (toSkip < length) + { + length = (int)toSkip; + } + + readCount = baseInputStream.Read(tmp, 0, length); + toSkip -= readCount; + } + + return count - toSkip; + } + } + + /// + /// Clear any cryptographic state. + /// + protected void StopDecrypting() + { + inputBuffer.CryptoTransform = null; + } + + /// + /// Returns 0 once the end of the stream (EOF) has been reached. + /// Otherwise returns 1. + /// + public virtual int Available + { + get + { + return inf.IsFinished ? 0 : 1; + } + } + + /// + /// Fills the buffer with more data to decompress. + /// + /// + /// Stream ends early + /// + protected void Fill() + { + // Protect against redundant calls + if (inputBuffer.Available <= 0) + { + inputBuffer.Fill(); + if (inputBuffer.Available <= 0) + { + throw new SharpZipBaseException("Unexpected EOF"); + } + } + inputBuffer.SetInflaterInput(inf); + } + + #region Stream Overrides + + /// + /// Gets a value indicating whether the current stream supports reading + /// + public override bool CanRead + { + get + { + return baseInputStream.CanRead; + } + } + + /// + /// Gets a value of false indicating seeking is not supported for this stream. + /// + public override bool CanSeek + { + get + { + return false; + } + } + + /// + /// Gets a value of false indicating that this stream is not writeable. + /// + public override bool CanWrite + { + get + { + return false; + } + } + + /// + /// A value representing the length of the stream in bytes. + /// + public override long Length + { + get + { + //return inputBuffer.RawLength; + throw new NotSupportedException("InflaterInputStream Length is not supported"); + } + } + + /// + /// The current position within the stream. + /// Throws a NotSupportedException when attempting to set the position + /// + /// Attempting to set the position + public override long Position + { + get + { + return baseInputStream.Position; + } + set + { + throw new NotSupportedException("InflaterInputStream Position not supported"); + } + } + + /// + /// Flushes the baseInputStream + /// + public override void Flush() + { + baseInputStream.Flush(); + } + + /// + /// Sets the position within the current stream + /// Always throws a NotSupportedException + /// + /// The relative offset to seek to. + /// The defining where to seek from. + /// The new position in the stream. + /// Any access + public override long Seek(long offset, SeekOrigin origin) + { + throw new NotSupportedException("Seek not supported"); + } + + /// + /// Set the length of the current stream + /// Always throws a NotSupportedException + /// + /// The new length value for the stream. + /// Any access + public override void SetLength(long value) + { + throw new NotSupportedException("InflaterInputStream SetLength not supported"); + } + + /// + /// Writes a sequence of bytes to stream and advances the current position + /// This method always throws a NotSupportedException + /// + /// The buffer containing data to write. + /// The offset of the first byte to write. + /// The number of bytes to write. + /// Any access + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotSupportedException("InflaterInputStream Write not supported"); + } + + /// + /// Writes one byte to the current stream and advances the current position + /// Always throws a NotSupportedException + /// + /// The byte to write. + /// Any access + public override void WriteByte(byte value) + { + throw new NotSupportedException("InflaterInputStream WriteByte not supported"); + } + + /// + /// Closes the input stream. When + /// is true the underlying stream is also closed. + /// + protected override void Dispose(bool disposing) + { + if (!isClosed) + { + isClosed = true; + if (IsStreamOwner) + { + baseInputStream.Dispose(); + } + } + } + + /// + /// Reads decompressed data into the provided buffer byte array + /// + /// + /// The array to read and decompress data into + /// + /// + /// The offset indicating where the data should be placed + /// + /// + /// The number of bytes to decompress + /// + /// The number of bytes read. Zero signals the end of stream + /// + /// Inflater needs a dictionary + /// + public override int Read(byte[] buffer, int offset, int count) + { + if (inf.IsNeedingDictionary) + { + throw new SharpZipBaseException("Need a dictionary"); + } + + int remainingBytes = count; + while (true) + { + int bytesRead = inf.Inflate(buffer, offset, remainingBytes); + offset += bytesRead; + remainingBytes -= bytesRead; + + if (remainingBytes == 0 || inf.IsFinished) + { + break; + } + + if (inf.IsNeedingInput) + { + Fill(); + } + else if (bytesRead == 0) + { + throw new ZipException("Invalid input data"); + } + } + return count - remainingBytes; + } + + #endregion Stream Overrides + + #region Instance Fields + + /// + /// Decompressor for this stream + /// + protected Inflater inf; + + /// + /// Input buffer for this stream. + /// + protected InflaterInputBuffer inputBuffer; + + /// + /// Base stream the inflater reads from. + /// + private Stream baseInputStream; + + /// + /// The compressed size + /// + protected long csize; + + /// + /// Flag indicating whether this instance has been closed or not. + /// + private bool isClosed; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs.meta new file mode 100644 index 0000000..d0157ab --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ee889d5ce0675481391b1753837664f2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs new file mode 100644 index 0000000..d8241c1 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs @@ -0,0 +1,220 @@ +using System; + +namespace ICSharpCode.SharpZipLib.Zip.Compression.Streams +{ + /// + /// Contains the output from the Inflation process. + /// We need to have a window so that we can refer backwards into the output stream + /// to repeat stuff.
+ /// Author of the original java version : John Leuner + ///
+ public class OutputWindow + { + #region Constants + + private const int WindowSize = 1 << 15; + private const int WindowMask = WindowSize - 1; + + #endregion Constants + + #region Instance Fields + + private byte[] window = new byte[WindowSize]; //The window is 2^15 bytes + private int windowEnd; + private int windowFilled; + + #endregion Instance Fields + + /// + /// Write a byte to this output window + /// + /// value to write + /// + /// if window is full + /// + public void Write(int value) + { + if (windowFilled++ == WindowSize) + { + throw new InvalidOperationException("Window full"); + } + window[windowEnd++] = (byte)value; + windowEnd &= WindowMask; + } + + private void SlowRepeat(int repStart, int length, int distance) + { + while (length-- > 0) + { + window[windowEnd++] = window[repStart++]; + windowEnd &= WindowMask; + repStart &= WindowMask; + } + } + + /// + /// Append a byte pattern already in the window itself + /// + /// length of pattern to copy + /// distance from end of window pattern occurs + /// + /// If the repeated data overflows the window + /// + public void Repeat(int length, int distance) + { + if ((windowFilled += length) > WindowSize) + { + throw new InvalidOperationException("Window full"); + } + + int repStart = (windowEnd - distance) & WindowMask; + int border = WindowSize - length; + if ((repStart <= border) && (windowEnd < border)) + { + if (length <= distance) + { + System.Array.Copy(window, repStart, window, windowEnd, length); + windowEnd += length; + } + else + { + // We have to copy manually, since the repeat pattern overlaps. + while (length-- > 0) + { + window[windowEnd++] = window[repStart++]; + } + } + } + else + { + SlowRepeat(repStart, length, distance); + } + } + + /// + /// Copy from input manipulator to internal window + /// + /// source of data + /// length of data to copy + /// the number of bytes copied + public int CopyStored(StreamManipulator input, int length) + { + length = Math.Min(Math.Min(length, WindowSize - windowFilled), input.AvailableBytes); + int copied; + + int tailLen = WindowSize - windowEnd; + if (length > tailLen) + { + copied = input.CopyBytes(window, windowEnd, tailLen); + if (copied == tailLen) + { + copied += input.CopyBytes(window, 0, length - tailLen); + } + } + else + { + copied = input.CopyBytes(window, windowEnd, length); + } + + windowEnd = (windowEnd + copied) & WindowMask; + windowFilled += copied; + return copied; + } + + /// + /// Copy dictionary to window + /// + /// source dictionary + /// offset of start in source dictionary + /// length of dictionary + /// + /// If window isnt empty + /// + public void CopyDict(byte[] dictionary, int offset, int length) + { + if (dictionary == null) + { + throw new ArgumentNullException(nameof(dictionary)); + } + + if (windowFilled > 0) + { + throw new InvalidOperationException(); + } + + if (length > WindowSize) + { + offset += length - WindowSize; + length = WindowSize; + } + System.Array.Copy(dictionary, offset, window, 0, length); + windowEnd = length & WindowMask; + } + + /// + /// Get remaining unfilled space in window + /// + /// Number of bytes left in window + public int GetFreeSpace() + { + return WindowSize - windowFilled; + } + + /// + /// Get bytes available for output in window + /// + /// Number of bytes filled + public int GetAvailable() + { + return windowFilled; + } + + /// + /// Copy contents of window to output + /// + /// buffer to copy to + /// offset to start at + /// number of bytes to count + /// The number of bytes copied + /// + /// If a window underflow occurs + /// + public int CopyOutput(byte[] output, int offset, int len) + { + int copyEnd = windowEnd; + if (len > windowFilled) + { + len = windowFilled; + } + else + { + copyEnd = (windowEnd - windowFilled + len) & WindowMask; + } + + int copied = len; + int tailLen = len - copyEnd; + + if (tailLen > 0) + { + System.Array.Copy(window, WindowSize - tailLen, output, offset, tailLen); + offset += tailLen; + len = copyEnd; + } + System.Array.Copy(window, copyEnd - len, output, offset, len); + windowFilled -= copied; + if (windowFilled < 0) + { + throw new InvalidOperationException(); + } + return copied; + } + + /// + /// Reset by clearing window so GetAvailable returns 0 + /// + public void Reset() + { + windowFilled = windowEnd = 0; + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs.meta new file mode 100644 index 0000000..8494831 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2eb7cd3d355404a11831fe7037745877 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs new file mode 100644 index 0000000..aff6a9c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs @@ -0,0 +1,298 @@ +using System; + +namespace ICSharpCode.SharpZipLib.Zip.Compression.Streams +{ + /// + /// This class allows us to retrieve a specified number of bits from + /// the input buffer, as well as copy big byte blocks. + /// + /// It uses an int buffer to store up to 31 bits for direct + /// manipulation. This guarantees that we can get at least 16 bits, + /// but we only need at most 15, so this is all safe. + /// + /// There are some optimizations in this class, for example, you must + /// never peek more than 8 bits more than needed, and you must first + /// peek bits before you may drop them. This is not a general purpose + /// class but optimized for the behaviour of the Inflater. + /// + /// authors of the original java version : John Leuner, Jochen Hoenicke + /// + public class StreamManipulator + { + /// + /// Get the next sequence of bits but don't increase input pointer. bitCount must be + /// less or equal 16 and if this call succeeds, you must drop + /// at least n - 8 bits in the next call. + /// + /// The number of bits to peek. + /// + /// the value of the bits, or -1 if not enough bits available. */ + /// + public int PeekBits(int bitCount) + { + if (bitsInBuffer_ < bitCount) + { + if (windowStart_ == windowEnd_) + { + return -1; // ok + } + buffer_ |= (uint)((window_[windowStart_++] & 0xff | + (window_[windowStart_++] & 0xff) << 8) << bitsInBuffer_); + bitsInBuffer_ += 16; + } + return (int)(buffer_ & ((1 << bitCount) - 1)); + } + + /// + /// Tries to grab the next bits from the input and + /// sets to the value, adding . + /// + /// true if enough bits could be read, otherwise false + public bool TryGetBits(int bitCount, ref int output, int outputOffset = 0) + { + var bits = PeekBits(bitCount); + if (bits < 0) + { + return false; + } + output = bits + outputOffset; + DropBits(bitCount); + return true; + } + + /// + /// Tries to grab the next bits from the input and + /// sets of to the value. + /// + /// true if enough bits could be read, otherwise false + public bool TryGetBits(int bitCount, ref byte[] array, int index) + { + var bits = PeekBits(bitCount); + if (bits < 0) + { + return false; + } + array[index] = (byte)bits; + DropBits(bitCount); + return true; + } + + /// + /// Drops the next n bits from the input. You should have called PeekBits + /// with a bigger or equal n before, to make sure that enough bits are in + /// the bit buffer. + /// + /// The number of bits to drop. + public void DropBits(int bitCount) + { + buffer_ >>= bitCount; + bitsInBuffer_ -= bitCount; + } + + /// + /// Gets the next n bits and increases input pointer. This is equivalent + /// to followed by , except for correct error handling. + /// + /// The number of bits to retrieve. + /// + /// the value of the bits, or -1 if not enough bits available. + /// + public int GetBits(int bitCount) + { + int bits = PeekBits(bitCount); + if (bits >= 0) + { + DropBits(bitCount); + } + return bits; + } + + /// + /// Gets the number of bits available in the bit buffer. This must be + /// only called when a previous PeekBits() returned -1. + /// + /// + /// the number of bits available. + /// + public int AvailableBits + { + get + { + return bitsInBuffer_; + } + } + + /// + /// Gets the number of bytes available. + /// + /// + /// The number of bytes available. + /// + public int AvailableBytes + { + get + { + return windowEnd_ - windowStart_ + (bitsInBuffer_ >> 3); + } + } + + /// + /// Skips to the next byte boundary. + /// + public void SkipToByteBoundary() + { + buffer_ >>= (bitsInBuffer_ & 7); + bitsInBuffer_ &= ~7; + } + + /// + /// Returns true when SetInput can be called + /// + public bool IsNeedingInput + { + get + { + return windowStart_ == windowEnd_; + } + } + + /// + /// Copies bytes from input buffer to output buffer starting + /// at output[offset]. You have to make sure, that the buffer is + /// byte aligned. If not enough bytes are available, copies fewer + /// bytes. + /// + /// + /// The buffer to copy bytes to. + /// + /// + /// The offset in the buffer at which copying starts + /// + /// + /// The length to copy, 0 is allowed. + /// + /// + /// The number of bytes copied, 0 if no bytes were available. + /// + /// + /// Length is less than zero + /// + /// + /// Bit buffer isnt byte aligned + /// + public int CopyBytes(byte[] output, int offset, int length) + { + if (length < 0) + { + throw new ArgumentOutOfRangeException(nameof(length)); + } + + if ((bitsInBuffer_ & 7) != 0) + { + // bits_in_buffer may only be 0 or a multiple of 8 + throw new InvalidOperationException("Bit buffer is not byte aligned!"); + } + + int count = 0; + while ((bitsInBuffer_ > 0) && (length > 0)) + { + output[offset++] = (byte)buffer_; + buffer_ >>= 8; + bitsInBuffer_ -= 8; + length--; + count++; + } + + if (length == 0) + { + return count; + } + + int avail = windowEnd_ - windowStart_; + if (length > avail) + { + length = avail; + } + System.Array.Copy(window_, windowStart_, output, offset, length); + windowStart_ += length; + + if (((windowStart_ - windowEnd_) & 1) != 0) + { + // We always want an even number of bytes in input, see peekBits + buffer_ = (uint)(window_[windowStart_++] & 0xff); + bitsInBuffer_ = 8; + } + return count + length; + } + + /// + /// Resets state and empties internal buffers + /// + public void Reset() + { + buffer_ = 0; + windowStart_ = windowEnd_ = bitsInBuffer_ = 0; + } + + /// + /// Add more input for consumption. + /// Only call when IsNeedingInput returns true + /// + /// data to be input + /// offset of first byte of input + /// number of bytes of input to add. + public void SetInput(byte[] buffer, int offset, int count) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (offset < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset), "Cannot be negative"); + } + + if (count < 0) + { + throw new ArgumentOutOfRangeException(nameof(count), "Cannot be negative"); + } + + if (windowStart_ < windowEnd_) + { + throw new InvalidOperationException("Old input was not completely processed"); + } + + int end = offset + count; + + // We want to throw an ArrayIndexOutOfBoundsException early. + // Note the check also handles integer wrap around. + if ((offset > end) || (end > buffer.Length)) + { + throw new ArgumentOutOfRangeException(nameof(count)); + } + + if ((count & 1) != 0) + { + // We always want an even number of bytes in input, see PeekBits + buffer_ |= (uint)((buffer[offset++] & 0xff) << bitsInBuffer_); + bitsInBuffer_ += 8; + } + + window_ = buffer; + windowStart_ = offset; + windowEnd_ = end; + } + + #region Instance Fields + + private byte[] window_; + private int windowStart_; + private int windowEnd_; + + private uint buffer_; + private int bitsInBuffer_; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs.meta new file mode 100644 index 0000000..71e08a7 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bf17dd68599b042c7b8aa1027d9373b9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/FastZip.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/FastZip.cs new file mode 100644 index 0000000..01725f4 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/FastZip.cs @@ -0,0 +1,975 @@ +using ICSharpCode.SharpZipLib.Core; +using ICSharpCode.SharpZipLib.Zip.Compression; +using System; +using System.IO; +using static ICSharpCode.SharpZipLib.Zip.Compression.Deflater; +using static ICSharpCode.SharpZipLib.Zip.ZipEntryFactory; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// FastZipEvents supports all events applicable to FastZip operations. + /// + public class FastZipEvents + { + /// + /// Delegate to invoke when processing directories. + /// + public event EventHandler ProcessDirectory; + + /// + /// Delegate to invoke when processing files. + /// + public ProcessFileHandler ProcessFile; + + /// + /// Delegate to invoke during processing of files. + /// + public ProgressHandler Progress; + + /// + /// Delegate to invoke when processing for a file has been completed. + /// + public CompletedFileHandler CompletedFile; + + /// + /// Delegate to invoke when processing directory failures. + /// + public DirectoryFailureHandler DirectoryFailure; + + /// + /// Delegate to invoke when processing file failures. + /// + public FileFailureHandler FileFailure; + + /// + /// Raise the directory failure event. + /// + /// The directory causing the failure. + /// The exception for this event. + /// A boolean indicating if execution should continue or not. + public bool OnDirectoryFailure(string directory, Exception e) + { + bool result = false; + DirectoryFailureHandler handler = DirectoryFailure; + + if (handler != null) + { + var args = new ScanFailureEventArgs(directory, e); + handler(this, args); + result = args.ContinueRunning; + } + return result; + } + + /// + /// Fires the file failure handler delegate. + /// + /// The file causing the failure. + /// The exception for this failure. + /// A boolean indicating if execution should continue or not. + public bool OnFileFailure(string file, Exception e) + { + FileFailureHandler handler = FileFailure; + bool result = (handler != null); + + if (result) + { + var args = new ScanFailureEventArgs(file, e); + handler(this, args); + result = args.ContinueRunning; + } + return result; + } + + /// + /// Fires the ProcessFile delegate. + /// + /// The file being processed. + /// A boolean indicating if execution should continue or not. + public bool OnProcessFile(string file) + { + bool result = true; + ProcessFileHandler handler = ProcessFile; + + if (handler != null) + { + var args = new ScanEventArgs(file); + handler(this, args); + result = args.ContinueRunning; + } + return result; + } + + /// + /// Fires the delegate + /// + /// The file whose processing has been completed. + /// A boolean indicating if execution should continue or not. + public bool OnCompletedFile(string file) + { + bool result = true; + CompletedFileHandler handler = CompletedFile; + if (handler != null) + { + var args = new ScanEventArgs(file); + handler(this, args); + result = args.ContinueRunning; + } + return result; + } + + /// + /// Fires the process directory delegate. + /// + /// The directory being processed. + /// Flag indicating if the directory has matching files as determined by the current filter. + /// A of true if the operation should continue; false otherwise. + public bool OnProcessDirectory(string directory, bool hasMatchingFiles) + { + bool result = true; + EventHandler handler = ProcessDirectory; + if (handler != null) + { + var args = new DirectoryEventArgs(directory, hasMatchingFiles); + handler(this, args); + result = args.ContinueRunning; + } + return result; + } + + /// + /// The minimum timespan between events. + /// + /// The minimum period of time between events. + /// + /// The default interval is three seconds. + public TimeSpan ProgressInterval + { + get { return progressInterval_; } + set { progressInterval_ = value; } + } + + #region Instance Fields + + private TimeSpan progressInterval_ = TimeSpan.FromSeconds(3); + + #endregion Instance Fields + } + + /// + /// FastZip provides facilities for creating and extracting zip files. + /// + public class FastZip + { + #region Enumerations + + /// + /// Defines the desired handling when overwriting files during extraction. + /// + public enum Overwrite + { + /// + /// Prompt the user to confirm overwriting + /// + Prompt, + + /// + /// Never overwrite files. + /// + Never, + + /// + /// Always overwrite files. + /// + Always + } + + #endregion Enumerations + + #region Constructors + + /// + /// Initialise a default instance of . + /// + public FastZip() + { + } + + /// + /// Initialise a new instance of using the specified + /// + /// The time setting to use when creating or extracting Zip entries. + /// Using TimeSetting.LastAccessTime[Utc] when + /// creating an archive will set the file time to the moment of reading. + /// + public FastZip(TimeSetting timeSetting) + { + entryFactory_ = new ZipEntryFactory(timeSetting); + restoreDateTimeOnExtract_ = true; + } + + /// + /// Initialise a new instance of using the specified + /// + /// The time to set all values for created or extracted Zip Entries. + public FastZip(DateTime time) + { + entryFactory_ = new ZipEntryFactory(time); + restoreDateTimeOnExtract_ = true; + } + + /// + /// Initialise a new instance of + /// + /// The events to use during operations. + public FastZip(FastZipEvents events) + { + events_ = events; + } + + #endregion Constructors + + #region Properties + + /// + /// Get/set a value indicating whether empty directories should be created. + /// + public bool CreateEmptyDirectories + { + get { return createEmptyDirectories_; } + set { createEmptyDirectories_ = value; } + } + + /// + /// Get / set the password value. + /// + public string Password + { + get { return password_; } + set { password_ = value; } + } + + /// + /// Get / set the method of encrypting entries. + /// + /// + /// Only applies when is set. + /// Defaults to ZipCrypto for backwards compatibility purposes. + /// + public ZipEncryptionMethod EntryEncryptionMethod { get; set; } = ZipEncryptionMethod.ZipCrypto; + + /// + /// Get or set the active when creating Zip files. + /// + /// + public INameTransform NameTransform + { + get { return entryFactory_.NameTransform; } + set + { + entryFactory_.NameTransform = value; + } + } + + /// + /// Get or set the active when creating Zip files. + /// + public IEntryFactory EntryFactory + { + get { return entryFactory_; } + set + { + if (value == null) + { + entryFactory_ = new ZipEntryFactory(); + } + else + { + entryFactory_ = value; + } + } + } + + /// + /// Gets or sets the setting for Zip64 handling when writing. + /// + /// + /// The default value is dynamic which is not backwards compatible with old + /// programs and can cause problems with XP's built in compression which cant + /// read Zip64 archives. However it does avoid the situation were a large file + /// is added and cannot be completed correctly. + /// NOTE: Setting the size for entries before they are added is the best solution! + /// By default the EntryFactory used by FastZip will set the file size. + /// + public UseZip64 UseZip64 + { + get { return useZip64_; } + set { useZip64_ = value; } + } + + /// + /// Get/set a value indicating whether file dates and times should + /// be restored when extracting files from an archive. + /// + /// The default value is false. + public bool RestoreDateTimeOnExtract + { + get + { + return restoreDateTimeOnExtract_; + } + set + { + restoreDateTimeOnExtract_ = value; + } + } + + /// + /// Get/set a value indicating whether file attributes should + /// be restored during extract operations + /// + public bool RestoreAttributesOnExtract + { + get { return restoreAttributesOnExtract_; } + set { restoreAttributesOnExtract_ = value; } + } + + /// + /// Get/set the Compression Level that will be used + /// when creating the zip + /// + public Deflater.CompressionLevel CompressionLevel + { + get { return compressionLevel_; } + set { compressionLevel_ = value; } + } + + #endregion Properties + + #region Delegates + + /// + /// Delegate called when confirming overwriting of files. + /// + public delegate bool ConfirmOverwriteDelegate(string fileName); + + #endregion Delegates + + #region CreateZip + + /// + /// Create a zip file. + /// + /// The name of the zip file to create. + /// The directory to source files from. + /// True to recurse directories, false for no recursion. + /// The file filter to apply. + /// The directory filter to apply. + public void CreateZip(string zipFileName, string sourceDirectory, + bool recurse, string fileFilter, string directoryFilter) + { + CreateZip(File.Create(zipFileName), sourceDirectory, recurse, fileFilter, directoryFilter); + } + + /// + /// Create a zip file/archive. + /// + /// The name of the zip file to create. + /// The directory to obtain files and directories from. + /// True to recurse directories, false for no recursion. + /// The file filter to apply. + public void CreateZip(string zipFileName, string sourceDirectory, bool recurse, string fileFilter) + { + CreateZip(File.Create(zipFileName), sourceDirectory, recurse, fileFilter, null); + } + + /// + /// Create a zip archive sending output to the passed. + /// + /// The stream to write archive data to. + /// The directory to source files from. + /// True to recurse directories, false for no recursion. + /// The file filter to apply. + /// The directory filter to apply. + /// The is closed after creation. + public void CreateZip(Stream outputStream, string sourceDirectory, bool recurse, string fileFilter, string directoryFilter) + { + CreateZip(outputStream, sourceDirectory, recurse, fileFilter, directoryFilter, false); + } + + /// + /// Create a zip archive sending output to the passed. + /// + /// The stream to write archive data to. + /// The directory to source files from. + /// True to recurse directories, false for no recursion. + /// The file filter to apply. + /// The directory filter to apply. + /// true to leave open after the zip has been created, false to dispose it. + public void CreateZip(Stream outputStream, string sourceDirectory, bool recurse, string fileFilter, string directoryFilter, bool leaveOpen) + { + var scanner = new FileSystemScanner(fileFilter, directoryFilter); + CreateZip(outputStream, sourceDirectory, recurse, scanner, leaveOpen); + } + + /// + /// Create a zip file. + /// + /// The name of the zip file to create. + /// The directory to source files from. + /// True to recurse directories, false for no recursion. + /// The file filter to apply. + /// The directory filter to apply. + public void CreateZip(string zipFileName, string sourceDirectory, + bool recurse, IScanFilter fileFilter, IScanFilter directoryFilter) + { + CreateZip(File.Create(zipFileName), sourceDirectory, recurse, fileFilter, directoryFilter, false); + } + + /// + /// Create a zip archive sending output to the passed. + /// + /// The stream to write archive data to. + /// The directory to source files from. + /// True to recurse directories, false for no recursion. + /// The file filter to apply. + /// The directory filter to apply. + /// true to leave open after the zip has been created, false to dispose it. + public void CreateZip(Stream outputStream, string sourceDirectory, bool recurse, IScanFilter fileFilter, IScanFilter directoryFilter, bool leaveOpen = false) + { + var scanner = new FileSystemScanner(fileFilter, directoryFilter); + CreateZip(outputStream, sourceDirectory, recurse, scanner, leaveOpen); + } + + /// + /// Create a zip archive sending output to the passed. + /// + /// The stream to write archive data to. + /// The directory to source files from. + /// True to recurse directories, false for no recursion. + /// For performing the actual file system scan + /// true to leave open after the zip has been created, false to dispose it. + /// The is closed after creation. + private void CreateZip(Stream outputStream, string sourceDirectory, bool recurse, FileSystemScanner scanner, bool leaveOpen) + { + NameTransform = new ZipNameTransform(sourceDirectory); + sourceDirectory_ = sourceDirectory; + + using (outputStream_ = new ZipOutputStream(outputStream)) + { + outputStream_.SetLevel((int)CompressionLevel); + outputStream_.IsStreamOwner = !leaveOpen; + outputStream_.NameTransform = null; // all required transforms handled by us + + if (false == string.IsNullOrEmpty(password_) && EntryEncryptionMethod != ZipEncryptionMethod.None) + { + outputStream_.Password = password_; + } + + outputStream_.UseZip64 = UseZip64; + scanner.ProcessFile += ProcessFile; + if (this.CreateEmptyDirectories) + { + scanner.ProcessDirectory += ProcessDirectory; + } + + if (events_ != null) + { + if (events_.FileFailure != null) + { + scanner.FileFailure += events_.FileFailure; + } + + if (events_.DirectoryFailure != null) + { + scanner.DirectoryFailure += events_.DirectoryFailure; + } + } + + scanner.Scan(sourceDirectory, recurse); + } + } + + #endregion CreateZip + + #region ExtractZip + + /// + /// Extract the contents of a zip file. + /// + /// The zip file to extract from. + /// The directory to save extracted information in. + /// A filter to apply to files. + public void ExtractZip(string zipFileName, string targetDirectory, string fileFilter) + { + ExtractZip(zipFileName, targetDirectory, Overwrite.Always, null, fileFilter, null, restoreDateTimeOnExtract_); + } + + /// + /// Extract the contents of a zip file. + /// + /// The zip file to extract from. + /// The directory to save extracted information in. + /// The style of overwriting to apply. + /// A delegate to invoke when confirming overwriting. + /// A filter to apply to files. + /// A filter to apply to directories. + /// Flag indicating whether to restore the date and time for extracted files. + /// Allow parent directory traversal in file paths (e.g. ../file) + public void ExtractZip(string zipFileName, string targetDirectory, + Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate, + string fileFilter, string directoryFilter, bool restoreDateTime, bool allowParentTraversal = false) + { + Stream inputStream = File.Open(zipFileName, FileMode.Open, FileAccess.Read, FileShare.Read); + ExtractZip(inputStream, targetDirectory, overwrite, confirmDelegate, fileFilter, directoryFilter, restoreDateTime, true, allowParentTraversal); + } + + /// + /// Extract the contents of a zip file held in a stream. + /// + /// The seekable input stream containing the zip to extract from. + /// The directory to save extracted information in. + /// The style of overwriting to apply. + /// A delegate to invoke when confirming overwriting. + /// A filter to apply to files. + /// A filter to apply to directories. + /// Flag indicating whether to restore the date and time for extracted files. + /// Flag indicating whether the inputStream will be closed by this method. + /// Allow parent directory traversal in file paths (e.g. ../file) + public void ExtractZip(Stream inputStream, string targetDirectory, + Overwrite overwrite, ConfirmOverwriteDelegate confirmDelegate, + string fileFilter, string directoryFilter, bool restoreDateTime, + bool isStreamOwner, bool allowParentTraversal = false) + { + if ((overwrite == Overwrite.Prompt) && (confirmDelegate == null)) + { + throw new ArgumentNullException(nameof(confirmDelegate)); + } + + continueRunning_ = true; + overwrite_ = overwrite; + confirmDelegate_ = confirmDelegate; + extractNameTransform_ = new WindowsNameTransform(targetDirectory, allowParentTraversal); + + fileFilter_ = new NameFilter(fileFilter); + directoryFilter_ = new NameFilter(directoryFilter); + restoreDateTimeOnExtract_ = restoreDateTime; + + using (zipFile_ = new ZipFile(inputStream, !isStreamOwner)) + { + if (password_ != null) + { + zipFile_.Password = password_; + } + + System.Collections.IEnumerator enumerator = zipFile_.GetEnumerator(); + while (continueRunning_ && enumerator.MoveNext()) + { + var entry = (ZipEntry)enumerator.Current; + if (entry.IsFile) + { + // TODO Path.GetDirectory can fail here on invalid characters. + if (directoryFilter_.IsMatch(Path.GetDirectoryName(entry.Name)) && fileFilter_.IsMatch(entry.Name)) + { + ExtractEntry(entry); + } + } + else if (entry.IsDirectory) + { + if (directoryFilter_.IsMatch(entry.Name) && CreateEmptyDirectories) + { + ExtractEntry(entry); + } + } + else + { + // Do nothing for volume labels etc... + } + } + } + } + + #endregion ExtractZip + + #region Internal Processing + + private void ProcessDirectory(object sender, DirectoryEventArgs e) + { + if (!e.HasMatchingFiles && CreateEmptyDirectories) + { + if (events_ != null) + { + events_.OnProcessDirectory(e.Name, e.HasMatchingFiles); + } + + if (e.ContinueRunning) + { + if (e.Name != sourceDirectory_) + { + ZipEntry entry = entryFactory_.MakeDirectoryEntry(e.Name); + outputStream_.PutNextEntry(entry); + } + } + } + } + + private void ProcessFile(object sender, ScanEventArgs e) + { + if ((events_ != null) && (events_.ProcessFile != null)) + { + events_.ProcessFile(sender, e); + } + + if (e.ContinueRunning) + { + try + { + // The open below is equivalent to OpenRead which guarantees that if opened the + // file will not be changed by subsequent openers, but precludes opening in some cases + // were it could succeed. ie the open may fail as its already open for writing and the share mode should reflect that. + using (FileStream stream = File.Open(e.Name, FileMode.Open, FileAccess.Read, FileShare.Read)) + { + ZipEntry entry = entryFactory_.MakeFileEntry(e.Name); + + // Set up AES encryption for the entry if required. + ConfigureEntryEncryption(entry); + + outputStream_.PutNextEntry(entry); + AddFileContents(e.Name, stream); + } + } + catch (Exception ex) + { + if (events_ != null) + { + continueRunning_ = events_.OnFileFailure(e.Name, ex); + } + else + { + continueRunning_ = false; + throw; + } + } + } + } + + // Set up the encryption method to use for the specific entry. + private void ConfigureEntryEncryption(ZipEntry entry) + { + // Only alter the entries options if AES isn't already enabled for it + // (it might have been set up by the entry factory, and if so we let that take precedence) + if (!string.IsNullOrEmpty(Password) && entry.AESEncryptionStrength == 0) + { + switch (EntryEncryptionMethod) + { + case ZipEncryptionMethod.AES128: + entry.AESKeySize = 128; + break; + + case ZipEncryptionMethod.AES256: + entry.AESKeySize = 256; + break; + } + } + } + + private void AddFileContents(string name, Stream stream) + { + if (stream == null) + { + throw new ArgumentNullException(nameof(stream)); + } + + if (buffer_ == null) + { + buffer_ = new byte[4096]; + } + + if ((events_ != null) && (events_.Progress != null)) + { + StreamUtils.Copy(stream, outputStream_, buffer_, + events_.Progress, events_.ProgressInterval, this, name); + } + else + { + StreamUtils.Copy(stream, outputStream_, buffer_); + } + + if (events_ != null) + { + continueRunning_ = events_.OnCompletedFile(name); + } + } + + private void ExtractFileEntry(ZipEntry entry, string targetName) + { + bool proceed = true; + if (overwrite_ != Overwrite.Always) + { + if (File.Exists(targetName)) + { + if ((overwrite_ == Overwrite.Prompt) && (confirmDelegate_ != null)) + { + proceed = confirmDelegate_(targetName); + } + else + { + proceed = false; + } + } + } + + if (proceed) + { + if (events_ != null) + { + continueRunning_ = events_.OnProcessFile(entry.Name); + } + + if (continueRunning_) + { + try + { + using (FileStream outputStream = File.Create(targetName)) + { + if (buffer_ == null) + { + buffer_ = new byte[4096]; + } + + using (var inputStream = zipFile_.GetInputStream(entry)) + { + if ((events_ != null) && (events_.Progress != null)) + { + StreamUtils.Copy(inputStream, outputStream, buffer_, + events_.Progress, events_.ProgressInterval, this, entry.Name, entry.Size); + } + else + { + StreamUtils.Copy(inputStream, outputStream, buffer_); + } + } + + if (events_ != null) + { + continueRunning_ = events_.OnCompletedFile(entry.Name); + } + } + + if (restoreDateTimeOnExtract_) + { + switch (entryFactory_.Setting) + { + case TimeSetting.CreateTime: + File.SetCreationTime(targetName, entry.DateTime); + break; + + case TimeSetting.CreateTimeUtc: + File.SetCreationTimeUtc(targetName, entry.DateTime); + break; + + case TimeSetting.LastAccessTime: + File.SetLastAccessTime(targetName, entry.DateTime); + break; + + case TimeSetting.LastAccessTimeUtc: + File.SetLastAccessTimeUtc(targetName, entry.DateTime); + break; + + case TimeSetting.LastWriteTime: + File.SetLastWriteTime(targetName, entry.DateTime); + break; + + case TimeSetting.LastWriteTimeUtc: + File.SetLastWriteTimeUtc(targetName, entry.DateTime); + break; + + case TimeSetting.Fixed: + File.SetLastWriteTime(targetName, entryFactory_.FixedDateTime); + break; + + default: + throw new ZipException("Unhandled time setting in ExtractFileEntry"); + } + } + + if (RestoreAttributesOnExtract && entry.IsDOSEntry && (entry.ExternalFileAttributes != -1)) + { + var fileAttributes = (FileAttributes)entry.ExternalFileAttributes; + // TODO: FastZip - Setting of other file attributes on extraction is a little trickier. + fileAttributes &= (FileAttributes.Archive | FileAttributes.Normal | FileAttributes.ReadOnly | FileAttributes.Hidden); + File.SetAttributes(targetName, fileAttributes); + } + } + catch (Exception ex) + { + if (events_ != null) + { + continueRunning_ = events_.OnFileFailure(targetName, ex); + } + else + { + continueRunning_ = false; + throw; + } + } + } + } + } + + private void ExtractEntry(ZipEntry entry) + { + bool doExtraction = entry.IsCompressionMethodSupported(); + string targetName = entry.Name; + + if (doExtraction) + { + if (entry.IsFile) + { + targetName = extractNameTransform_.TransformFile(targetName); + } + else if (entry.IsDirectory) + { + targetName = extractNameTransform_.TransformDirectory(targetName); + } + + doExtraction = !(string.IsNullOrEmpty(targetName)); + } + + // TODO: Fire delegate/throw exception were compression method not supported, or name is invalid? + + string dirName = string.Empty; + + if (doExtraction) + { + if (entry.IsDirectory) + { + dirName = targetName; + } + else + { + dirName = Path.GetDirectoryName(Path.GetFullPath(targetName)); + } + } + + if (doExtraction && !Directory.Exists(dirName)) + { + if (!entry.IsDirectory || CreateEmptyDirectories) + { + try + { + continueRunning_ = events_?.OnProcessDirectory(dirName, true) ?? true; + if (continueRunning_) + { + Directory.CreateDirectory(dirName); + if (entry.IsDirectory && restoreDateTimeOnExtract_) + { + switch (entryFactory_.Setting) + { + case TimeSetting.CreateTime: + Directory.SetCreationTime(dirName, entry.DateTime); + break; + + case TimeSetting.CreateTimeUtc: + Directory.SetCreationTimeUtc(dirName, entry.DateTime); + break; + + case TimeSetting.LastAccessTime: + Directory.SetLastAccessTime(dirName, entry.DateTime); + break; + + case TimeSetting.LastAccessTimeUtc: + Directory.SetLastAccessTimeUtc(dirName, entry.DateTime); + break; + + case TimeSetting.LastWriteTime: + Directory.SetLastWriteTime(dirName, entry.DateTime); + break; + + case TimeSetting.LastWriteTimeUtc: + Directory.SetLastWriteTimeUtc(dirName, entry.DateTime); + break; + + case TimeSetting.Fixed: + Directory.SetLastWriteTime(dirName, entryFactory_.FixedDateTime); + break; + + default: + throw new ZipException("Unhandled time setting in ExtractEntry"); + } + } + } + else + { + doExtraction = false; + } + } + catch (Exception ex) + { + doExtraction = false; + if (events_ != null) + { + if (entry.IsDirectory) + { + continueRunning_ = events_.OnDirectoryFailure(targetName, ex); + } + else + { + continueRunning_ = events_.OnFileFailure(targetName, ex); + } + } + else + { + continueRunning_ = false; + throw; + } + } + } + } + + if (doExtraction && entry.IsFile) + { + ExtractFileEntry(entry, targetName); + } + } + + private static int MakeExternalAttributes(FileInfo info) + { + return (int)info.Attributes; + } + + private static bool NameIsValid(string name) + { + return !string.IsNullOrEmpty(name) && + (name.IndexOfAny(Path.GetInvalidPathChars()) < 0); + } + + #endregion Internal Processing + + #region Instance Fields + + private bool continueRunning_; + private byte[] buffer_; + private ZipOutputStream outputStream_; + private ZipFile zipFile_; + private string sourceDirectory_; + private NameFilter fileFilter_; + private NameFilter directoryFilter_; + private Overwrite overwrite_; + private ConfirmOverwriteDelegate confirmDelegate_; + + private bool restoreDateTimeOnExtract_; + private bool restoreAttributesOnExtract_; + private bool createEmptyDirectories_; + private FastZipEvents events_; + private IEntryFactory entryFactory_ = new ZipEntryFactory(); + private INameTransform extractNameTransform_; + private UseZip64 useZip64_ = UseZip64.Dynamic; + private CompressionLevel compressionLevel_ = CompressionLevel.DEFAULT_COMPRESSION; + + private string password_; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/FastZip.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/FastZip.cs.meta new file mode 100644 index 0000000..018ae4e --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/FastZip.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eb521e85bc8a84ae78dbc98a6d949347 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs new file mode 100644 index 0000000..d7ec181 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs @@ -0,0 +1,67 @@ +using System; +using ICSharpCode.SharpZipLib.Core; +using static ICSharpCode.SharpZipLib.Zip.ZipEntryFactory; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// Defines factory methods for creating new values. + /// + public interface IEntryFactory + { + /// + /// Create a for a file given its name + /// + /// The name of the file to create an entry for. + /// Returns a file entry based on the passed. + ZipEntry MakeFileEntry(string fileName); + + /// + /// Create a for a file given its name + /// + /// The name of the file to create an entry for. + /// If true get details from the file system if the file exists. + /// Returns a file entry based on the passed. + ZipEntry MakeFileEntry(string fileName, bool useFileSystem); + + /// + /// Create a for a file given its actual name and optional override name + /// + /// The name of the file to create an entry for. + /// An alternative name to be used for the new entry. Null if not applicable. + /// If true get details from the file system if the file exists. + /// Returns a file entry based on the passed. + ZipEntry MakeFileEntry(string fileName, string entryName, bool useFileSystem); + + /// + /// Create a for a directory given its name + /// + /// The name of the directory to create an entry for. + /// Returns a directory entry based on the passed. + ZipEntry MakeDirectoryEntry(string directoryName); + + /// + /// Create a for a directory given its name + /// + /// The name of the directory to create an entry for. + /// If true get details from the file system for this directory if it exists. + /// Returns a directory entry based on the passed. + ZipEntry MakeDirectoryEntry(string directoryName, bool useFileSystem); + + /// + /// Get/set the applicable. + /// + INameTransform NameTransform { get; set; } + + /// + /// Get the in use. + /// + TimeSetting Setting { get; } + + /// + /// Get the value to use when is set to , + /// or if not specified, the value of when the class was the initialized + /// + DateTime FixedDateTime { get; } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs.meta new file mode 100644 index 0000000..ba1a8f3 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fab39ff014ff34ee4ad5332e868f8d2d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs new file mode 100644 index 0000000..0fc1d1a --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs @@ -0,0 +1,265 @@ +using ICSharpCode.SharpZipLib.Core; +using System; +using System.IO; +using System.Text; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// WindowsNameTransform transforms names to windows compatible ones. + /// + public class WindowsNameTransform : INameTransform + { + /// + /// The maximum windows path name permitted. + /// + /// This may not valid for all windows systems - CE?, etc but I cant find the equivalent in the CLR. + private const int MaxPath = 260; + + private string _baseDirectory; + private bool _trimIncomingPaths; + private char _replacementChar = '_'; + private bool _allowParentTraversal; + + /// + /// In this case we need Windows' invalid path characters. + /// Path.GetInvalidPathChars() only returns a subset invalid on all platforms. + /// + private static readonly char[] InvalidEntryChars = new char[] { + '"', '<', '>', '|', '\0', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005', + '\u0006', '\a', '\b', '\t', '\n', '\v', '\f', '\r', '\u000e', '\u000f', + '\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', '\u0016', + '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', '\u001c', '\u001d', + '\u001e', '\u001f', + // extra characters for masks, etc. + '*', '?', ':' + }; + + /// + /// Initialises a new instance of + /// + /// + /// Allow parent directory traversal in file paths (e.g. ../file) + public WindowsNameTransform(string baseDirectory, bool allowParentTraversal = false) + { + BaseDirectory = baseDirectory ?? throw new ArgumentNullException(nameof(baseDirectory), "Directory name is invalid"); + AllowParentTraversal = allowParentTraversal; + } + + /// + /// Initialise a default instance of + /// + public WindowsNameTransform() + { + // Do nothing. + } + + /// + /// Gets or sets a value containing the target directory to prefix values with. + /// + public string BaseDirectory + { + get { return _baseDirectory; } + set + { + if (value == null) + { + throw new ArgumentNullException(nameof(value)); + } + + _baseDirectory = Path.GetFullPath(value); + } + } + + /// + /// Allow parent directory traversal in file paths (e.g. ../file) + /// + public bool AllowParentTraversal + { + get => _allowParentTraversal; + set => _allowParentTraversal = value; + } + + /// + /// Gets or sets a value indicating whether paths on incoming values should be removed. + /// + public bool TrimIncomingPaths + { + get { return _trimIncomingPaths; } + set { _trimIncomingPaths = value; } + } + + /// + /// Transform a Zip directory name to a windows directory name. + /// + /// The directory name to transform. + /// The transformed name. + public string TransformDirectory(string name) + { + name = TransformFile(name); + if (name.Length > 0) + { + while (name.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal)) + { + name = name.Remove(name.Length - 1, 1); + } + } + else + { + throw new InvalidNameException("Cannot have an empty directory name"); + } + return name; + } + + /// + /// Transform a Zip format file name to a windows style one. + /// + /// The file name to transform. + /// The transformed name. + public string TransformFile(string name) + { + if (name != null) + { + name = MakeValidName(name, _replacementChar); + + if (_trimIncomingPaths) + { + name = Path.GetFileName(name); + } + + // This may exceed windows length restrictions. + // Combine will throw a PathTooLongException in that case. + if (_baseDirectory != null) + { + name = Path.Combine(_baseDirectory, name); + + // Ensure base directory ends with directory separator ('/' or '\' depending on OS) + var pathBase = Path.GetFullPath(_baseDirectory); + if (pathBase[pathBase.Length - 1] != Path.DirectorySeparatorChar) + { + pathBase += Path.DirectorySeparatorChar; + } + + if (!_allowParentTraversal && !Path.GetFullPath(name).StartsWith(pathBase, StringComparison.InvariantCultureIgnoreCase)) + { + throw new InvalidNameException("Parent traversal in paths is not allowed"); + } + } + } + else + { + name = string.Empty; + } + return name; + } + + /// + /// Test a name to see if it is a valid name for a windows filename as extracted from a Zip archive. + /// + /// The name to test. + /// Returns true if the name is a valid zip name; false otherwise. + /// The filename isnt a true windows path in some fundamental ways like no absolute paths, no rooted paths etc. + public static bool IsValidName(string name) + { + bool result = + (name != null) && + (name.Length <= MaxPath) && + (string.Compare(name, MakeValidName(name, '_'), StringComparison.Ordinal) == 0) + ; + + return result; + } + + /// + /// Force a name to be valid by replacing invalid characters with a fixed value + /// + /// The name to make valid + /// The replacement character to use for any invalid characters. + /// Returns a valid name + public static string MakeValidName(string name, char replacement) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + name = PathUtils.DropPathRoot(name.Replace("/", Path.DirectorySeparatorChar.ToString())); + + // Drop any leading slashes. + while ((name.Length > 0) && (name[0] == Path.DirectorySeparatorChar)) + { + name = name.Remove(0, 1); + } + + // Drop any trailing slashes. + while ((name.Length > 0) && (name[name.Length - 1] == Path.DirectorySeparatorChar)) + { + name = name.Remove(name.Length - 1, 1); + } + + // Convert consecutive \\ characters to \ + int index = name.IndexOf(string.Format("{0}{0}", Path.DirectorySeparatorChar), StringComparison.Ordinal); + while (index >= 0) + { + name = name.Remove(index, 1); + index = name.IndexOf(string.Format("{0}{0}", Path.DirectorySeparatorChar), StringComparison.Ordinal); + } + + // Convert any invalid characters using the replacement one. + index = name.IndexOfAny(InvalidEntryChars); + if (index >= 0) + { + var builder = new StringBuilder(name); + + while (index >= 0) + { + builder[index] = replacement; + + if (index >= name.Length) + { + index = -1; + } + else + { + index = name.IndexOfAny(InvalidEntryChars, index + 1); + } + } + name = builder.ToString(); + } + + // Check for names greater than MaxPath characters. + // TODO: Were is CLR version of MaxPath defined? Can't find it in Environment. + if (name.Length > MaxPath) + { + throw new PathTooLongException(); + } + + return name; + } + + /// + /// Gets or set the character to replace invalid characters during transformations. + /// + public char Replacement + { + get { return _replacementChar; } + set + { + for (int i = 0; i < InvalidEntryChars.Length; ++i) + { + if (InvalidEntryChars[i] == value) + { + throw new ArgumentException("invalid path character"); + } + } + + if ((value == Path.DirectorySeparatorChar) || (value == Path.AltDirectorySeparatorChar)) + { + throw new ArgumentException("invalid replacement character"); + } + + _replacementChar = value; + } + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs.meta new file mode 100644 index 0000000..25caad1 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 69bb046b25f4f4fd095190137cad96d6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs new file mode 100644 index 0000000..eadf339 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs @@ -0,0 +1,518 @@ +using System; + +namespace ICSharpCode.SharpZipLib.Zip +{ + #region Enumerations + + /// + /// Determines how entries are tested to see if they should use Zip64 extensions or not. + /// + public enum UseZip64 + { + /// + /// Zip64 will not be forced on entries during processing. + /// + /// An entry can have this overridden if required + Off, + + /// + /// Zip64 should always be used. + /// + On, + + /// + /// #ZipLib will determine use based on entry values when added to archive. + /// + Dynamic, + } + + /// + /// The kind of compression used for an entry in an archive + /// + public enum CompressionMethod + { + /// + /// A direct copy of the file contents is held in the archive + /// + Stored = 0, + + /// + /// Common Zip compression method using a sliding dictionary + /// of up to 32KB and secondary compression from Huffman/Shannon-Fano trees + /// + Deflated = 8, + + /// + /// An extension to deflate with a 64KB window. Not supported by #Zip currently + /// + Deflate64 = 9, + + /// + /// BZip2 compression. Not supported by #Zip. + /// + BZip2 = 12, + + /// + /// LZMA compression. Not supported by #Zip. + /// + LZMA = 14, + + /// + /// PPMd compression. Not supported by #Zip. + /// + PPMd = 98, + + /// + /// WinZip special for AES encryption, Now supported by #Zip. + /// + WinZipAES = 99, + } + + /// + /// Identifies the encryption algorithm used for an entry + /// + public enum EncryptionAlgorithm + { + /// + /// No encryption has been used. + /// + None = 0, + + /// + /// Encrypted using PKZIP 2.0 or 'classic' encryption. + /// + PkzipClassic = 1, + + /// + /// DES encryption has been used. + /// + Des = 0x6601, + + /// + /// RC2 encryption has been used for encryption. + /// + RC2 = 0x6602, + + /// + /// Triple DES encryption with 168 bit keys has been used for this entry. + /// + TripleDes168 = 0x6603, + + /// + /// Triple DES with 112 bit keys has been used for this entry. + /// + TripleDes112 = 0x6609, + + /// + /// AES 128 has been used for encryption. + /// + Aes128 = 0x660e, + + /// + /// AES 192 has been used for encryption. + /// + Aes192 = 0x660f, + + /// + /// AES 256 has been used for encryption. + /// + Aes256 = 0x6610, + + /// + /// RC2 corrected has been used for encryption. + /// + RC2Corrected = 0x6702, + + /// + /// Blowfish has been used for encryption. + /// + Blowfish = 0x6720, + + /// + /// Twofish has been used for encryption. + /// + Twofish = 0x6721, + + /// + /// RC4 has been used for encryption. + /// + RC4 = 0x6801, + + /// + /// An unknown algorithm has been used for encryption. + /// + Unknown = 0xffff + } + + /// + /// Defines the contents of the general bit flags field for an archive entry. + /// + [Flags] + public enum GeneralBitFlags + { + /// + /// Bit 0 if set indicates that the file is encrypted + /// + Encrypted = 0x0001, + + /// + /// Bits 1 and 2 - Two bits defining the compression method (only for Method 6 Imploding and 8,9 Deflating) + /// + Method = 0x0006, + + /// + /// Bit 3 if set indicates a trailing data descriptor is appended to the entry data + /// + Descriptor = 0x0008, + + /// + /// Bit 4 is reserved for use with method 8 for enhanced deflation + /// + ReservedPKware4 = 0x0010, + + /// + /// Bit 5 if set indicates the file contains Pkzip compressed patched data. + /// Requires version 2.7 or greater. + /// + Patched = 0x0020, + + /// + /// Bit 6 if set indicates strong encryption has been used for this entry. + /// + StrongEncryption = 0x0040, + + /// + /// Bit 7 is currently unused + /// + Unused7 = 0x0080, + + /// + /// Bit 8 is currently unused + /// + Unused8 = 0x0100, + + /// + /// Bit 9 is currently unused + /// + Unused9 = 0x0200, + + /// + /// Bit 10 is currently unused + /// + Unused10 = 0x0400, + + /// + /// Bit 11 if set indicates the filename and + /// comment fields for this file must be encoded using UTF-8. + /// + UnicodeText = 0x0800, + + /// + /// Bit 12 is documented as being reserved by PKware for enhanced compression. + /// + EnhancedCompress = 0x1000, + + /// + /// Bit 13 if set indicates that values in the local header are masked to hide + /// their actual values, and the central directory is encrypted. + /// + /// + /// Used when encrypting the central directory contents. + /// + HeaderMasked = 0x2000, + + /// + /// Bit 14 is documented as being reserved for use by PKware + /// + ReservedPkware14 = 0x4000, + + /// + /// Bit 15 is documented as being reserved for use by PKware + /// + ReservedPkware15 = 0x8000 + } + + #endregion Enumerations + + /// + /// This class contains constants used for Zip format files + /// + [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "kept for backwards compatibility")] + public static class ZipConstants + { + #region Versions + + /// + /// The version made by field for entries in the central header when created by this library + /// + /// + /// This is also the Zip version for the library when comparing against the version required to extract + /// for an entry. See . + /// + public const int VersionMadeBy = 51; // was 45 before AES + + /// + /// The version made by field for entries in the central header when created by this library + /// + /// + /// This is also the Zip version for the library when comparing against the version required to extract + /// for an entry. See ZipInputStream.CanDecompressEntry. + /// + [Obsolete("Use VersionMadeBy instead")] + public const int VERSION_MADE_BY = 51; + + /// + /// The minimum version required to support strong encryption + /// + public const int VersionStrongEncryption = 50; + + /// + /// The minimum version required to support strong encryption + /// + [Obsolete("Use VersionStrongEncryption instead")] + public const int VERSION_STRONG_ENCRYPTION = 50; + + /// + /// Version indicating AES encryption + /// + public const int VERSION_AES = 51; + + /// + /// The version required for Zip64 extensions (4.5 or higher) + /// + public const int VersionZip64 = 45; + + /// + /// The version required for BZip2 compression (4.6 or higher) + /// + public const int VersionBZip2 = 46; + + #endregion Versions + + #region Header Sizes + + /// + /// Size of local entry header (excluding variable length fields at end) + /// + public const int LocalHeaderBaseSize = 30; + + /// + /// Size of local entry header (excluding variable length fields at end) + /// + [Obsolete("Use LocalHeaderBaseSize instead")] + public const int LOCHDR = 30; + + /// + /// Size of Zip64 data descriptor + /// + public const int Zip64DataDescriptorSize = 24; + + /// + /// Size of data descriptor + /// + public const int DataDescriptorSize = 16; + + /// + /// Size of data descriptor + /// + [Obsolete("Use DataDescriptorSize instead")] + public const int EXTHDR = 16; + + /// + /// Size of central header entry (excluding variable fields) + /// + public const int CentralHeaderBaseSize = 46; + + /// + /// Size of central header entry + /// + [Obsolete("Use CentralHeaderBaseSize instead")] + public const int CENHDR = 46; + + /// + /// Size of end of central record (excluding variable fields) + /// + public const int EndOfCentralRecordBaseSize = 22; + + /// + /// Size of end of central record (excluding variable fields) + /// + [Obsolete("Use EndOfCentralRecordBaseSize instead")] + public const int ENDHDR = 22; + + /// + /// Size of 'classic' cryptographic header stored before any entry data + /// + public const int CryptoHeaderSize = 12; + + /// + /// Size of cryptographic header stored before entry data + /// + [Obsolete("Use CryptoHeaderSize instead")] + public const int CRYPTO_HEADER_SIZE = 12; + + /// + /// The size of the Zip64 central directory locator. + /// + public const int Zip64EndOfCentralDirectoryLocatorSize = 20; + + #endregion Header Sizes + + #region Header Signatures + + /// + /// Signature for local entry header + /// + public const int LocalHeaderSignature = 'P' | ('K' << 8) | (3 << 16) | (4 << 24); + + /// + /// Signature for local entry header + /// + [Obsolete("Use LocalHeaderSignature instead")] + public const int LOCSIG = 'P' | ('K' << 8) | (3 << 16) | (4 << 24); + + /// + /// Signature for spanning entry + /// + public const int SpanningSignature = 'P' | ('K' << 8) | (7 << 16) | (8 << 24); + + /// + /// Signature for spanning entry + /// + [Obsolete("Use SpanningSignature instead")] + public const int SPANNINGSIG = 'P' | ('K' << 8) | (7 << 16) | (8 << 24); + + /// + /// Signature for temporary spanning entry + /// + public const int SpanningTempSignature = 'P' | ('K' << 8) | ('0' << 16) | ('0' << 24); + + /// + /// Signature for temporary spanning entry + /// + [Obsolete("Use SpanningTempSignature instead")] + public const int SPANTEMPSIG = 'P' | ('K' << 8) | ('0' << 16) | ('0' << 24); + + /// + /// Signature for data descriptor + /// + /// + /// This is only used where the length, Crc, or compressed size isnt known when the + /// entry is created and the output stream doesnt support seeking. + /// The local entry cannot be 'patched' with the correct values in this case + /// so the values are recorded after the data prefixed by this header, as well as in the central directory. + /// + public const int DataDescriptorSignature = 'P' | ('K' << 8) | (7 << 16) | (8 << 24); + + /// + /// Signature for data descriptor + /// + /// + /// This is only used where the length, Crc, or compressed size isnt known when the + /// entry is created and the output stream doesnt support seeking. + /// The local entry cannot be 'patched' with the correct values in this case + /// so the values are recorded after the data prefixed by this header, as well as in the central directory. + /// + [Obsolete("Use DataDescriptorSignature instead")] + public const int EXTSIG = 'P' | ('K' << 8) | (7 << 16) | (8 << 24); + + /// + /// Signature for central header + /// + [Obsolete("Use CentralHeaderSignature instead")] + public const int CENSIG = 'P' | ('K' << 8) | (1 << 16) | (2 << 24); + + /// + /// Signature for central header + /// + public const int CentralHeaderSignature = 'P' | ('K' << 8) | (1 << 16) | (2 << 24); + + /// + /// Signature for Zip64 central file header + /// + public const int Zip64CentralFileHeaderSignature = 'P' | ('K' << 8) | (6 << 16) | (6 << 24); + + /// + /// Signature for Zip64 central file header + /// + [Obsolete("Use Zip64CentralFileHeaderSignature instead")] + public const int CENSIG64 = 'P' | ('K' << 8) | (6 << 16) | (6 << 24); + + /// + /// Signature for Zip64 central directory locator + /// + public const int Zip64CentralDirLocatorSignature = 'P' | ('K' << 8) | (6 << 16) | (7 << 24); + + /// + /// Signature for archive extra data signature (were headers are encrypted). + /// + public const int ArchiveExtraDataSignature = 'P' | ('K' << 8) | (6 << 16) | (7 << 24); + + /// + /// Central header digital signature + /// + public const int CentralHeaderDigitalSignature = 'P' | ('K' << 8) | (5 << 16) | (5 << 24); + + /// + /// Central header digital signature + /// + [Obsolete("Use CentralHeaderDigitalSignaure instead")] + public const int CENDIGITALSIG = 'P' | ('K' << 8) | (5 << 16) | (5 << 24); + + /// + /// End of central directory record signature + /// + public const int EndOfCentralDirectorySignature = 'P' | ('K' << 8) | (5 << 16) | (6 << 24); + + /// + /// End of central directory record signature + /// + [Obsolete("Use EndOfCentralDirectorySignature instead")] + public const int ENDSIG = 'P' | ('K' << 8) | (5 << 16) | (6 << 24); + + #endregion Header Signatures + + /// + /// Default encoding used for string conversion. 0 gives the default system OEM code page. + /// Using the default code page isnt the full solution necessarily + /// there are many variable factors, codepage 850 is often a good choice for + /// European users, however be careful about compatability. + /// + [Obsolete("Use ZipStrings instead")] + public static int DefaultCodePage + { + get => ZipStrings.CodePage; + set => ZipStrings.CodePage = value; + } + + /// Deprecated wrapper for + [Obsolete("Use ZipStrings.ConvertToString instead")] + public static string ConvertToString(byte[] data, int count) + => ZipStrings.ConvertToString(data, count); + + /// Deprecated wrapper for + [Obsolete("Use ZipStrings.ConvertToString instead")] + public static string ConvertToString(byte[] data) + => ZipStrings.ConvertToString(data); + + /// Deprecated wrapper for + [Obsolete("Use ZipStrings.ConvertToStringExt instead")] + public static string ConvertToStringExt(int flags, byte[] data, int count) + => ZipStrings.ConvertToStringExt(flags, data, count); + + /// Deprecated wrapper for + [Obsolete("Use ZipStrings.ConvertToStringExt instead")] + public static string ConvertToStringExt(int flags, byte[] data) + => ZipStrings.ConvertToStringExt(flags, data); + + /// Deprecated wrapper for + [Obsolete("Use ZipStrings.ConvertToArray instead")] + public static byte[] ConvertToArray(string str) + => ZipStrings.ConvertToArray(str); + + /// Deprecated wrapper for + [Obsolete("Use ZipStrings.ConvertToArray instead")] + public static byte[] ConvertToArray(int flags, string str) + => ZipStrings.ConvertToArray(flags, str); + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs.meta new file mode 100644 index 0000000..24d99be --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ade3f6418a8e94576aa95eb061c0bc39 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEncryptionMethod.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEncryptionMethod.cs new file mode 100644 index 0000000..ed51559 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEncryptionMethod.cs @@ -0,0 +1,28 @@ +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// The method of encrypting entries when creating zip archives. + /// + public enum ZipEncryptionMethod + { + /// + /// No encryption will be used. + /// + None, + + /// + /// Encrypt entries with ZipCrypto. + /// + ZipCrypto, + + /// + /// Encrypt entries with AES 128. + /// + AES128, + + /// + /// Encrypt entries with AES 256. + /// + AES256 + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEncryptionMethod.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEncryptionMethod.cs.meta new file mode 100644 index 0000000..ba53fe1 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEncryptionMethod.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bea0232db6afa482cb00c5d12b203207 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs new file mode 100644 index 0000000..f14b005 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs @@ -0,0 +1,1155 @@ +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// Defines known values for the property. + /// + public enum HostSystemID + { + /// + /// Host system = MSDOS + /// + Msdos = 0, + + /// + /// Host system = Amiga + /// + Amiga = 1, + + /// + /// Host system = Open VMS + /// + OpenVms = 2, + + /// + /// Host system = Unix + /// + Unix = 3, + + /// + /// Host system = VMCms + /// + VMCms = 4, + + /// + /// Host system = Atari ST + /// + AtariST = 5, + + /// + /// Host system = OS2 + /// + OS2 = 6, + + /// + /// Host system = Macintosh + /// + Macintosh = 7, + + /// + /// Host system = ZSystem + /// + ZSystem = 8, + + /// + /// Host system = Cpm + /// + Cpm = 9, + + /// + /// Host system = Windows NT + /// + WindowsNT = 10, + + /// + /// Host system = MVS + /// + MVS = 11, + + /// + /// Host system = VSE + /// + Vse = 12, + + /// + /// Host system = Acorn RISC + /// + AcornRisc = 13, + + /// + /// Host system = VFAT + /// + Vfat = 14, + + /// + /// Host system = Alternate MVS + /// + AlternateMvs = 15, + + /// + /// Host system = BEOS + /// + BeOS = 16, + + /// + /// Host system = Tandem + /// + Tandem = 17, + + /// + /// Host system = OS400 + /// + OS400 = 18, + + /// + /// Host system = OSX + /// + OSX = 19, + + /// + /// Host system = WinZIP AES + /// + WinZipAES = 99, + } + + /// + /// This class represents an entry in a zip archive. This can be a file + /// or a directory + /// ZipFile and ZipInputStream will give you instances of this class as + /// information about the members in an archive. ZipOutputStream + /// uses an instance of this class when creating an entry in a Zip file. + ///
+ ///
Author of the original java version : Jochen Hoenicke + ///
+ public class ZipEntry + { + [Flags] + private enum Known : byte + { + None = 0, + Size = 0x01, + CompressedSize = 0x02, + Crc = 0x04, + Time = 0x08, + ExternalAttributes = 0x10, + } + + #region Constructors + + /// + /// Creates a zip entry with the given name. + /// + /// + /// The name for this entry. Can include directory components. + /// The convention for names is 'unix' style paths with relative names only. + /// There are with no device names and path elements are separated by '/' characters. + /// + /// + /// The name passed is null + /// + public ZipEntry(string name) + : this(name, 0, ZipConstants.VersionMadeBy, CompressionMethod.Deflated) + { + } + + /// + /// Creates a zip entry with the given name and version required to extract + /// + /// + /// The name for this entry. Can include directory components. + /// The convention for names is 'unix' style paths with no device names and + /// path elements separated by '/' characters. This is not enforced see CleanName + /// on how to ensure names are valid if this is desired. + /// + /// + /// The minimum 'feature version' required this entry + /// + /// + /// The name passed is null + /// + internal ZipEntry(string name, int versionRequiredToExtract) + : this(name, versionRequiredToExtract, ZipConstants.VersionMadeBy, + CompressionMethod.Deflated) + { + } + + /// + /// Initializes an entry with the given name and made by information + /// + /// Name for this entry + /// Version and HostSystem Information + /// Minimum required zip feature version required to extract this entry + /// Compression method for this entry. + /// + /// The name passed is null + /// + /// + /// versionRequiredToExtract should be 0 (auto-calculate) or > 10 + /// + /// + /// This constructor is used by the ZipFile class when reading from the central header + /// It is not generally useful, use the constructor specifying the name only. + /// + internal ZipEntry(string name, int versionRequiredToExtract, int madeByInfo, + CompressionMethod method) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + if (name.Length > 0xffff) + { + throw new ArgumentException("Name is too long", nameof(name)); + } + + if ((versionRequiredToExtract != 0) && (versionRequiredToExtract < 10)) + { + throw new ArgumentOutOfRangeException(nameof(versionRequiredToExtract)); + } + + this.DateTime = DateTime.Now; + this.name = name; + this.versionMadeBy = (ushort)madeByInfo; + this.versionToExtract = (ushort)versionRequiredToExtract; + this.method = method; + + IsUnicodeText = ZipStrings.UseUnicode; + } + + /// + /// Creates a deep copy of the given zip entry. + /// + /// + /// The entry to copy. + /// + [Obsolete("Use Clone instead")] + public ZipEntry(ZipEntry entry) + { + if (entry == null) + { + throw new ArgumentNullException(nameof(entry)); + } + + known = entry.known; + name = entry.name; + size = entry.size; + compressedSize = entry.compressedSize; + crc = entry.crc; + dateTime = entry.DateTime; + method = entry.method; + comment = entry.comment; + versionToExtract = entry.versionToExtract; + versionMadeBy = entry.versionMadeBy; + externalFileAttributes = entry.externalFileAttributes; + flags = entry.flags; + + zipFileIndex = entry.zipFileIndex; + offset = entry.offset; + + forceZip64_ = entry.forceZip64_; + + if (entry.extra != null) + { + extra = new byte[entry.extra.Length]; + Array.Copy(entry.extra, 0, extra, 0, entry.extra.Length); + } + } + + #endregion Constructors + + /// + /// Get a value indicating whether the entry has a CRC value available. + /// + public bool HasCrc => (known & Known.Crc) != 0; + + /// + /// Get/Set flag indicating if entry is encrypted. + /// A simple helper routine to aid interpretation of flags + /// + /// This is an assistant that interprets the flags property. + public bool IsCrypted + { + get => this.HasFlag(GeneralBitFlags.Encrypted); + set => this.SetFlag(GeneralBitFlags.Encrypted, value); + } + + /// + /// Get / set a flag indicating whether entry name and comment text are + /// encoded in unicode UTF8. + /// + /// This is an assistant that interprets the flags property. + public bool IsUnicodeText + { + get => this.HasFlag(GeneralBitFlags.UnicodeText); + set => this.SetFlag(GeneralBitFlags.UnicodeText, value); + } + + /// + /// Value used during password checking for PKZIP 2.0 / 'classic' encryption. + /// + internal byte CryptoCheckValue + { + get => cryptoCheckValue_; + set => cryptoCheckValue_ = value; + } + + /// + /// Get/Set general purpose bit flag for entry + /// + /// + /// General purpose bit flag
+ ///
+ /// Bit 0: If set, indicates the file is encrypted
+ /// Bit 1-2 Only used for compression type 6 Imploding, and 8, 9 deflating
+ /// Imploding:
+ /// Bit 1 if set indicates an 8K sliding dictionary was used. If clear a 4k dictionary was used
+ /// Bit 2 if set indicates 3 Shannon-Fanno trees were used to encode the sliding dictionary, 2 otherwise
+ ///
+ /// Deflating:
+ /// Bit 2 Bit 1
+ /// 0 0 Normal compression was used
+ /// 0 1 Maximum compression was used
+ /// 1 0 Fast compression was used
+ /// 1 1 Super fast compression was used
+ ///
+ /// Bit 3: If set, the fields crc-32, compressed size + /// and uncompressed size are were not able to be written during zip file creation + /// The correct values are held in a data descriptor immediately following the compressed data.
+ /// Bit 4: Reserved for use by PKZIP for enhanced deflating
+ /// Bit 5: If set indicates the file contains compressed patch data
+ /// Bit 6: If set indicates strong encryption was used.
+ /// Bit 7-10: Unused or reserved
+ /// Bit 11: If set the name and comments for this entry are in unicode.
+ /// Bit 12-15: Unused or reserved
+ ///
+ /// + /// + public int Flags + { + get => flags; + set => flags = value; + } + + /// + /// Get/Set index of this entry in Zip file + /// + /// This is only valid when the entry is part of a + public long ZipFileIndex + { + get => zipFileIndex; + set => zipFileIndex = value; + } + + /// + /// Get/set offset for use in central header + /// + public long Offset + { + get => offset; + set => offset = value; + } + + /// + /// Get/Set external file attributes as an integer. + /// The values of this are operating system dependent see + /// HostSystem for details + /// + public int ExternalFileAttributes + { + get => (known & Known.ExternalAttributes) == 0 ? -1 : externalFileAttributes; + + set + { + externalFileAttributes = value; + known |= Known.ExternalAttributes; + } + } + + /// + /// Get the version made by for this entry or zero if unknown. + /// The value / 10 indicates the major version number, and + /// the value mod 10 is the minor version number + /// + public int VersionMadeBy => versionMadeBy & 0xff; + + /// + /// Get a value indicating this entry is for a DOS/Windows system. + /// + public bool IsDOSEntry + => (HostSystem == (int)HostSystemID.Msdos) + || (HostSystem == (int)HostSystemID.WindowsNT); + + /// + /// Test the external attributes for this to + /// see if the external attributes are Dos based (including WINNT and variants) + /// and match the values + /// + /// The attributes to test. + /// Returns true if the external attributes are known to be DOS/Windows + /// based and have the same attributes set as the value passed. + private bool HasDosAttributes(int attributes) + { + bool result = false; + if ((known & Known.ExternalAttributes) != 0) + { + result |= (((HostSystem == (int)HostSystemID.Msdos) || + (HostSystem == (int)HostSystemID.WindowsNT)) && + (ExternalFileAttributes & attributes) == attributes); + } + return result; + } + + /// + /// Gets the compatibility information for the external file attribute + /// If the external file attributes are compatible with MS-DOS and can be read + /// by PKZIP for DOS version 2.04g then this value will be zero. Otherwise the value + /// will be non-zero and identify the host system on which the attributes are compatible. + /// + /// + /// + /// The values for this as defined in the Zip File format and by others are shown below. The values are somewhat + /// misleading in some cases as they are not all used as shown. You should consult the relevant documentation + /// to obtain up to date and correct information. The modified appnote by the infozip group is + /// particularly helpful as it documents a lot of peculiarities. The document is however a little dated. + /// + /// 0 - MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems) + /// 1 - Amiga + /// 2 - OpenVMS + /// 3 - Unix + /// 4 - VM/CMS + /// 5 - Atari ST + /// 6 - OS/2 HPFS + /// 7 - Macintosh + /// 8 - Z-System + /// 9 - CP/M + /// 10 - Windows NTFS + /// 11 - MVS (OS/390 - Z/OS) + /// 12 - VSE + /// 13 - Acorn Risc + /// 14 - VFAT + /// 15 - Alternate MVS + /// 16 - BeOS + /// 17 - Tandem + /// 18 - OS/400 + /// 19 - OS/X (Darwin) + /// 99 - WinZip AES + /// remainder - unused + /// + /// + public int HostSystem + { + get => (versionMadeBy >> 8) & 0xff; + + set + { + versionMadeBy &= 0x00ff; + versionMadeBy |= (ushort)((value & 0xff) << 8); + } + } + + /// + /// Get minimum Zip feature version required to extract this entry + /// + /// + /// Minimum features are defined as:
+ /// 1.0 - Default value
+ /// 1.1 - File is a volume label
+ /// 2.0 - File is a folder/directory
+ /// 2.0 - File is compressed using Deflate compression
+ /// 2.0 - File is encrypted using traditional encryption
+ /// 2.1 - File is compressed using Deflate64
+ /// 2.5 - File is compressed using PKWARE DCL Implode
+ /// 2.7 - File is a patch data set
+ /// 4.5 - File uses Zip64 format extensions
+ /// 4.6 - File is compressed using BZIP2 compression
+ /// 5.0 - File is encrypted using DES
+ /// 5.0 - File is encrypted using 3DES
+ /// 5.0 - File is encrypted using original RC2 encryption
+ /// 5.0 - File is encrypted using RC4 encryption
+ /// 5.1 - File is encrypted using AES encryption
+ /// 5.1 - File is encrypted using corrected RC2 encryption
+ /// 5.1 - File is encrypted using corrected RC2-64 encryption
+ /// 6.1 - File is encrypted using non-OAEP key wrapping
+ /// 6.2 - Central directory encryption (not confirmed yet)
+ /// 6.3 - File is compressed using LZMA
+ /// 6.3 - File is compressed using PPMD+
+ /// 6.3 - File is encrypted using Blowfish
+ /// 6.3 - File is encrypted using Twofish
+ ///
+ /// + public int Version + { + get + { + // Return recorded version if known. + if (versionToExtract != 0) + // Only lower order byte. High order is O/S file system. + return versionToExtract & 0x00ff; + + if (AESKeySize > 0) + // Ver 5.1 = AES + return ZipConstants.VERSION_AES; + + if (CompressionMethod.BZip2 == method) + return ZipConstants.VersionBZip2; + + if (CentralHeaderRequiresZip64) + return ZipConstants.VersionZip64; + + if (CompressionMethod.Deflated == method || IsDirectory || IsCrypted) + return 20; + + if (HasDosAttributes(0x08)) + return 11; + + return 10; + } + } + + /// + /// Get a value indicating whether this entry can be decompressed by the library. + /// + /// This is based on the and + /// whether the compression method is supported. + public bool CanDecompress + => Version <= ZipConstants.VersionMadeBy + && (Version == 10 || Version == 11 || Version == 20 || Version == 45 || Version == 46 || Version == 51) + && IsCompressionMethodSupported(); + + /// + /// Force this entry to be recorded using Zip64 extensions. + /// + public void ForceZip64() => forceZip64_ = true; + + /// + /// Get a value indicating whether Zip64 extensions were forced. + /// + /// A value of true if Zip64 extensions have been forced on; false if not. + public bool IsZip64Forced() => forceZip64_; + + /// + /// Gets a value indicating if the entry requires Zip64 extensions + /// to store the full entry values. + /// + /// A value of true if a local header requires Zip64 extensions; false if not. + public bool LocalHeaderRequiresZip64 + { + get + { + bool result = forceZip64_; + + if (!result) + { + ulong trueCompressedSize = compressedSize; + + if ((versionToExtract == 0) && IsCrypted) + { + trueCompressedSize += (ulong)this.EncryptionOverheadSize; + } + + // TODO: A better estimation of the true limit based on compression overhead should be used + // to determine when an entry should use Zip64. + result = + ((this.size >= uint.MaxValue) || (trueCompressedSize >= uint.MaxValue)) && + ((versionToExtract == 0) || (versionToExtract >= ZipConstants.VersionZip64)); + } + + return result; + } + } + + /// + /// Get a value indicating whether the central directory entry requires Zip64 extensions to be stored. + /// + public bool CentralHeaderRequiresZip64 + => LocalHeaderRequiresZip64 || (offset >= uint.MaxValue); + + /// + /// Get/Set DosTime value. + /// + /// + /// The MS-DOS date format can only represent dates between 1/1/1980 and 12/31/2107. + /// + public long DosTime + { + get + { + if ((known & Known.Time) == 0) + { + return 0; + } + + var year = (uint)DateTime.Year; + var month = (uint)DateTime.Month; + var day = (uint)DateTime.Day; + var hour = (uint)DateTime.Hour; + var minute = (uint)DateTime.Minute; + var second = (uint)DateTime.Second; + + if (year < 1980) + { + year = 1980; + month = 1; + day = 1; + hour = 0; + minute = 0; + second = 0; + } + else if (year > 2107) + { + year = 2107; + month = 12; + day = 31; + hour = 23; + minute = 59; + second = 59; + } + + return ((year - 1980) & 0x7f) << 25 | + (month << 21) | + (day << 16) | + (hour << 11) | + (minute << 5) | + (second >> 1); + } + + set + { + unchecked + { + var dosTime = (uint)value; + uint sec = Math.Min(59, 2 * (dosTime & 0x1f)); + uint min = Math.Min(59, (dosTime >> 5) & 0x3f); + uint hrs = Math.Min(23, (dosTime >> 11) & 0x1f); + uint mon = Math.Max(1, Math.Min(12, ((uint)(value >> 21) & 0xf))); + uint year = ((dosTime >> 25) & 0x7f) + 1980; + int day = Math.Max(1, Math.Min(DateTime.DaysInMonth((int)year, (int)mon), (int)((value >> 16) & 0x1f))); + DateTime = new DateTime((int)year, (int)mon, day, (int)hrs, (int)min, (int)sec, DateTimeKind.Unspecified); + } + } + } + + /// + /// Gets/Sets the time of last modification of the entry. + /// + /// + /// The property is updated to match this as far as possible. + /// + public DateTime DateTime + { + get => dateTime; + + set + { + dateTime = value; + known |= Known.Time; + } + } + + /// + /// Returns the entry name. + /// + /// + /// The unix naming convention is followed. + /// Path components in the entry should always separated by forward slashes ('/'). + /// Dos device names like C: should also be removed. + /// See the class, or + /// + public string Name + { + get => name; + internal set => name = value; + } + + /// + /// Gets/Sets the size of the uncompressed data. + /// + /// + /// The size or -1 if unknown. + /// + /// Setting the size before adding an entry to an archive can help + /// avoid compatibility problems with some archivers which don't understand Zip64 extensions. + public long Size + { + get => (known & Known.Size) != 0 ? (long)size : -1L; + set + { + size = (ulong)value; + known |= Known.Size; + } + } + + /// + /// Gets/Sets the size of the compressed data. + /// + /// + /// The compressed entry size or -1 if unknown. + /// + public long CompressedSize + { + get => (known & Known.CompressedSize) != 0 ? (long)compressedSize : -1L; + set + { + compressedSize = (ulong)value; + known |= Known.CompressedSize; + } + } + + /// + /// Gets/Sets the crc of the uncompressed data. + /// + /// + /// Crc is not in the range 0..0xffffffffL + /// + /// + /// The crc value or -1 if unknown. + /// + public long Crc + { + get => (known & Known.Crc) != 0 ? crc & 0xffffffffL : -1L; + set + { + if ((crc & 0xffffffff00000000L) != 0) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + this.crc = (uint)value; + this.known |= Known.Crc; + } + } + + /// + /// Gets/Sets the compression method. + /// + /// + /// The compression method for this entry + /// + public CompressionMethod CompressionMethod + { + get => method; + set => method = value; + } + + /// + /// Gets the compression method for outputting to the local or central header. + /// Returns same value as CompressionMethod except when AES encrypting, which + /// places 99 in the method and places the real method in the extra data. + /// + internal CompressionMethod CompressionMethodForHeader + => (AESKeySize > 0) ? CompressionMethod.WinZipAES : method; + + /// + /// Gets/Sets the extra data. + /// + /// + /// Extra data is longer than 64KB (0xffff) bytes. + /// + /// + /// Extra data or null if not set. + /// + public byte[] ExtraData + { + // TODO: This is slightly safer but less efficient. Think about whether it should change. + // return (byte[]) extra.Clone(); + get => extra; + + set + { + if (value == null) + { + extra = null; + } + else + { + if (value.Length > 0xffff) + { + throw new System.ArgumentOutOfRangeException(nameof(value)); + } + + extra = new byte[value.Length]; + Array.Copy(value, 0, extra, 0, value.Length); + } + } + } + + /// + /// For AES encrypted files returns or sets the number of bits of encryption (128, 192 or 256). + /// When setting, only 0 (off), 128 or 256 is supported. + /// + public int AESKeySize + { + get + { + // the strength (1 or 3) is in the entry header + switch (_aesEncryptionStrength) + { + case 0: + return 0; // Not AES + case 1: + return 128; + + case 2: + return 192; // Not used by WinZip + case 3: + return 256; + + default: + throw new ZipException("Invalid AESEncryptionStrength " + _aesEncryptionStrength); + } + } + set + { + switch (value) + { + case 0: + _aesEncryptionStrength = 0; + break; + + case 128: + _aesEncryptionStrength = 1; + break; + + case 256: + _aesEncryptionStrength = 3; + break; + + default: + throw new ZipException("AESKeySize must be 0, 128 or 256: " + value); + } + } + } + + /// + /// AES Encryption strength for storage in extra data in entry header. + /// 1 is 128 bit, 2 is 192 bit, 3 is 256 bit. + /// + internal byte AESEncryptionStrength => (byte)_aesEncryptionStrength; + + /// + /// Returns the length of the salt, in bytes + /// + /// Key size -> Salt length: 128 bits = 8 bytes, 192 bits = 12 bytes, 256 bits = 16 bytes. + internal int AESSaltLen => AESKeySize / 16; + + /// + /// Number of extra bytes required to hold the AES Header fields (Salt, Pwd verify, AuthCode) + /// + /// File format: + /// Bytes | Content + /// ---------+--------------------------- + /// Variable | Salt value + /// 2 | Password verification value + /// Variable | Encrypted file data + /// 10 | Authentication code + internal int AESOverheadSize => 12 + AESSaltLen; + + /// + /// Number of extra bytes required to hold the encryption header fields. + /// + internal int EncryptionOverheadSize => + !IsCrypted + // Entry is not encrypted - no overhead + ? 0 + : _aesEncryptionStrength == 0 + // Entry is encrypted using ZipCrypto + ? ZipConstants.CryptoHeaderSize + // Entry is encrypted using AES + : AESOverheadSize; + + /// + /// Process extra data fields updating the entry based on the contents. + /// + /// True if the extra data fields should be handled + /// for a local header, rather than for a central header. + /// + internal void ProcessExtraData(bool localHeader) + { + var extraData = new ZipExtraData(this.extra); + + if (extraData.Find(0x0001)) + { + // Version required to extract is ignored here as some archivers dont set it correctly + // in theory it should be version 45 or higher + + // The recorded size will change but remember that this is zip64. + forceZip64_ = true; + + if (extraData.ValueLength < 4) + { + throw new ZipException("Extra data extended Zip64 information length is invalid"); + } + + // (localHeader ||) was deleted, because actually there is no specific difference with reading sizes between local header & central directory + // https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT + // ... + // 4.4 Explanation of fields + // ... + // 4.4.8 compressed size: (4 bytes) + // 4.4.9 uncompressed size: (4 bytes) + // + // The size of the file compressed (4.4.8) and uncompressed, + // (4.4.9) respectively. When a decryption header is present it + // will be placed in front of the file data and the value of the + // compressed file size will include the bytes of the decryption + // header. If bit 3 of the general purpose bit flag is set, + // these fields are set to zero in the local header and the + // correct values are put in the data descriptor and + // in the central directory. If an archive is in ZIP64 format + // and the value in this field is 0xFFFFFFFF, the size will be + // in the corresponding 8 byte ZIP64 extended information + // extra field. When encrypting the central directory, if the + // local header is not in ZIP64 format and general purpose bit + // flag 13 is set indicating masking, the value stored for the + // uncompressed size in the Local Header will be zero. + // + // Otherwise there is problem with minizip implementation + if (size == uint.MaxValue) + { + size = (ulong)extraData.ReadLong(); + } + + if (compressedSize == uint.MaxValue) + { + compressedSize = (ulong)extraData.ReadLong(); + } + + if (!localHeader && (offset == uint.MaxValue)) + { + offset = extraData.ReadLong(); + } + + // Disk number on which file starts is ignored + } + else + { + if ( + ((versionToExtract & 0xff) >= ZipConstants.VersionZip64) && + ((size == uint.MaxValue) || (compressedSize == uint.MaxValue)) + ) + { + throw new ZipException("Zip64 Extended information required but is missing."); + } + } + + DateTime = GetDateTime(extraData) ?? DateTime; + if (method == CompressionMethod.WinZipAES) + { + ProcessAESExtraData(extraData); + } + } + + private static DateTime? GetDateTime(ZipExtraData extraData) + { + // Check for NT timestamp + // NOTE: Disable by default to match behavior of InfoZIP +#if RESPECT_NT_TIMESTAMP + NTTaggedData ntData = extraData.GetData(); + if (ntData != null) + return ntData.LastModificationTime; +#endif + + // Check for Unix timestamp + ExtendedUnixData unixData = extraData.GetData(); + if (unixData != null && unixData.Include.HasFlag(ExtendedUnixData.Flags.ModificationTime)) + return unixData.ModificationTime; + + return null; + } + + // For AES the method in the entry is 99, and the real compression method is in the extradata + private void ProcessAESExtraData(ZipExtraData extraData) + { + if (extraData.Find(0x9901)) + { + // Set version for Zipfile.CreateAndInitDecryptionStream + versionToExtract = ZipConstants.VERSION_AES; // Ver 5.1 = AES see "Version" getter + + // + // Unpack AES extra data field see http://www.winzip.com/aes_info.htm + int length = extraData.ValueLength; // Data size currently 7 + if (length < 7) + throw new ZipException("AES Extra Data Length " + length + " invalid."); + int ver = extraData.ReadShort(); // Version number (1=AE-1 2=AE-2) + int vendorId = extraData.ReadShort(); // 2-character vendor ID 0x4541 = "AE" + int encrStrength = extraData.ReadByte(); // encryption strength 1 = 128 2 = 192 3 = 256 + int actualCompress = extraData.ReadShort(); // The actual compression method used to compress the file + _aesVer = ver; + _aesEncryptionStrength = encrStrength; + method = (CompressionMethod)actualCompress; + } + else + throw new ZipException("AES Extra Data missing"); + } + + /// + /// Gets/Sets the entry comment. + /// + /// + /// If comment is longer than 0xffff. + /// + /// + /// The comment or null if not set. + /// + /// + /// A comment is only available for entries when read via the class. + /// The class doesn't have the comment data available. + /// + public string Comment + { + get => comment; + set + { + // This test is strictly incorrect as the length is in characters + // while the storage limit is in bytes. + // While the test is partially correct in that a comment of this length or greater + // is definitely invalid, shorter comments may also have an invalid length + // where there are multi-byte characters + // The full test is not possible here however as the code page to apply conversions with + // isn't available. + if ((value != null) && (value.Length > 0xffff)) + { + throw new ArgumentOutOfRangeException(nameof(value), "cannot exceed 65535"); + } + + comment = value; + } + } + + /// + /// Gets a value indicating if the entry is a directory. + /// however. + /// + /// + /// A directory is determined by an entry name with a trailing slash '/'. + /// The external file attributes can also indicate an entry is for a directory. + /// Currently only dos/windows attributes are tested in this manner. + /// The trailing slash convention should always be followed. + /// + public bool IsDirectory + => name.Length > 0 + && (name[name.Length - 1] == '/' || name[name.Length - 1] == '\\') || HasDosAttributes(16); + + /// + /// Get a value of true if the entry appears to be a file; false otherwise + /// + /// + /// This only takes account of DOS/Windows attributes. Other operating systems are ignored. + /// For linux and others the result may be incorrect. + /// + public bool IsFile => !IsDirectory && !HasDosAttributes(8); + + /// + /// Test entry to see if data can be extracted. + /// + /// Returns true if data can be extracted for this entry; false otherwise. + public bool IsCompressionMethodSupported() => IsCompressionMethodSupported(CompressionMethod); + + #region ICloneable Members + + /// + /// Creates a copy of this zip entry. + /// + /// An that is a copy of the current instance. + public object Clone() + { + var result = (ZipEntry)this.MemberwiseClone(); + + // Ensure extra data is unique if it exists. + if (extra != null) + { + result.extra = new byte[extra.Length]; + Array.Copy(extra, 0, result.extra, 0, extra.Length); + } + + return result; + } + + #endregion ICloneable Members + + /// + /// Gets a string representation of this ZipEntry. + /// + /// A readable textual representation of this + public override string ToString() => name; + + /// + /// Test a compression method to see if this library + /// supports extracting data compressed with that method + /// + /// The compression method to test. + /// Returns true if the compression method is supported; false otherwise + public static bool IsCompressionMethodSupported(CompressionMethod method) + => method == CompressionMethod.Deflated + || method == CompressionMethod.Stored + || method == CompressionMethod.BZip2; + + /// + /// Cleans a name making it conform to Zip file conventions. + /// Devices names ('c:\') and UNC share names ('\\server\share') are removed + /// and forward slashes ('\') are converted to back slashes ('/'). + /// Names are made relative by trimming leading slashes which is compatible + /// with the ZIP naming convention. + /// + /// The name to clean + /// The 'cleaned' name. + /// + /// The Zip name transform class is more flexible. + /// + public static string CleanName(string name) + { + if (name == null) + { + return string.Empty; + } + + if (Path.IsPathRooted(name)) + { + // NOTE: + // for UNC names... \\machine\share\zoom\beet.txt gives \zoom\beet.txt + name = name.Substring(Path.GetPathRoot(name).Length); + } + + name = name.Replace(@"\", "/"); + + while ((name.Length > 0) && (name[0] == '/')) + { + name = name.Remove(0, 1); + } + return name; + } + + #region Instance Fields + + private Known known; + private int externalFileAttributes = -1; // contains external attributes (O/S dependant) + + private ushort versionMadeBy; // Contains host system and version information + // only relevant for central header entries + + private string name; + private ulong size; + private ulong compressedSize; + private ushort versionToExtract; // Version required to extract (library handles <= 2.0) + private uint crc; + private DateTime dateTime; + + private CompressionMethod method = CompressionMethod.Deflated; + private byte[] extra; + private string comment; + + private int flags; // general purpose bit flags + + private long zipFileIndex = -1; // used by ZipFile + private long offset; // used by ZipFile and ZipOutputStream + + private bool forceZip64_; + private byte cryptoCheckValue_; + private int _aesVer; // Version number (2 = AE-2 ?). Assigned but not used. + private int _aesEncryptionStrength; // Encryption strength 1 = 128 2 = 192 3 = 256 + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs.meta new file mode 100644 index 0000000..2d085d8 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 933c73f854cc64f4d8ec4b4a0a3b3233 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryExtensions.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryExtensions.cs new file mode 100644 index 0000000..b5a4da6 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryExtensions.cs @@ -0,0 +1,28 @@ +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// General ZipEntry helper extensions + /// + public static class ZipEntryExtensions + { + /// + /// Efficiently check if a flag is set without enum un-/boxing + /// + /// + /// + /// Returns whether the flag was set + public static bool HasFlag(this ZipEntry entry, GeneralBitFlags flag) + => (entry.Flags & (int) flag) != 0; + + /// + /// Efficiently set a flag without enum un-/boxing + /// + /// + /// + /// Whether the passed flag should be set (1) or cleared (0) + public static void SetFlag(this ZipEntry entry, GeneralBitFlags flag, bool enabled = true) + => entry.Flags = enabled + ? entry.Flags | (int) flag + : entry.Flags & ~(int) flag; + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryExtensions.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryExtensions.cs.meta new file mode 100644 index 0000000..c5e344b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fbdca113845d244f98f2c7a5e0b38362 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs new file mode 100644 index 0000000..1e40baa --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs @@ -0,0 +1,375 @@ +using ICSharpCode.SharpZipLib.Core; +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// Basic implementation of + /// + public class ZipEntryFactory : IEntryFactory + { + #region Enumerations + + /// + /// Defines the possible values to be used for the . + /// + public enum TimeSetting + { + /// + /// Use the recorded LastWriteTime value for the file. + /// + LastWriteTime, + + /// + /// Use the recorded LastWriteTimeUtc value for the file + /// + LastWriteTimeUtc, + + /// + /// Use the recorded CreateTime value for the file. + /// + CreateTime, + + /// + /// Use the recorded CreateTimeUtc value for the file. + /// + CreateTimeUtc, + + /// + /// Use the recorded LastAccessTime value for the file. + /// + LastAccessTime, + + /// + /// Use the recorded LastAccessTimeUtc value for the file. + /// + LastAccessTimeUtc, + + /// + /// Use a fixed value. + /// + /// The actual value used can be + /// specified via the constructor or + /// using the with the setting set + /// to which will use the when this class was constructed. + /// The property can also be used to set this value. + Fixed, + } + + #endregion Enumerations + + #region Constructors + + /// + /// Initialise a new instance of the class. + /// + /// A default , and the LastWriteTime for files is used. + public ZipEntryFactory() + { + nameTransform_ = new ZipNameTransform(); + isUnicodeText_ = ZipStrings.UseUnicode; + } + + /// + /// Initialise a new instance of using the specified + /// + /// The time setting to use when creating Zip entries. + public ZipEntryFactory(TimeSetting timeSetting) : this() + { + timeSetting_ = timeSetting; + } + + /// + /// Initialise a new instance of using the specified + /// + /// The time to set all values to. + public ZipEntryFactory(DateTime time) : this() + { + timeSetting_ = TimeSetting.Fixed; + FixedDateTime = time; + } + + #endregion Constructors + + #region Properties + + /// + /// Get / set the to be used when creating new values. + /// + /// + /// Setting this property to null will cause a default name transform to be used. + /// + public INameTransform NameTransform + { + get { return nameTransform_; } + set + { + if (value == null) + { + nameTransform_ = new ZipNameTransform(); + } + else + { + nameTransform_ = value; + } + } + } + + /// + /// Get / set the in use. + /// + public TimeSetting Setting + { + get { return timeSetting_; } + set { timeSetting_ = value; } + } + + /// + /// Get / set the value to use when is set to + /// + public DateTime FixedDateTime + { + get { return fixedDateTime_; } + set + { + if (value.Year < 1970) + { + throw new ArgumentException("Value is too old to be valid", nameof(value)); + } + fixedDateTime_ = value; + } + } + + /// + /// A bitmask defining the attributes to be retrieved from the actual file. + /// + /// The default is to get all possible attributes from the actual file. + public int GetAttributes + { + get { return getAttributes_; } + set { getAttributes_ = value; } + } + + /// + /// A bitmask defining which attributes are to be set on. + /// + /// By default no attributes are set on. + public int SetAttributes + { + get { return setAttributes_; } + set { setAttributes_ = value; } + } + + /// + /// Get set a value indicating whether unidoce text should be set on. + /// + public bool IsUnicodeText + { + get { return isUnicodeText_; } + set { isUnicodeText_ = value; } + } + + #endregion Properties + + #region IEntryFactory Members + + /// + /// Make a new for a file. + /// + /// The name of the file to create a new entry for. + /// Returns a new based on the . + public ZipEntry MakeFileEntry(string fileName) + { + return MakeFileEntry(fileName, null, true); + } + + /// + /// Make a new for a file. + /// + /// The name of the file to create a new entry for. + /// If true entry detail is retrieved from the file system if the file exists. + /// Returns a new based on the . + public ZipEntry MakeFileEntry(string fileName, bool useFileSystem) + { + return MakeFileEntry(fileName, null, useFileSystem); + } + + /// + /// Make a new from a name. + /// + /// The name of the file to create a new entry for. + /// An alternative name to be used for the new entry. Null if not applicable. + /// If true entry detail is retrieved from the file system if the file exists. + /// Returns a new based on the . + public ZipEntry MakeFileEntry(string fileName, string entryName, bool useFileSystem) + { + var result = new ZipEntry(nameTransform_.TransformFile(!string.IsNullOrEmpty(entryName) ? entryName : fileName)); + result.IsUnicodeText = isUnicodeText_; + + int externalAttributes = 0; + bool useAttributes = (setAttributes_ != 0); + + FileInfo fi = null; + if (useFileSystem) + { + fi = new FileInfo(fileName); + } + + if ((fi != null) && fi.Exists) + { + switch (timeSetting_) + { + case TimeSetting.CreateTime: + result.DateTime = fi.CreationTime; + break; + + case TimeSetting.CreateTimeUtc: + result.DateTime = fi.CreationTimeUtc; + break; + + case TimeSetting.LastAccessTime: + result.DateTime = fi.LastAccessTime; + break; + + case TimeSetting.LastAccessTimeUtc: + result.DateTime = fi.LastAccessTimeUtc; + break; + + case TimeSetting.LastWriteTime: + result.DateTime = fi.LastWriteTime; + break; + + case TimeSetting.LastWriteTimeUtc: + result.DateTime = fi.LastWriteTimeUtc; + break; + + case TimeSetting.Fixed: + result.DateTime = fixedDateTime_; + break; + + default: + throw new ZipException("Unhandled time setting in MakeFileEntry"); + } + + result.Size = fi.Length; + + useAttributes = true; + externalAttributes = ((int)fi.Attributes & getAttributes_); + } + else + { + if (timeSetting_ == TimeSetting.Fixed) + { + result.DateTime = fixedDateTime_; + } + } + + if (useAttributes) + { + externalAttributes |= setAttributes_; + result.ExternalFileAttributes = externalAttributes; + } + + return result; + } + + /// + /// Make a new for a directory. + /// + /// The raw untransformed name for the new directory + /// Returns a new representing a directory. + public ZipEntry MakeDirectoryEntry(string directoryName) + { + return MakeDirectoryEntry(directoryName, true); + } + + /// + /// Make a new for a directory. + /// + /// The raw untransformed name for the new directory + /// If true entry detail is retrieved from the file system if the file exists. + /// Returns a new representing a directory. + public ZipEntry MakeDirectoryEntry(string directoryName, bool useFileSystem) + { + var result = new ZipEntry(nameTransform_.TransformDirectory(directoryName)); + result.IsUnicodeText = isUnicodeText_; + result.Size = 0; + + int externalAttributes = 0; + + DirectoryInfo di = null; + + if (useFileSystem) + { + di = new DirectoryInfo(directoryName); + } + + if ((di != null) && di.Exists) + { + switch (timeSetting_) + { + case TimeSetting.CreateTime: + result.DateTime = di.CreationTime; + break; + + case TimeSetting.CreateTimeUtc: + result.DateTime = di.CreationTimeUtc; + break; + + case TimeSetting.LastAccessTime: + result.DateTime = di.LastAccessTime; + break; + + case TimeSetting.LastAccessTimeUtc: + result.DateTime = di.LastAccessTimeUtc; + break; + + case TimeSetting.LastWriteTime: + result.DateTime = di.LastWriteTime; + break; + + case TimeSetting.LastWriteTimeUtc: + result.DateTime = di.LastWriteTimeUtc; + break; + + case TimeSetting.Fixed: + result.DateTime = fixedDateTime_; + break; + + default: + throw new ZipException("Unhandled time setting in MakeDirectoryEntry"); + } + + externalAttributes = ((int)di.Attributes & getAttributes_); + } + else + { + if (timeSetting_ == TimeSetting.Fixed) + { + result.DateTime = fixedDateTime_; + } + } + + // Always set directory attribute on. + externalAttributes |= (setAttributes_ | 16); + result.ExternalFileAttributes = externalAttributes; + + return result; + } + + #endregion IEntryFactory Members + + #region Instance Fields + + private INameTransform nameTransform_; + private DateTime fixedDateTime_ = DateTime.Now; + private TimeSetting timeSetting_ = TimeSetting.LastWriteTime; + private bool isUnicodeText_; + + private int getAttributes_ = -1; + private int setAttributes_; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs.meta new file mode 100644 index 0000000..63d2081 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3aba2618880a9454ab377d650856cd6d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipException.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipException.cs new file mode 100644 index 0000000..ef8142b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipException.cs @@ -0,0 +1,54 @@ +using System; +using System.Runtime.Serialization; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// ZipException represents exceptions specific to Zip classes and code. + /// + [Serializable] + public class ZipException : SharpZipBaseException + { + /// + /// Initialise a new instance of . + /// + public ZipException() + { + } + + /// + /// Initialise a new instance of with its message string. + /// + /// A that describes the error. + public ZipException(string message) + : base(message) + { + } + + /// + /// Initialise a new instance of . + /// + /// A that describes the error. + /// The that caused this exception. + public ZipException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the ZipException class with serialized data. + /// + /// + /// The System.Runtime.Serialization.SerializationInfo that holds the serialized + /// object data about the exception being thrown. + /// + /// + /// The System.Runtime.Serialization.StreamingContext that contains contextual information + /// about the source or destination. + /// + protected ZipException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipException.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipException.cs.meta new file mode 100644 index 0000000..546b3ff --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 90ec548b72a9a4ccb81ae8f4e190bca8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs new file mode 100644 index 0000000..4e075dc --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs @@ -0,0 +1,980 @@ +using System; +using System.IO; +using ICSharpCode.SharpZipLib.Core; + +namespace ICSharpCode.SharpZipLib.Zip +{ + // TODO: Sort out whether tagged data is useful and what a good implementation might look like. + // Its just a sketch of an idea at the moment. + + /// + /// ExtraData tagged value interface. + /// + public interface ITaggedData + { + /// + /// Get the ID for this tagged data value. + /// + short TagID { get; } + + /// + /// Set the contents of this instance from the data passed. + /// + /// The data to extract contents from. + /// The offset to begin extracting data from. + /// The number of bytes to extract. + void SetData(byte[] data, int offset, int count); + + /// + /// Get the data representing this instance. + /// + /// Returns the data for this instance. + byte[] GetData(); + } + + /// + /// A raw binary tagged value + /// + public class RawTaggedData : ITaggedData + { + /// + /// Initialise a new instance. + /// + /// The tag ID. + public RawTaggedData(short tag) + { + _tag = tag; + } + + #region ITaggedData Members + + /// + /// Get the ID for this tagged data value. + /// + public short TagID + { + get { return _tag; } + set { _tag = value; } + } + + /// + /// Set the data from the raw values provided. + /// + /// The raw data to extract values from. + /// The index to start extracting values from. + /// The number of bytes available. + public void SetData(byte[] data, int offset, int count) + { + if (data == null) + { + throw new ArgumentNullException(nameof(data)); + } + + _data = new byte[count]; + Array.Copy(data, offset, _data, 0, count); + } + + /// + /// Get the binary data representing this instance. + /// + /// The raw binary data representing this instance. + public byte[] GetData() + { + return _data; + } + + #endregion ITaggedData Members + + /// + /// Get /set the binary data representing this instance. + /// + /// The raw binary data representing this instance. + public byte[] Data + { + get { return _data; } + set { _data = value; } + } + + #region Instance Fields + + /// + /// The tag ID for this instance. + /// + private short _tag; + + private byte[] _data; + + #endregion Instance Fields + } + + /// + /// Class representing extended unix date time values. + /// + public class ExtendedUnixData : ITaggedData + { + /// + /// Flags indicate which values are included in this instance. + /// + [Flags] + public enum Flags : byte + { + /// + /// The modification time is included + /// + ModificationTime = 0x01, + + /// + /// The access time is included + /// + AccessTime = 0x02, + + /// + /// The create time is included. + /// + CreateTime = 0x04, + } + + #region ITaggedData Members + + /// + /// Get the ID + /// + public short TagID + { + get { return 0x5455; } + } + + /// + /// Set the data from the raw values provided. + /// + /// The raw data to extract values from. + /// The index to start extracting values from. + /// The number of bytes available. + public void SetData(byte[] data, int index, int count) + { + using (MemoryStream ms = new MemoryStream(data, index, count, false)) + using (ZipHelperStream helperStream = new ZipHelperStream(ms)) + { + // bit 0 if set, modification time is present + // bit 1 if set, access time is present + // bit 2 if set, creation time is present + + _flags = (Flags)helperStream.ReadByte(); + if (((_flags & Flags.ModificationTime) != 0)) + { + int iTime = helperStream.ReadLEInt(); + + _modificationTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) + + new TimeSpan(0, 0, 0, iTime, 0); + + // Central-header version is truncated after modification time + if (count <= 5) return; + } + + if ((_flags & Flags.AccessTime) != 0) + { + int iTime = helperStream.ReadLEInt(); + + _lastAccessTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) + + new TimeSpan(0, 0, 0, iTime, 0); + } + + if ((_flags & Flags.CreateTime) != 0) + { + int iTime = helperStream.ReadLEInt(); + + _createTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc) + + new TimeSpan(0, 0, 0, iTime, 0); + } + } + } + + /// + /// Get the binary data representing this instance. + /// + /// The raw binary data representing this instance. + public byte[] GetData() + { + using (MemoryStream ms = new MemoryStream()) + using (ZipHelperStream helperStream = new ZipHelperStream(ms)) + { + helperStream.IsStreamOwner = false; + helperStream.WriteByte((byte)_flags); // Flags + if ((_flags & Flags.ModificationTime) != 0) + { + TimeSpan span = _modificationTime - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); + var seconds = (int)span.TotalSeconds; + helperStream.WriteLEInt(seconds); + } + if ((_flags & Flags.AccessTime) != 0) + { + TimeSpan span = _lastAccessTime - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); + var seconds = (int)span.TotalSeconds; + helperStream.WriteLEInt(seconds); + } + if ((_flags & Flags.CreateTime) != 0) + { + TimeSpan span = _createTime - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); + var seconds = (int)span.TotalSeconds; + helperStream.WriteLEInt(seconds); + } + return ms.ToArray(); + } + } + + #endregion ITaggedData Members + + /// + /// Test a value to see if is valid and can be represented here. + /// + /// The value to test. + /// Returns true if the value is valid and can be represented; false if not. + /// The standard Unix time is a signed integer data type, directly encoding the Unix time number, + /// which is the number of seconds since 1970-01-01. + /// Being 32 bits means the values here cover a range of about 136 years. + /// The minimum representable time is 1901-12-13 20:45:52, + /// and the maximum representable time is 2038-01-19 03:14:07. + /// + public static bool IsValidValue(DateTime value) + { + return ((value >= new DateTime(1901, 12, 13, 20, 45, 52)) || + (value <= new DateTime(2038, 1, 19, 03, 14, 07))); + } + + /// + /// Get /set the Modification Time + /// + /// + /// + public DateTime ModificationTime + { + get { return _modificationTime; } + set + { + if (!IsValidValue(value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + + _flags |= Flags.ModificationTime; + _modificationTime = value; + } + } + + /// + /// Get / set the Access Time + /// + /// + /// + public DateTime AccessTime + { + get { return _lastAccessTime; } + set + { + if (!IsValidValue(value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + + _flags |= Flags.AccessTime; + _lastAccessTime = value; + } + } + + /// + /// Get / Set the Create Time + /// + /// + /// + public DateTime CreateTime + { + get { return _createTime; } + set + { + if (!IsValidValue(value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + + _flags |= Flags.CreateTime; + _createTime = value; + } + } + + /// + /// Get/set the values to include. + /// + public Flags Include + { + get { return _flags; } + set { _flags = value; } + } + + #region Instance Fields + + private Flags _flags; + private DateTime _modificationTime = new DateTime(1970, 1, 1); + private DateTime _lastAccessTime = new DateTime(1970, 1, 1); + private DateTime _createTime = new DateTime(1970, 1, 1); + + #endregion Instance Fields + } + + /// + /// Class handling NT date time values. + /// + public class NTTaggedData : ITaggedData + { + /// + /// Get the ID for this tagged data value. + /// + public short TagID + { + get { return 10; } + } + + /// + /// Set the data from the raw values provided. + /// + /// The raw data to extract values from. + /// The index to start extracting values from. + /// The number of bytes available. + public void SetData(byte[] data, int index, int count) + { + using (MemoryStream ms = new MemoryStream(data, index, count, false)) + using (ZipHelperStream helperStream = new ZipHelperStream(ms)) + { + helperStream.ReadLEInt(); // Reserved + while (helperStream.Position < helperStream.Length) + { + int ntfsTag = helperStream.ReadLEShort(); + int ntfsLength = helperStream.ReadLEShort(); + if (ntfsTag == 1) + { + if (ntfsLength >= 24) + { + long lastModificationTicks = helperStream.ReadLELong(); + _lastModificationTime = DateTime.FromFileTimeUtc(lastModificationTicks); + + long lastAccessTicks = helperStream.ReadLELong(); + _lastAccessTime = DateTime.FromFileTimeUtc(lastAccessTicks); + + long createTimeTicks = helperStream.ReadLELong(); + _createTime = DateTime.FromFileTimeUtc(createTimeTicks); + } + break; + } + else + { + // An unknown NTFS tag so simply skip it. + helperStream.Seek(ntfsLength, SeekOrigin.Current); + } + } + } + } + + /// + /// Get the binary data representing this instance. + /// + /// The raw binary data representing this instance. + public byte[] GetData() + { + using (MemoryStream ms = new MemoryStream()) + using (ZipHelperStream helperStream = new ZipHelperStream(ms)) + { + helperStream.IsStreamOwner = false; + helperStream.WriteLEInt(0); // Reserved + helperStream.WriteLEShort(1); // Tag + helperStream.WriteLEShort(24); // Length = 3 x 8. + helperStream.WriteLELong(_lastModificationTime.ToFileTimeUtc()); + helperStream.WriteLELong(_lastAccessTime.ToFileTimeUtc()); + helperStream.WriteLELong(_createTime.ToFileTimeUtc()); + return ms.ToArray(); + } + } + + /// + /// Test a valuie to see if is valid and can be represented here. + /// + /// The value to test. + /// Returns true if the value is valid and can be represented; false if not. + /// + /// NTFS filetimes are 64-bit unsigned integers, stored in Intel + /// (least significant byte first) byte order. They determine the + /// number of 1.0E-07 seconds (1/10th microseconds!) past WinNT "epoch", + /// which is "01-Jan-1601 00:00:00 UTC". 28 May 60056 is the upper limit + /// + public static bool IsValidValue(DateTime value) + { + bool result = true; + try + { + value.ToFileTimeUtc(); + } + catch + { + result = false; + } + return result; + } + + /// + /// Get/set the last modification time. + /// + public DateTime LastModificationTime + { + get { return _lastModificationTime; } + set + { + if (!IsValidValue(value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + _lastModificationTime = value; + } + } + + /// + /// Get /set the create time + /// + public DateTime CreateTime + { + get { return _createTime; } + set + { + if (!IsValidValue(value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + _createTime = value; + } + } + + /// + /// Get /set the last access time. + /// + public DateTime LastAccessTime + { + get { return _lastAccessTime; } + set + { + if (!IsValidValue(value)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + _lastAccessTime = value; + } + } + + #region Instance Fields + + private DateTime _lastAccessTime = DateTime.FromFileTimeUtc(0); + private DateTime _lastModificationTime = DateTime.FromFileTimeUtc(0); + private DateTime _createTime = DateTime.FromFileTimeUtc(0); + + #endregion Instance Fields + } + + /// + /// A factory that creates tagged data instances. + /// + internal interface ITaggedDataFactory + { + /// + /// Get data for a specific tag value. + /// + /// The tag ID to find. + /// The data to search. + /// The offset to begin extracting data from. + /// The number of bytes to extract. + /// The located value found, or null if not found. + ITaggedData Create(short tag, byte[] data, int offset, int count); + } + + /// + /// + /// A class to handle the extra data field for Zip entries + /// + /// + /// Extra data contains 0 or more values each prefixed by a header tag and length. + /// They contain zero or more bytes of actual data. + /// The data is held internally using a copy on write strategy. This is more efficient but + /// means that for extra data created by passing in data can have the values modified by the caller + /// in some circumstances. + /// + sealed public class ZipExtraData : IDisposable + { + #region Constructors + + /// + /// Initialise a default instance. + /// + public ZipExtraData() + { + Clear(); + } + + /// + /// Initialise with known extra data. + /// + /// The extra data. + public ZipExtraData(byte[] data) + { + if (data == null) + { + _data = Empty.Array(); + } + else + { + _data = data; + } + } + + #endregion Constructors + + /// + /// Get the raw extra data value + /// + /// Returns the raw byte[] extra data this instance represents. + public byte[] GetEntryData() + { + if (Length > ushort.MaxValue) + { + throw new ZipException("Data exceeds maximum length"); + } + + return (byte[])_data.Clone(); + } + + /// + /// Clear the stored data. + /// + public void Clear() + { + if ((_data == null) || (_data.Length != 0)) + { + _data = Empty.Array(); + } + } + + /// + /// Gets the current extra data length. + /// + public int Length + { + get { return _data.Length; } + } + + /// + /// Get a read-only for the associated tag. + /// + /// The tag to locate data for. + /// Returns a containing tag data or null if no tag was found. + public Stream GetStreamForTag(int tag) + { + Stream result = null; + if (Find(tag)) + { + result = new MemoryStream(_data, _index, _readValueLength, false); + } + return result; + } + + /// + /// Get the tagged data for a tag. + /// + /// The tag to search for. + /// Returns a tagged value or null if none found. + public T GetData() + where T : class, ITaggedData, new() + { + T result = new T(); + if (Find(result.TagID)) + { + result.SetData(_data, _readValueStart, _readValueLength); + return result; + } + else return null; + } + + /// + /// Get the length of the last value found by + /// + /// This is only valid if has previously returned true. + public int ValueLength + { + get { return _readValueLength; } + } + + /// + /// Get the index for the current read value. + /// + /// This is only valid if has previously returned true. + /// Initially the result will be the index of the first byte of actual data. The value is updated after calls to + /// , and . + public int CurrentReadIndex + { + get { return _index; } + } + + /// + /// Get the number of bytes remaining to be read for the current value; + /// + public int UnreadCount + { + get + { + if ((_readValueStart > _data.Length) || + (_readValueStart < 4)) + { + throw new ZipException("Find must be called before calling a Read method"); + } + + return _readValueStart + _readValueLength - _index; + } + } + + /// + /// Find an extra data value + /// + /// The identifier for the value to find. + /// Returns true if the value was found; false otherwise. + public bool Find(int headerID) + { + _readValueStart = _data.Length; + _readValueLength = 0; + _index = 0; + + int localLength = _readValueStart; + int localTag = headerID - 1; + + // Trailing bytes that cant make up an entry (as there arent enough + // bytes for a tag and length) are ignored! + while ((localTag != headerID) && (_index < _data.Length - 3)) + { + localTag = ReadShortInternal(); + localLength = ReadShortInternal(); + if (localTag != headerID) + { + _index += localLength; + } + } + + bool result = (localTag == headerID) && ((_index + localLength) <= _data.Length); + + if (result) + { + _readValueStart = _index; + _readValueLength = localLength; + } + + return result; + } + + /// + /// Add a new entry to extra data. + /// + /// The value to add. + public void AddEntry(ITaggedData taggedData) + { + if (taggedData == null) + { + throw new ArgumentNullException(nameof(taggedData)); + } + AddEntry(taggedData.TagID, taggedData.GetData()); + } + + /// + /// Add a new entry to extra data + /// + /// The ID for this entry. + /// The data to add. + /// If the ID already exists its contents are replaced. + public void AddEntry(int headerID, byte[] fieldData) + { + if ((headerID > ushort.MaxValue) || (headerID < 0)) + { + throw new ArgumentOutOfRangeException(nameof(headerID)); + } + + int addLength = (fieldData == null) ? 0 : fieldData.Length; + + if (addLength > ushort.MaxValue) + { + throw new ArgumentOutOfRangeException(nameof(fieldData), "exceeds maximum length"); + } + + // Test for new length before adjusting data. + int newLength = _data.Length + addLength + 4; + + if (Find(headerID)) + { + newLength -= (ValueLength + 4); + } + + if (newLength > ushort.MaxValue) + { + throw new ZipException("Data exceeds maximum length"); + } + + Delete(headerID); + + byte[] newData = new byte[newLength]; + _data.CopyTo(newData, 0); + int index = _data.Length; + _data = newData; + SetShort(ref index, headerID); + SetShort(ref index, addLength); + if (fieldData != null) + { + fieldData.CopyTo(newData, index); + } + } + + /// + /// Start adding a new entry. + /// + /// Add data using , , , or . + /// The new entry is completed and actually added by calling + /// + public void StartNewEntry() + { + _newEntry = new MemoryStream(); + } + + /// + /// Add entry data added since using the ID passed. + /// + /// The identifier to use for this entry. + public void AddNewEntry(int headerID) + { + byte[] newData = _newEntry.ToArray(); + _newEntry = null; + AddEntry(headerID, newData); + } + + /// + /// Add a byte of data to the pending new entry. + /// + /// The byte to add. + /// + public void AddData(byte data) + { + _newEntry.WriteByte(data); + } + + /// + /// Add data to a pending new entry. + /// + /// The data to add. + /// + public void AddData(byte[] data) + { + if (data == null) + { + throw new ArgumentNullException(nameof(data)); + } + + _newEntry.Write(data, 0, data.Length); + } + + /// + /// Add a short value in little endian order to the pending new entry. + /// + /// The data to add. + /// + public void AddLeShort(int toAdd) + { + unchecked + { + _newEntry.WriteByte((byte)toAdd); + _newEntry.WriteByte((byte)(toAdd >> 8)); + } + } + + /// + /// Add an integer value in little endian order to the pending new entry. + /// + /// The data to add. + /// + public void AddLeInt(int toAdd) + { + unchecked + { + AddLeShort((short)toAdd); + AddLeShort((short)(toAdd >> 16)); + } + } + + /// + /// Add a long value in little endian order to the pending new entry. + /// + /// The data to add. + /// + public void AddLeLong(long toAdd) + { + unchecked + { + AddLeInt((int)(toAdd & 0xffffffff)); + AddLeInt((int)(toAdd >> 32)); + } + } + + /// + /// Delete an extra data field. + /// + /// The identifier of the field to delete. + /// Returns true if the field was found and deleted. + public bool Delete(int headerID) + { + bool result = false; + + if (Find(headerID)) + { + result = true; + int trueStart = _readValueStart - 4; + + byte[] newData = new byte[_data.Length - (ValueLength + 4)]; + Array.Copy(_data, 0, newData, 0, trueStart); + + int trueEnd = trueStart + ValueLength + 4; + Array.Copy(_data, trueEnd, newData, trueStart, _data.Length - trueEnd); + _data = newData; + } + return result; + } + + #region Reading Support + + /// + /// Read a long in little endian form from the last found data value + /// + /// Returns the long value read. + public long ReadLong() + { + ReadCheck(8); + return (ReadInt() & 0xffffffff) | (((long)ReadInt()) << 32); + } + + /// + /// Read an integer in little endian form from the last found data value. + /// + /// Returns the integer read. + public int ReadInt() + { + ReadCheck(4); + + int result = _data[_index] + (_data[_index + 1] << 8) + + (_data[_index + 2] << 16) + (_data[_index + 3] << 24); + _index += 4; + return result; + } + + /// + /// Read a short value in little endian form from the last found data value. + /// + /// Returns the short value read. + public int ReadShort() + { + ReadCheck(2); + int result = _data[_index] + (_data[_index + 1] << 8); + _index += 2; + return result; + } + + /// + /// Read a byte from an extra data + /// + /// The byte value read or -1 if the end of data has been reached. + public int ReadByte() + { + int result = -1; + if ((_index < _data.Length) && (_readValueStart + _readValueLength > _index)) + { + result = _data[_index]; + _index += 1; + } + return result; + } + + /// + /// Skip data during reading. + /// + /// The number of bytes to skip. + public void Skip(int amount) + { + ReadCheck(amount); + _index += amount; + } + + private void ReadCheck(int length) + { + if ((_readValueStart > _data.Length) || + (_readValueStart < 4)) + { + throw new ZipException("Find must be called before calling a Read method"); + } + + if (_index > _readValueStart + _readValueLength - length) + { + throw new ZipException("End of extra data"); + } + + if (_index + length < 4) + { + throw new ZipException("Cannot read before start of tag"); + } + } + + /// + /// Internal form of that reads data at any location. + /// + /// Returns the short value read. + private int ReadShortInternal() + { + if (_index > _data.Length - 2) + { + throw new ZipException("End of extra data"); + } + + int result = _data[_index] + (_data[_index + 1] << 8); + _index += 2; + return result; + } + + private void SetShort(ref int index, int source) + { + _data[index] = (byte)source; + _data[index + 1] = (byte)(source >> 8); + index += 2; + } + + #endregion Reading Support + + #region IDisposable Members + + /// + /// Dispose of this instance. + /// + public void Dispose() + { + if (_newEntry != null) + { + _newEntry.Dispose(); + } + } + + #endregion IDisposable Members + + #region Instance Fields + + private int _index; + private int _readValueStart; + private int _readValueLength; + + private MemoryStream _newEntry; + private byte[] _data; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs.meta new file mode 100644 index 0000000..aae4c5b --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47275d22ef6f14bbaab81fa399b4b6d5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs new file mode 100644 index 0000000..3bd66ff --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs @@ -0,0 +1,4915 @@ +using ICSharpCode.SharpZipLib.Checksum; +using ICSharpCode.SharpZipLib.Core; +using ICSharpCode.SharpZipLib.Encryption; +using ICSharpCode.SharpZipLib.Zip.Compression; +using ICSharpCode.SharpZipLib.Zip.Compression.Streams; +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Security.Cryptography; +using System.Text; + +namespace ICSharpCode.SharpZipLib.Zip +{ + #region Keys Required Event Args + + /// + /// Arguments used with KeysRequiredEvent + /// + public class KeysRequiredEventArgs : EventArgs + { + #region Constructors + + /// + /// Initialise a new instance of + /// + /// The name of the file for which keys are required. + public KeysRequiredEventArgs(string name) + { + fileName = name; + } + + /// + /// Initialise a new instance of + /// + /// The name of the file for which keys are required. + /// The current key value. + public KeysRequiredEventArgs(string name, byte[] keyValue) + { + fileName = name; + key = keyValue; + } + + #endregion Constructors + + #region Properties + + /// + /// Gets the name of the file for which keys are required. + /// + public string FileName + { + get { return fileName; } + } + + /// + /// Gets or sets the key value + /// + public byte[] Key + { + get { return key; } + set { key = value; } + } + + #endregion Properties + + #region Instance Fields + + private readonly string fileName; + private byte[] key; + + #endregion Instance Fields + } + + #endregion Keys Required Event Args + + #region Test Definitions + + /// + /// The strategy to apply to testing. + /// + public enum TestStrategy + { + /// + /// Find the first error only. + /// + FindFirstError, + + /// + /// Find all possible errors. + /// + FindAllErrors, + } + + /// + /// The operation in progress reported by a during testing. + /// + /// TestArchive + public enum TestOperation + { + /// + /// Setting up testing. + /// + Initialising, + + /// + /// Testing an individual entries header + /// + EntryHeader, + + /// + /// Testing an individual entries data + /// + EntryData, + + /// + /// Testing an individual entry has completed. + /// + EntryComplete, + + /// + /// Running miscellaneous tests + /// + MiscellaneousTests, + + /// + /// Testing is complete + /// + Complete, + } + + /// + /// Status returned by during testing. + /// + /// TestArchive + public class TestStatus + { + #region Constructors + + /// + /// Initialise a new instance of + /// + /// The this status applies to. + public TestStatus(ZipFile file) + { + file_ = file; + } + + #endregion Constructors + + #region Properties + + /// + /// Get the current in progress. + /// + public TestOperation Operation + { + get { return operation_; } + } + + /// + /// Get the this status is applicable to. + /// + public ZipFile File + { + get { return file_; } + } + + /// + /// Get the current/last entry tested. + /// + public ZipEntry Entry + { + get { return entry_; } + } + + /// + /// Get the number of errors detected so far. + /// + public int ErrorCount + { + get { return errorCount_; } + } + + /// + /// Get the number of bytes tested so far for the current entry. + /// + public long BytesTested + { + get { return bytesTested_; } + } + + /// + /// Get a value indicating whether the last entry test was valid. + /// + public bool EntryValid + { + get { return entryValid_; } + } + + #endregion Properties + + #region Internal API + + internal void AddError() + { + errorCount_++; + entryValid_ = false; + } + + internal void SetOperation(TestOperation operation) + { + operation_ = operation; + } + + internal void SetEntry(ZipEntry entry) + { + entry_ = entry; + entryValid_ = true; + bytesTested_ = 0; + } + + internal void SetBytesTested(long value) + { + bytesTested_ = value; + } + + #endregion Internal API + + #region Instance Fields + + private readonly ZipFile file_; + private ZipEntry entry_; + private bool entryValid_; + private int errorCount_; + private long bytesTested_; + private TestOperation operation_; + + #endregion Instance Fields + } + + /// + /// Delegate invoked during testing if supplied indicating current progress and status. + /// + /// If the message is non-null an error has occured. If the message is null + /// the operation as found in status has started. + public delegate void ZipTestResultHandler(TestStatus status, string message); + + #endregion Test Definitions + + #region Update Definitions + + /// + /// The possible ways of applying updates to an archive. + /// + public enum FileUpdateMode + { + /// + /// Perform all updates on temporary files ensuring that the original file is saved. + /// + Safe, + + /// + /// Update the archive directly, which is faster but less safe. + /// + Direct, + } + + #endregion Update Definitions + + #region ZipFile Class + + /// + /// This class represents a Zip archive. You can ask for the contained + /// entries, or get an input stream for a file entry. The entry is + /// automatically decompressed. + /// + /// You can also update the archive adding or deleting entries. + /// + /// This class is thread safe for input: You can open input streams for arbitrary + /// entries in different threads. + ///
+ ///
Author of the original java version : Jochen Hoenicke + ///
+ /// + /// + /// using System; + /// using System.Text; + /// using System.Collections; + /// using System.IO; + /// + /// using ICSharpCode.SharpZipLib.Zip; + /// + /// class MainClass + /// { + /// static public void Main(string[] args) + /// { + /// using (ZipFile zFile = new ZipFile(args[0])) { + /// Console.WriteLine("Listing of : " + zFile.Name); + /// Console.WriteLine(""); + /// Console.WriteLine("Raw Size Size Date Time Name"); + /// Console.WriteLine("-------- -------- -------- ------ ---------"); + /// foreach (ZipEntry e in zFile) { + /// if ( e.IsFile ) { + /// DateTime d = e.DateTime; + /// Console.WriteLine("{0, -10}{1, -10}{2} {3} {4}", e.Size, e.CompressedSize, + /// d.ToString("dd-MM-yy"), d.ToString("HH:mm"), + /// e.Name); + /// } + /// } + /// } + /// } + /// } + /// + /// + public class ZipFile : IEnumerable, IDisposable + { + #region KeyHandling + + /// + /// Delegate for handling keys/password setting during compression/decompression. + /// + public delegate void KeysRequiredEventHandler( + object sender, + KeysRequiredEventArgs e + ); + + /// + /// Event handler for handling encryption keys. + /// + public KeysRequiredEventHandler KeysRequired; + + /// + /// Handles getting of encryption keys when required. + /// + /// The file for which encryption keys are required. + private void OnKeysRequired(string fileName) + { + if (KeysRequired != null) + { + var krea = new KeysRequiredEventArgs(fileName, key); + KeysRequired(this, krea); + key = krea.Key; + } + } + + /// + /// Get/set the encryption key value. + /// + private byte[] Key + { + get { return key; } + set { key = value; } + } + + /// + /// Password to be used for encrypting/decrypting files. + /// + /// Set to null if no password is required. + public string Password + { + set + { + if (string.IsNullOrEmpty(value)) + { + key = null; + } + else + { + key = PkzipClassic.GenerateKeys(ZipStrings.ConvertToArray(value)); + } + + rawPassword_ = value; + } + } + + /// + /// Get a value indicating whether encryption keys are currently available. + /// + private bool HaveKeys + { + get { return key != null; } + } + + #endregion KeyHandling + + #region Constructors + + /// + /// Opens a Zip file with the given name for reading. + /// + /// The name of the file to open. + /// The argument supplied is null. + /// + /// An i/o error occurs + /// + /// + /// The file doesn't contain a valid zip archive. + /// + public ZipFile(string name) + { + name_ = name ?? throw new ArgumentNullException(nameof(name)); + + baseStream_ = File.Open(name, FileMode.Open, FileAccess.Read, FileShare.Read); + isStreamOwner = true; + + try + { + ReadEntries(); + } + catch + { + DisposeInternal(true); + throw; + } + } + + /// + /// Opens a Zip file reading the given . + /// + /// The to read archive data from. + /// The supplied argument is null. + /// + /// An i/o error occurs. + /// + /// + /// The file doesn't contain a valid zip archive. + /// + public ZipFile(FileStream file) : + this(file, false) + { + + } + + /// + /// Opens a Zip file reading the given . + /// + /// The to read archive data from. + /// true to leave the file open when the ZipFile is disposed, false to dispose of it + /// The supplied argument is null. + /// + /// An i/o error occurs. + /// + /// + /// The file doesn't contain a valid zip archive. + /// + public ZipFile(FileStream file, bool leaveOpen) + { + if (file == null) + { + throw new ArgumentNullException(nameof(file)); + } + + if (!file.CanSeek) + { + throw new ArgumentException("Stream is not seekable", nameof(file)); + } + + baseStream_ = file; + name_ = file.Name; + isStreamOwner = !leaveOpen; + + try + { + ReadEntries(); + } + catch + { + DisposeInternal(true); + throw; + } + } + + /// + /// Opens a Zip file reading the given . + /// + /// The to read archive data from. + /// + /// An i/o error occurs + /// + /// + /// The stream doesn't contain a valid zip archive.
+ ///
+ /// + /// The stream doesnt support seeking. + /// + /// + /// The stream argument is null. + /// + public ZipFile(Stream stream) : + this(stream, false) + { + + } + + /// + /// Opens a Zip file reading the given . + /// + /// The to read archive data from. + /// true to leave the stream open when the ZipFile is disposed, false to dispose of it + /// + /// An i/o error occurs + /// + /// + /// The stream doesn't contain a valid zip archive.
+ ///
+ /// + /// The stream doesnt support seeking. + /// + /// + /// The stream argument is null. + /// + public ZipFile(Stream stream, bool leaveOpen) + { + if (stream == null) + { + throw new ArgumentNullException(nameof(stream)); + } + + if (!stream.CanSeek) + { + throw new ArgumentException("Stream is not seekable", nameof(stream)); + } + + baseStream_ = stream; + isStreamOwner = !leaveOpen; + + if (baseStream_.Length > 0) + { + try + { + ReadEntries(); + } + catch + { + DisposeInternal(true); + throw; + } + } + else + { + entries_ = Empty.Array(); + isNewArchive_ = true; + } + } + + /// + /// Initialises a default instance with no entries and no file storage. + /// + internal ZipFile() + { + entries_ = Empty.Array(); + isNewArchive_ = true; + } + + #endregion Constructors + + #region Destructors and Closing + + /// + /// Finalize this instance. + /// + ~ZipFile() + { + Dispose(false); + } + + /// + /// Closes the ZipFile. If the stream is owned then this also closes the underlying input stream. + /// Once closed, no further instance methods should be called. + /// + /// + /// An i/o error occurs. + /// + public void Close() + { + DisposeInternal(true); + GC.SuppressFinalize(this); + } + + #endregion Destructors and Closing + + #region Creators + + /// + /// Create a new whose data will be stored in a file. + /// + /// The name of the archive to create. + /// Returns the newly created + /// is null + public static ZipFile Create(string fileName) + { + if (fileName == null) + { + throw new ArgumentNullException(nameof(fileName)); + } + + FileStream fs = File.Create(fileName); + + return new ZipFile + { + name_ = fileName, + baseStream_ = fs, + isStreamOwner = true + }; + } + + /// + /// Create a new whose data will be stored on a stream. + /// + /// The stream providing data storage. + /// Returns the newly created + /// is null + /// doesnt support writing. + public static ZipFile Create(Stream outStream) + { + if (outStream == null) + { + throw new ArgumentNullException(nameof(outStream)); + } + + if (!outStream.CanWrite) + { + throw new ArgumentException("Stream is not writeable", nameof(outStream)); + } + + if (!outStream.CanSeek) + { + throw new ArgumentException("Stream is not seekable", nameof(outStream)); + } + + var result = new ZipFile + { + baseStream_ = outStream + }; + return result; + } + + #endregion Creators + + #region Properties + + /// + /// Get/set a flag indicating if the underlying stream is owned by the ZipFile instance. + /// If the flag is true then the stream will be closed when Close is called. + /// + /// + /// The default value is true in all cases. + /// + public bool IsStreamOwner + { + get { return isStreamOwner; } + set { isStreamOwner = value; } + } + + /// + /// Get a value indicating whether + /// this archive is embedded in another file or not. + /// + public bool IsEmbeddedArchive + { + // Not strictly correct in all circumstances currently + get { return offsetOfFirstEntry > 0; } + } + + /// + /// Get a value indicating that this archive is a new one. + /// + public bool IsNewArchive + { + get { return isNewArchive_; } + } + + /// + /// Gets the comment for the zip file. + /// + public string ZipFileComment + { + get { return comment_; } + } + + /// + /// Gets the name of this zip file. + /// + public string Name + { + get { return name_; } + } + + /// + /// Gets the number of entries in this zip file. + /// + /// + /// The Zip file has been closed. + /// + [Obsolete("Use the Count property instead")] + public int Size + { + get + { + return entries_.Length; + } + } + + /// + /// Get the number of entries contained in this . + /// + public long Count + { + get + { + return entries_.Length; + } + } + + /// + /// Indexer property for ZipEntries + /// + [System.Runtime.CompilerServices.IndexerNameAttribute("EntryByIndex")] + public ZipEntry this[int index] + { + get + { + return (ZipEntry)entries_[index].Clone(); + } + } + + #endregion Properties + + #region Input Handling + + /// + /// Gets an enumerator for the Zip entries in this Zip file. + /// + /// Returns an for this archive. + /// + /// The Zip file has been closed. + /// + public IEnumerator GetEnumerator() + { + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + return new ZipEntryEnumerator(entries_); + } + + /// + /// Return the index of the entry with a matching name + /// + /// Entry name to find + /// If true the comparison is case insensitive + /// The index position of the matching entry or -1 if not found + /// + /// The Zip file has been closed. + /// + public int FindEntry(string name, bool ignoreCase) + { + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + // TODO: This will be slow as the next ice age for huge archives! + for (int i = 0; i < entries_.Length; i++) + { + if (string.Compare(name, entries_[i].Name, ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal) == 0) + { + return i; + } + } + return -1; + } + + /// + /// Searches for a zip entry in this archive with the given name. + /// String comparisons are case insensitive + /// + /// + /// The name to find. May contain directory components separated by slashes ('/'). + /// + /// + /// A clone of the zip entry, or null if no entry with that name exists. + /// + /// + /// The Zip file has been closed. + /// + public ZipEntry GetEntry(string name) + { + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + int index = FindEntry(name, true); + return (index >= 0) ? (ZipEntry)entries_[index].Clone() : null; + } + + /// + /// Gets an input stream for reading the given zip entry data in an uncompressed form. + /// Normally the should be an entry returned by GetEntry(). + /// + /// The to obtain a data for + /// An input containing data for this + /// + /// The ZipFile has already been closed + /// + /// + /// The compression method for the entry is unknown + /// + /// + /// The entry is not found in the ZipFile + /// + public Stream GetInputStream(ZipEntry entry) + { + if (entry == null) + { + throw new ArgumentNullException(nameof(entry)); + } + + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + long index = entry.ZipFileIndex; + if ((index < 0) || (index >= entries_.Length) || (entries_[index].Name != entry.Name)) + { + index = FindEntry(entry.Name, true); + if (index < 0) + { + throw new ZipException("Entry cannot be found"); + } + } + return GetInputStream(index); + } + + /// + /// Creates an input stream reading a zip entry + /// + /// The index of the entry to obtain an input stream for. + /// + /// An input containing data for this + /// + /// + /// The ZipFile has already been closed + /// + /// + /// The compression method for the entry is unknown + /// + /// + /// The entry is not found in the ZipFile + /// + public Stream GetInputStream(long entryIndex) + { + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + long start = LocateEntry(entries_[entryIndex]); + CompressionMethod method = entries_[entryIndex].CompressionMethod; + Stream result = new PartialInputStream(this, start, entries_[entryIndex].CompressedSize); + + if (entries_[entryIndex].IsCrypted == true) + { + result = CreateAndInitDecryptionStream(result, entries_[entryIndex]); + if (result == null) + { + throw new ZipException("Unable to decrypt this entry"); + } + } + + switch (method) + { + case CompressionMethod.Stored: + // read as is. + break; + + case CompressionMethod.Deflated: + // No need to worry about ownership and closing as underlying stream close does nothing. + result = new InflaterInputStream(result, new Inflater(true)); + break; + + case CompressionMethod.BZip2: + result = new BZip2.BZip2InputStream(result); + break; + + default: + throw new ZipException("Unsupported compression method " + method); + } + + return result; + } + + #endregion Input Handling + + #region Archive Testing + + /// + /// Test an archive for integrity/validity + /// + /// Perform low level data Crc check + /// true if all tests pass, false otherwise + /// Testing will terminate on the first error found. + public bool TestArchive(bool testData) + { + return TestArchive(testData, TestStrategy.FindFirstError, null); + } + + /// + /// Test an archive for integrity/validity + /// + /// Perform low level data Crc check + /// The to apply. + /// The handler to call during testing. + /// true if all tests pass, false otherwise + /// The object has already been closed. + public bool TestArchive(bool testData, TestStrategy strategy, ZipTestResultHandler resultHandler) + { + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + var status = new TestStatus(this); + + resultHandler?.Invoke(status, null); + + HeaderTest test = testData ? (HeaderTest.Header | HeaderTest.Extract) : HeaderTest.Header; + + bool testing = true; + + try + { + int entryIndex = 0; + + while (testing && (entryIndex < Count)) + { + if (resultHandler != null) + { + status.SetEntry(this[entryIndex]); + status.SetOperation(TestOperation.EntryHeader); + resultHandler(status, null); + } + + try + { + TestLocalHeader(this[entryIndex], test); + } + catch (ZipException ex) + { + status.AddError(); + + resultHandler?.Invoke(status, $"Exception during test - '{ex.Message}'"); + + testing &= strategy != TestStrategy.FindFirstError; + } + + if (testing && testData && this[entryIndex].IsFile) + { + // Don't check CRC for AES encrypted archives + var checkCRC = this[entryIndex].AESKeySize == 0; + + if (resultHandler != null) + { + status.SetOperation(TestOperation.EntryData); + resultHandler(status, null); + } + + var crc = new Crc32(); + + using (Stream entryStream = this.GetInputStream(this[entryIndex])) + { + byte[] buffer = new byte[4096]; + long totalBytes = 0; + int bytesRead; + while ((bytesRead = entryStream.Read(buffer, 0, buffer.Length)) > 0) + { + if (checkCRC) + { + crc.Update(new ArraySegment(buffer, 0, bytesRead)); + } + + if (resultHandler != null) + { + totalBytes += bytesRead; + status.SetBytesTested(totalBytes); + resultHandler(status, null); + } + } + } + + if (checkCRC && this[entryIndex].Crc != crc.Value) + { + status.AddError(); + + resultHandler?.Invoke(status, "CRC mismatch"); + + testing &= strategy != TestStrategy.FindFirstError; + } + + if ((this[entryIndex].Flags & (int)GeneralBitFlags.Descriptor) != 0) + { + var helper = new ZipHelperStream(baseStream_); + var data = new DescriptorData(); + helper.ReadDataDescriptor(this[entryIndex].LocalHeaderRequiresZip64, data); + + if (checkCRC && this[entryIndex].Crc != data.Crc) + { + status.AddError(); + resultHandler?.Invoke(status, "Descriptor CRC mismatch"); + } + + if (this[entryIndex].CompressedSize != data.CompressedSize) + { + status.AddError(); + resultHandler?.Invoke(status, "Descriptor compressed size mismatch"); + } + + if (this[entryIndex].Size != data.Size) + { + status.AddError(); + resultHandler?.Invoke(status, "Descriptor size mismatch"); + } + } + } + + if (resultHandler != null) + { + status.SetOperation(TestOperation.EntryComplete); + resultHandler(status, null); + } + + entryIndex += 1; + } + + if (resultHandler != null) + { + status.SetOperation(TestOperation.MiscellaneousTests); + resultHandler(status, null); + } + + // TODO: the 'Corrina Johns' test where local headers are missing from + // the central directory. They are therefore invisible to many archivers. + } + catch (Exception ex) + { + status.AddError(); + + resultHandler?.Invoke(status, $"Exception during test - '{ex.Message}'"); + } + + if (resultHandler != null) + { + status.SetOperation(TestOperation.Complete); + status.SetEntry(null); + resultHandler(status, null); + } + + return (status.ErrorCount == 0); + } + + [Flags] + private enum HeaderTest + { + Extract = 0x01, // Check that this header represents an entry whose data can be extracted + Header = 0x02, // Check that this header contents are valid + } + + /// + /// Test a local header against that provided from the central directory + /// + /// + /// The entry to test against + /// + /// The type of tests to carry out. + /// The offset of the entries data in the file + private long TestLocalHeader(ZipEntry entry, HeaderTest tests) + { + lock (baseStream_) + { + bool testHeader = (tests & HeaderTest.Header) != 0; + bool testData = (tests & HeaderTest.Extract) != 0; + + var entryAbsOffset = offsetOfFirstEntry + entry.Offset; + + baseStream_.Seek(entryAbsOffset, SeekOrigin.Begin); + var signature = (int)ReadLEUint(); + + if (signature != ZipConstants.LocalHeaderSignature) + { + throw new ZipException(string.Format("Wrong local header signature at 0x{0:x}, expected 0x{1:x8}, actual 0x{2:x8}", + entryAbsOffset, ZipConstants.LocalHeaderSignature, signature)); + } + + var extractVersion = (short)(ReadLEUshort() & 0x00ff); + var localFlags = (short)ReadLEUshort(); + var compressionMethod = (short)ReadLEUshort(); + var fileTime = (short)ReadLEUshort(); + var fileDate = (short)ReadLEUshort(); + uint crcValue = ReadLEUint(); + long compressedSize = ReadLEUint(); + long size = ReadLEUint(); + int storedNameLength = ReadLEUshort(); + int extraDataLength = ReadLEUshort(); + + byte[] nameData = new byte[storedNameLength]; + StreamUtils.ReadFully(baseStream_, nameData); + + byte[] extraData = new byte[extraDataLength]; + StreamUtils.ReadFully(baseStream_, extraData); + + var localExtraData = new ZipExtraData(extraData); + + // Extra data / zip64 checks + if (localExtraData.Find(1)) + { + // 2010-03-04 Forum 10512: removed checks for version >= ZipConstants.VersionZip64 + // and size or compressedSize = MaxValue, due to rogue creators. + + size = localExtraData.ReadLong(); + compressedSize = localExtraData.ReadLong(); + + if ((localFlags & (int)GeneralBitFlags.Descriptor) != 0) + { + // These may be valid if patched later + if ((size != -1) && (size != entry.Size)) + { + throw new ZipException("Size invalid for descriptor"); + } + + if ((compressedSize != -1) && (compressedSize != entry.CompressedSize)) + { + throw new ZipException("Compressed size invalid for descriptor"); + } + } + } + else + { + // No zip64 extra data but entry requires it. + if ((extractVersion >= ZipConstants.VersionZip64) && + (((uint)size == uint.MaxValue) || ((uint)compressedSize == uint.MaxValue))) + { + throw new ZipException("Required Zip64 extended information missing"); + } + } + + if (testData) + { + if (entry.IsFile) + { + if (!entry.IsCompressionMethodSupported()) + { + throw new ZipException("Compression method not supported"); + } + + if ((extractVersion > ZipConstants.VersionMadeBy) + || ((extractVersion > 20) && (extractVersion < ZipConstants.VersionZip64))) + { + throw new ZipException(string.Format("Version required to extract this entry not supported ({0})", extractVersion)); + } + + if ((localFlags & (int)(GeneralBitFlags.Patched | GeneralBitFlags.StrongEncryption | GeneralBitFlags.EnhancedCompress | GeneralBitFlags.HeaderMasked)) != 0) + { + throw new ZipException("The library does not support the zip version required to extract this entry"); + } + } + } + + if (testHeader) + { + if ((extractVersion <= 63) && // Ignore later versions as we dont know about them.. + (extractVersion != 10) && + (extractVersion != 11) && + (extractVersion != 20) && + (extractVersion != 21) && + (extractVersion != 25) && + (extractVersion != 27) && + (extractVersion != 45) && + (extractVersion != 46) && + (extractVersion != 50) && + (extractVersion != 51) && + (extractVersion != 52) && + (extractVersion != 61) && + (extractVersion != 62) && + (extractVersion != 63) + ) + { + throw new ZipException(string.Format("Version required to extract this entry is invalid ({0})", extractVersion)); + } + + // Local entry flags dont have reserved bit set on. + if ((localFlags & (int)(GeneralBitFlags.ReservedPKware4 | GeneralBitFlags.ReservedPkware14 | GeneralBitFlags.ReservedPkware15)) != 0) + { + throw new ZipException("Reserved bit flags cannot be set."); + } + + // Encryption requires extract version >= 20 + if (((localFlags & (int)GeneralBitFlags.Encrypted) != 0) && (extractVersion < 20)) + { + throw new ZipException(string.Format("Version required to extract this entry is too low for encryption ({0})", extractVersion)); + } + + // Strong encryption requires encryption flag to be set and extract version >= 50. + if ((localFlags & (int)GeneralBitFlags.StrongEncryption) != 0) + { + if ((localFlags & (int)GeneralBitFlags.Encrypted) == 0) + { + throw new ZipException("Strong encryption flag set but encryption flag is not set"); + } + + if (extractVersion < 50) + { + throw new ZipException(string.Format("Version required to extract this entry is too low for encryption ({0})", extractVersion)); + } + } + + // Patched entries require extract version >= 27 + if (((localFlags & (int)GeneralBitFlags.Patched) != 0) && (extractVersion < 27)) + { + throw new ZipException(string.Format("Patched data requires higher version than ({0})", extractVersion)); + } + + // Central header flags match local entry flags. + if (localFlags != entry.Flags) + { + throw new ZipException("Central header/local header flags mismatch"); + } + + // Central header compression method matches local entry + if (entry.CompressionMethodForHeader != (CompressionMethod)compressionMethod) + { + throw new ZipException("Central header/local header compression method mismatch"); + } + + if (entry.Version != extractVersion) + { + throw new ZipException("Extract version mismatch"); + } + + // Strong encryption and extract version match + if ((localFlags & (int)GeneralBitFlags.StrongEncryption) != 0) + { + if (extractVersion < 62) + { + throw new ZipException("Strong encryption flag set but version not high enough"); + } + } + + if ((localFlags & (int)GeneralBitFlags.HeaderMasked) != 0) + { + if ((fileTime != 0) || (fileDate != 0)) + { + throw new ZipException("Header masked set but date/time values non-zero"); + } + } + + if ((localFlags & (int)GeneralBitFlags.Descriptor) == 0) + { + if (crcValue != (uint)entry.Crc) + { + throw new ZipException("Central header/local header crc mismatch"); + } + } + + // Crc valid for empty entry. + // This will also apply to streamed entries where size isnt known and the header cant be patched + if ((size == 0) && (compressedSize == 0)) + { + if (crcValue != 0) + { + throw new ZipException("Invalid CRC for empty entry"); + } + } + + // TODO: make test more correct... can't compare lengths as was done originally as this can fail for MBCS strings + // Assuming a code page at this point is not valid? Best is to store the name length in the ZipEntry probably + if (entry.Name.Length > storedNameLength) + { + throw new ZipException("File name length mismatch"); + } + + // Name data has already been read convert it and compare. + string localName = ZipStrings.ConvertToStringExt(localFlags, nameData); + + // Central directory and local entry name match + if (localName != entry.Name) + { + throw new ZipException("Central header and local header file name mismatch"); + } + + // Directories have zero actual size but can have compressed size + if (entry.IsDirectory) + { + if (size > 0) + { + throw new ZipException("Directory cannot have size"); + } + + // There may be other cases where the compressed size can be greater than this? + // If so until details are known we will be strict. + if (entry.IsCrypted) + { + if (compressedSize > entry.EncryptionOverheadSize + 2) + { + throw new ZipException("Directory compressed size invalid"); + } + } + else if (compressedSize > 2) + { + // When not compressed the directory size can validly be 2 bytes + // if the true size wasn't known when data was originally being written. + // NOTE: Versions of the library 0.85.4 and earlier always added 2 bytes + throw new ZipException("Directory compressed size invalid"); + } + } + + if (!ZipNameTransform.IsValidName(localName, true)) + { + throw new ZipException("Name is invalid"); + } + } + + // Tests that apply to both data and header. + + // Size can be verified only if it is known in the local header. + // it will always be known in the central header. + if (((localFlags & (int)GeneralBitFlags.Descriptor) == 0) || + ((size > 0 || compressedSize > 0) && entry.Size > 0)) + { + if ((size != 0) + && (size != entry.Size)) + { + throw new ZipException( + string.Format("Size mismatch between central header({0}) and local header({1})", + entry.Size, size)); + } + + if ((compressedSize != 0) + && (compressedSize != entry.CompressedSize && compressedSize != 0xFFFFFFFF && compressedSize != -1)) + { + throw new ZipException( + string.Format("Compressed size mismatch between central header({0}) and local header({1})", + entry.CompressedSize, compressedSize)); + } + } + + int extraLength = storedNameLength + extraDataLength; + return offsetOfFirstEntry + entry.Offset + ZipConstants.LocalHeaderBaseSize + extraLength; + } + } + + #endregion Archive Testing + + #region Updating + + private const int DefaultBufferSize = 4096; + + /// + /// The kind of update to apply. + /// + private enum UpdateCommand + { + Copy, // Copy original file contents. + Modify, // Change encryption, compression, attributes, name, time etc, of an existing file. + Add, // Add a new file to the archive. + } + + #region Properties + + /// + /// Get / set the to apply to names when updating. + /// + public INameTransform NameTransform + { + get + { + return updateEntryFactory_.NameTransform; + } + + set + { + updateEntryFactory_.NameTransform = value; + } + } + + /// + /// Get/set the used to generate values + /// during updates. + /// + public IEntryFactory EntryFactory + { + get + { + return updateEntryFactory_; + } + + set + { + if (value == null) + { + updateEntryFactory_ = new ZipEntryFactory(); + } + else + { + updateEntryFactory_ = value; + } + } + } + + /// + /// Get /set the buffer size to be used when updating this zip file. + /// + public int BufferSize + { + get { return bufferSize_; } + set + { + if (value < 1024) + { + throw new ArgumentOutOfRangeException(nameof(value), "cannot be below 1024"); + } + + if (bufferSize_ != value) + { + bufferSize_ = value; + copyBuffer_ = null; + } + } + } + + /// + /// Get a value indicating an update has been started. + /// + public bool IsUpdating + { + get { return updates_ != null; } + } + + /// + /// Get / set a value indicating how Zip64 Extension usage is determined when adding entries. + /// + public UseZip64 UseZip64 + { + get { return useZip64_; } + set { useZip64_ = value; } + } + + #endregion Properties + + #region Immediate updating + + // TBD: Direct form of updating + // + // public void Update(IEntryMatcher deleteMatcher) + // { + // } + // + // public void Update(IScanner addScanner) + // { + // } + + #endregion Immediate updating + + #region Deferred Updating + + /// + /// Begin updating this archive. + /// + /// The archive storage for use during the update. + /// The data source to utilise during updating. + /// ZipFile has been closed. + /// One of the arguments provided is null + /// ZipFile has been closed. + public void BeginUpdate(IArchiveStorage archiveStorage, IDynamicDataSource dataSource) + { + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + if (IsEmbeddedArchive) + { + throw new ZipException("Cannot update embedded/SFX archives"); + } + + archiveStorage_ = archiveStorage ?? throw new ArgumentNullException(nameof(archiveStorage)); + updateDataSource_ = dataSource ?? throw new ArgumentNullException(nameof(dataSource)); + + // NOTE: the baseStream_ may not currently support writing or seeking. + + updateIndex_ = new Dictionary(); + + updates_ = new List(entries_.Length); + foreach (ZipEntry entry in entries_) + { + int index = updates_.Count; + updates_.Add(new ZipUpdate(entry)); + updateIndex_.Add(entry.Name, index); + } + + // We must sort by offset before using offset's calculated sizes + updates_.Sort(new UpdateComparer()); + + int idx = 0; + foreach (ZipUpdate update in updates_) + { + //If last entry, there is no next entry offset to use + if (idx == updates_.Count - 1) + break; + + update.OffsetBasedSize = ((ZipUpdate)updates_[idx + 1]).Entry.Offset - update.Entry.Offset; + idx++; + } + updateCount_ = updates_.Count; + + contentsEdited_ = false; + commentEdited_ = false; + newComment_ = null; + } + + /// + /// Begin updating to this archive. + /// + /// The storage to use during the update. + public void BeginUpdate(IArchiveStorage archiveStorage) + { + BeginUpdate(archiveStorage, new DynamicDiskDataSource()); + } + + /// + /// Begin updating this archive. + /// + /// + /// + /// + public void BeginUpdate() + { + if (Name == null) + { + BeginUpdate(new MemoryArchiveStorage(), new DynamicDiskDataSource()); + } + else + { + BeginUpdate(new DiskArchiveStorage(this), new DynamicDiskDataSource()); + } + } + + /// + /// Commit current updates, updating this archive. + /// + /// + /// + /// ZipFile has been closed. + public void CommitUpdate() + { + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + CheckUpdating(); + + try + { + updateIndex_.Clear(); + updateIndex_ = null; + + if (contentsEdited_) + { + RunUpdates(); + } + else if (commentEdited_) + { + UpdateCommentOnly(); + } + else + { + // Create an empty archive if none existed originally. + if (entries_.Length == 0) + { + byte[] theComment = (newComment_ != null) ? newComment_.RawComment : ZipStrings.ConvertToArray(comment_); + using (ZipHelperStream zhs = new ZipHelperStream(baseStream_)) + { + zhs.WriteEndOfCentralDirectory(0, 0, 0, theComment); + } + } + } + } + finally + { + PostUpdateCleanup(); + } + } + + /// + /// Abort updating leaving the archive unchanged. + /// + /// + /// + public void AbortUpdate() + { + PostUpdateCleanup(); + } + + /// + /// Set the file comment to be recorded when the current update is commited. + /// + /// The comment to record. + /// ZipFile has been closed. + public void SetComment(string comment) + { + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + CheckUpdating(); + + newComment_ = new ZipString(comment); + + if (newComment_.RawLength > 0xffff) + { + newComment_ = null; + throw new ZipException("Comment length exceeds maximum - 65535"); + } + + // We dont take account of the original and current comment appearing to be the same + // as encoding may be different. + commentEdited_ = true; + } + + #endregion Deferred Updating + + #region Adding Entries + + private void AddUpdate(ZipUpdate update) + { + contentsEdited_ = true; + + int index = FindExistingUpdate(update.Entry.Name, isEntryName: true); + + if (index >= 0) + { + if (updates_[index] == null) + { + updateCount_ += 1; + } + + // Direct replacement is faster than delete and add. + updates_[index] = update; + } + else + { + index = updates_.Count; + updates_.Add(update); + updateCount_ += 1; + updateIndex_.Add(update.Entry.Name, index); + } + } + + /// + /// Add a new entry to the archive. + /// + /// The name of the file to add. + /// The compression method to use. + /// Ensure Unicode text is used for name and comment for this entry. + /// Argument supplied is null. + /// ZipFile has been closed. + /// Compression method is not supported for creating entries. + public void Add(string fileName, CompressionMethod compressionMethod, bool useUnicodeText) + { + if (fileName == null) + { + throw new ArgumentNullException(nameof(fileName)); + } + + if (isDisposed_) + { + throw new ObjectDisposedException("ZipFile"); + } + + CheckSupportedCompressionMethod(compressionMethod); + CheckUpdating(); + contentsEdited_ = true; + + ZipEntry entry = EntryFactory.MakeFileEntry(fileName); + entry.IsUnicodeText = useUnicodeText; + entry.CompressionMethod = compressionMethod; + + AddUpdate(new ZipUpdate(fileName, entry)); + } + + /// + /// Add a new entry to the archive. + /// + /// The name of the file to add. + /// The compression method to use. + /// ZipFile has been closed. + /// Compression method is not supported for creating entries. + public void Add(string fileName, CompressionMethod compressionMethod) + { + if (fileName == null) + { + throw new ArgumentNullException(nameof(fileName)); + } + + CheckSupportedCompressionMethod(compressionMethod); + CheckUpdating(); + contentsEdited_ = true; + + ZipEntry entry = EntryFactory.MakeFileEntry(fileName); + entry.CompressionMethod = compressionMethod; + AddUpdate(new ZipUpdate(fileName, entry)); + } + + /// + /// Add a file to the archive. + /// + /// The name of the file to add. + /// Argument supplied is null. + public void Add(string fileName) + { + if (fileName == null) + { + throw new ArgumentNullException(nameof(fileName)); + } + + CheckUpdating(); + AddUpdate(new ZipUpdate(fileName, EntryFactory.MakeFileEntry(fileName))); + } + + /// + /// Add a file to the archive. + /// + /// The name of the file to add. + /// The name to use for the on the Zip file created. + /// Argument supplied is null. + public void Add(string fileName, string entryName) + { + if (fileName == null) + { + throw new ArgumentNullException(nameof(fileName)); + } + + if (entryName == null) + { + throw new ArgumentNullException(nameof(entryName)); + } + + CheckUpdating(); + AddUpdate(new ZipUpdate(fileName, EntryFactory.MakeFileEntry(fileName, entryName, true))); + } + + /// + /// Add a file entry with data. + /// + /// The source of the data for this entry. + /// The name to give to the entry. + public void Add(IStaticDataSource dataSource, string entryName) + { + if (dataSource == null) + { + throw new ArgumentNullException(nameof(dataSource)); + } + + if (entryName == null) + { + throw new ArgumentNullException(nameof(entryName)); + } + + CheckUpdating(); + AddUpdate(new ZipUpdate(dataSource, EntryFactory.MakeFileEntry(entryName, false))); + } + + /// + /// Add a file entry with data. + /// + /// The source of the data for this entry. + /// The name to give to the entry. + /// The compression method to use. + /// Compression method is not supported for creating entries. + public void Add(IStaticDataSource dataSource, string entryName, CompressionMethod compressionMethod) + { + if (dataSource == null) + { + throw new ArgumentNullException(nameof(dataSource)); + } + + if (entryName == null) + { + throw new ArgumentNullException(nameof(entryName)); + } + + CheckSupportedCompressionMethod(compressionMethod); + CheckUpdating(); + + ZipEntry entry = EntryFactory.MakeFileEntry(entryName, false); + entry.CompressionMethod = compressionMethod; + + AddUpdate(new ZipUpdate(dataSource, entry)); + } + + /// + /// Add a file entry with data. + /// + /// The source of the data for this entry. + /// The name to give to the entry. + /// The compression method to use. + /// Ensure Unicode text is used for name and comments for this entry. + /// Compression method is not supported for creating entries. + public void Add(IStaticDataSource dataSource, string entryName, CompressionMethod compressionMethod, bool useUnicodeText) + { + if (dataSource == null) + { + throw new ArgumentNullException(nameof(dataSource)); + } + + if (entryName == null) + { + throw new ArgumentNullException(nameof(entryName)); + } + + CheckSupportedCompressionMethod(compressionMethod); + CheckUpdating(); + + ZipEntry entry = EntryFactory.MakeFileEntry(entryName, false); + entry.IsUnicodeText = useUnicodeText; + entry.CompressionMethod = compressionMethod; + + AddUpdate(new ZipUpdate(dataSource, entry)); + } + + /// + /// Add a that contains no data. + /// + /// The entry to add. + /// This can be used to add directories, volume labels, or empty file entries. + public void Add(ZipEntry entry) + { + if (entry == null) + { + throw new ArgumentNullException(nameof(entry)); + } + + CheckUpdating(); + + if ((entry.Size != 0) || (entry.CompressedSize != 0)) + { + throw new ZipException("Entry cannot have any data"); + } + + AddUpdate(new ZipUpdate(UpdateCommand.Add, entry)); + } + + /// + /// Add a with data. + /// + /// The source of the data for this entry. + /// The entry to add. + /// This can be used to add file entries with a custom data source. + /// + /// The encryption method specified in is unsupported. + /// + /// Compression method is not supported for creating entries. + public void Add(IStaticDataSource dataSource, ZipEntry entry) + { + if (entry == null) + { + throw new ArgumentNullException(nameof(entry)); + } + + if (dataSource == null) + { + throw new ArgumentNullException(nameof(dataSource)); + } + + // We don't currently support adding entries with AES encryption, so throw + // up front instead of failing or falling back to ZipCrypto later on + if (entry.AESKeySize > 0) + { + throw new NotSupportedException("Creation of AES encrypted entries is not supported"); + } + + CheckSupportedCompressionMethod(entry.CompressionMethod); + CheckUpdating(); + + AddUpdate(new ZipUpdate(dataSource, entry)); + } + + /// + /// Add a directory entry to the archive. + /// + /// The directory to add. + public void AddDirectory(string directoryName) + { + if (directoryName == null) + { + throw new ArgumentNullException(nameof(directoryName)); + } + + CheckUpdating(); + + ZipEntry dirEntry = EntryFactory.MakeDirectoryEntry(directoryName); + AddUpdate(new ZipUpdate(UpdateCommand.Add, dirEntry)); + } + + /// + /// Check if the specified compression method is supported for adding a new entry. + /// + /// The compression method for the new entry. + private static void CheckSupportedCompressionMethod(CompressionMethod compressionMethod) + { + if (compressionMethod != CompressionMethod.Deflated && compressionMethod != CompressionMethod.Stored && compressionMethod != CompressionMethod.BZip2) + { + throw new NotImplementedException("Compression method not supported"); + } + } + + #endregion Adding Entries + + #region Modifying Entries + + /* Modify not yet ready for public consumption. + Direct modification of an entry should not overwrite original data before its read. + Safe mode is trivial in this sense. + public void Modify(ZipEntry original, ZipEntry updated) + { + if ( original == null ) { + throw new ArgumentNullException("original"); + } + if ( updated == null ) { + throw new ArgumentNullException("updated"); + } + CheckUpdating(); + contentsEdited_ = true; + updates_.Add(new ZipUpdate(original, updated)); + } + */ + + #endregion Modifying Entries + + #region Deleting Entries + + /// + /// Delete an entry by name + /// + /// The filename to delete + /// True if the entry was found and deleted; false otherwise. + public bool Delete(string fileName) + { + if (fileName == null) + { + throw new ArgumentNullException(nameof(fileName)); + } + + CheckUpdating(); + + bool result = false; + int index = FindExistingUpdate(fileName); + if ((index >= 0) && (updates_[index] != null)) + { + result = true; + contentsEdited_ = true; + updates_[index] = null; + updateCount_ -= 1; + } + else + { + throw new ZipException("Cannot find entry to delete"); + } + return result; + } + + /// + /// Delete a from the archive. + /// + /// The entry to delete. + public void Delete(ZipEntry entry) + { + if (entry == null) + { + throw new ArgumentNullException(nameof(entry)); + } + + CheckUpdating(); + + int index = FindExistingUpdate(entry); + if (index >= 0) + { + contentsEdited_ = true; + updates_[index] = null; + updateCount_ -= 1; + } + else + { + throw new ZipException("Cannot find entry to delete"); + } + } + + #endregion Deleting Entries + + #region Update Support + + #region Writing Values/Headers + + private void WriteLEShort(int value) + { + baseStream_.WriteByte((byte)(value & 0xff)); + baseStream_.WriteByte((byte)((value >> 8) & 0xff)); + } + + /// + /// Write an unsigned short in little endian byte order. + /// + private void WriteLEUshort(ushort value) + { + baseStream_.WriteByte((byte)(value & 0xff)); + baseStream_.WriteByte((byte)(value >> 8)); + } + + /// + /// Write an int in little endian byte order. + /// + private void WriteLEInt(int value) + { + WriteLEShort(value & 0xffff); + WriteLEShort(value >> 16); + } + + /// + /// Write an unsigned int in little endian byte order. + /// + private void WriteLEUint(uint value) + { + WriteLEUshort((ushort)(value & 0xffff)); + WriteLEUshort((ushort)(value >> 16)); + } + + /// + /// Write a long in little endian byte order. + /// + private void WriteLeLong(long value) + { + WriteLEInt((int)(value & 0xffffffff)); + WriteLEInt((int)(value >> 32)); + } + + private void WriteLEUlong(ulong value) + { + WriteLEUint((uint)(value & 0xffffffff)); + WriteLEUint((uint)(value >> 32)); + } + + private void WriteLocalEntryHeader(ZipUpdate update) + { + ZipEntry entry = update.OutEntry; + + // TODO: Local offset will require adjusting for multi-disk zip files. + entry.Offset = baseStream_.Position; + + // TODO: Need to clear any entry flags that dont make sense or throw an exception here. + if (update.Command != UpdateCommand.Copy) + { + if (entry.CompressionMethod == CompressionMethod.Deflated) + { + if (entry.Size == 0) + { + // No need to compress - no data. + entry.CompressedSize = entry.Size; + entry.Crc = 0; + entry.CompressionMethod = CompressionMethod.Stored; + } + } + else if (entry.CompressionMethod == CompressionMethod.Stored) + { + entry.Flags &= ~(int)GeneralBitFlags.Descriptor; + } + + if (HaveKeys) + { + entry.IsCrypted = true; + if (entry.Crc < 0) + { + entry.Flags |= (int)GeneralBitFlags.Descriptor; + } + } + else + { + entry.IsCrypted = false; + } + + switch (useZip64_) + { + case UseZip64.Dynamic: + if (entry.Size < 0) + { + entry.ForceZip64(); + } + break; + + case UseZip64.On: + entry.ForceZip64(); + break; + + case UseZip64.Off: + // Do nothing. The entry itself may be using Zip64 independently. + break; + } + } + + // Write the local file header + WriteLEInt(ZipConstants.LocalHeaderSignature); + + WriteLEShort(entry.Version); + WriteLEShort(entry.Flags); + + WriteLEShort((byte)entry.CompressionMethodForHeader); + WriteLEInt((int)entry.DosTime); + + if (!entry.HasCrc) + { + // Note patch address for updating CRC later. + update.CrcPatchOffset = baseStream_.Position; + WriteLEInt((int)0); + } + else + { + WriteLEInt(unchecked((int)entry.Crc)); + } + + if (entry.LocalHeaderRequiresZip64) + { + WriteLEInt(-1); + WriteLEInt(-1); + } + else + { + if ((entry.CompressedSize < 0) || (entry.Size < 0)) + { + update.SizePatchOffset = baseStream_.Position; + } + + WriteLEInt((int)entry.CompressedSize); + WriteLEInt((int)entry.Size); + } + + byte[] name = ZipStrings.ConvertToArray(entry.Flags, entry.Name); + + if (name.Length > 0xFFFF) + { + throw new ZipException("Entry name too long."); + } + + var ed = new ZipExtraData(entry.ExtraData); + + if (entry.LocalHeaderRequiresZip64) + { + ed.StartNewEntry(); + + // Local entry header always includes size and compressed size. + // NOTE the order of these fields is reversed when compared to the normal headers! + ed.AddLeLong(entry.Size); + ed.AddLeLong(entry.CompressedSize); + ed.AddNewEntry(1); + } + else + { + ed.Delete(1); + } + + entry.ExtraData = ed.GetEntryData(); + + WriteLEShort(name.Length); + WriteLEShort(entry.ExtraData.Length); + + if (name.Length > 0) + { + baseStream_.Write(name, 0, name.Length); + } + + if (entry.LocalHeaderRequiresZip64) + { + if (!ed.Find(1)) + { + throw new ZipException("Internal error cannot find extra data"); + } + + update.SizePatchOffset = baseStream_.Position + ed.CurrentReadIndex; + } + + if (entry.ExtraData.Length > 0) + { + baseStream_.Write(entry.ExtraData, 0, entry.ExtraData.Length); + } + } + + private int WriteCentralDirectoryHeader(ZipEntry entry) + { + if (entry.CompressedSize < 0) + { + throw new ZipException("Attempt to write central directory entry with unknown csize"); + } + + if (entry.Size < 0) + { + throw new ZipException("Attempt to write central directory entry with unknown size"); + } + + if (entry.Crc < 0) + { + throw new ZipException("Attempt to write central directory entry with unknown crc"); + } + + // Write the central file header + WriteLEInt(ZipConstants.CentralHeaderSignature); + + // Version made by + WriteLEShort((entry.HostSystem << 8) | entry.VersionMadeBy); + + // Version required to extract + WriteLEShort(entry.Version); + + WriteLEShort(entry.Flags); + + unchecked + { + WriteLEShort((byte)entry.CompressionMethodForHeader); + WriteLEInt((int)entry.DosTime); + WriteLEInt((int)entry.Crc); + } + + bool useExtraCompressedSize = false; //Do we want to store the compressed size in the extra data? + if ((entry.IsZip64Forced()) || (entry.CompressedSize >= 0xffffffff)) + { + useExtraCompressedSize = true; + WriteLEInt(-1); + } + else + { + WriteLEInt((int)(entry.CompressedSize & 0xffffffff)); + } + + bool useExtraUncompressedSize = false; //Do we want to store the uncompressed size in the extra data? + if ((entry.IsZip64Forced()) || (entry.Size >= 0xffffffff)) + { + useExtraUncompressedSize = true; + WriteLEInt(-1); + } + else + { + WriteLEInt((int)entry.Size); + } + + byte[] name = ZipStrings.ConvertToArray(entry.Flags, entry.Name); + + if (name.Length > 0xFFFF) + { + throw new ZipException("Entry name is too long."); + } + + WriteLEShort(name.Length); + + // Central header extra data is different to local header version so regenerate. + var ed = new ZipExtraData(entry.ExtraData); + + if (entry.CentralHeaderRequiresZip64) + { + ed.StartNewEntry(); + + if (useExtraUncompressedSize) + { + ed.AddLeLong(entry.Size); + } + + if (useExtraCompressedSize) + { + ed.AddLeLong(entry.CompressedSize); + } + + if (entry.Offset >= 0xffffffff) + { + ed.AddLeLong(entry.Offset); + } + + // Number of disk on which this file starts isnt supported and is never written here. + ed.AddNewEntry(1); + } + else + { + // Should have already be done when local header was added. + ed.Delete(1); + } + + byte[] centralExtraData = ed.GetEntryData(); + + WriteLEShort(centralExtraData.Length); + WriteLEShort(entry.Comment != null ? entry.Comment.Length : 0); + + WriteLEShort(0); // disk number + WriteLEShort(0); // internal file attributes + + // External file attributes... + if (entry.ExternalFileAttributes != -1) + { + WriteLEInt(entry.ExternalFileAttributes); + } + else + { + if (entry.IsDirectory) + { + WriteLEUint(16); + } + else + { + WriteLEUint(0); + } + } + + if (entry.Offset >= 0xffffffff) + { + WriteLEUint(0xffffffff); + } + else + { + WriteLEUint((uint)(int)entry.Offset); + } + + if (name.Length > 0) + { + baseStream_.Write(name, 0, name.Length); + } + + if (centralExtraData.Length > 0) + { + baseStream_.Write(centralExtraData, 0, centralExtraData.Length); + } + + byte[] rawComment = (entry.Comment != null) ? Encoding.ASCII.GetBytes(entry.Comment) : Empty.Array(); + + if (rawComment.Length > 0) + { + baseStream_.Write(rawComment, 0, rawComment.Length); + } + + return ZipConstants.CentralHeaderBaseSize + name.Length + centralExtraData.Length + rawComment.Length; + } + + #endregion Writing Values/Headers + + private void PostUpdateCleanup() + { + updateDataSource_ = null; + updates_ = null; + updateIndex_ = null; + + if (archiveStorage_ != null) + { + archiveStorage_.Dispose(); + archiveStorage_ = null; + } + } + + private string GetTransformedFileName(string name) + { + INameTransform transform = NameTransform; + return (transform != null) ? + transform.TransformFile(name) : + name; + } + + private string GetTransformedDirectoryName(string name) + { + INameTransform transform = NameTransform; + return (transform != null) ? + transform.TransformDirectory(name) : + name; + } + + /// + /// Get a raw memory buffer. + /// + /// Returns a raw memory buffer. + private byte[] GetBuffer() + { + if (copyBuffer_ == null) + { + copyBuffer_ = new byte[bufferSize_]; + } + return copyBuffer_; + } + + private void CopyDescriptorBytes(ZipUpdate update, Stream dest, Stream source) + { + // Don't include the signature size to allow copy without seeking + var bytesToCopy = GetDescriptorSize(update, false); + + // Don't touch the source stream if no descriptor is present + if (bytesToCopy == 0) return; + + var buffer = GetBuffer(); + + // Copy the first 4 bytes of the descriptor + source.Read(buffer, 0, sizeof(int)); + dest.Write(buffer, 0, sizeof(int)); + + if (BitConverter.ToUInt32(buffer, 0) != ZipConstants.DataDescriptorSignature) + { + // The initial bytes wasn't the descriptor, reduce the pending byte count + bytesToCopy -= buffer.Length; + } + + while (bytesToCopy > 0) + { + int readSize = Math.Min(buffer.Length, bytesToCopy); + + int bytesRead = source.Read(buffer, 0, readSize); + if (bytesRead > 0) + { + dest.Write(buffer, 0, bytesRead); + bytesToCopy -= bytesRead; + } + else + { + throw new ZipException("Unxpected end of stream"); + } + } + } + + private void CopyBytes(ZipUpdate update, Stream destination, Stream source, + long bytesToCopy, bool updateCrc) + { + if (destination == source) + { + throw new InvalidOperationException("Destination and source are the same"); + } + + // NOTE: Compressed size is updated elsewhere. + var crc = new Crc32(); + byte[] buffer = GetBuffer(); + + long targetBytes = bytesToCopy; + long totalBytesRead = 0; + + int bytesRead; + do + { + int readSize = buffer.Length; + + if (bytesToCopy < readSize) + { + readSize = (int)bytesToCopy; + } + + bytesRead = source.Read(buffer, 0, readSize); + if (bytesRead > 0) + { + if (updateCrc) + { + crc.Update(new ArraySegment(buffer, 0, bytesRead)); + } + destination.Write(buffer, 0, bytesRead); + bytesToCopy -= bytesRead; + totalBytesRead += bytesRead; + } + } + while ((bytesRead > 0) && (bytesToCopy > 0)); + + if (totalBytesRead != targetBytes) + { + throw new ZipException(string.Format("Failed to copy bytes expected {0} read {1}", targetBytes, totalBytesRead)); + } + + if (updateCrc) + { + update.OutEntry.Crc = crc.Value; + } + } + + /// + /// Get the size of the source descriptor for a . + /// + /// The update to get the size for. + /// Whether to include the signature size + /// The descriptor size, zero if there isn't one. + private static int GetDescriptorSize(ZipUpdate update, bool includingSignature) + { + if (!((GeneralBitFlags)update.Entry.Flags).HasFlag(GeneralBitFlags.Descriptor)) + return 0; + + var descriptorWithSignature = update.Entry.LocalHeaderRequiresZip64 + ? ZipConstants.Zip64DataDescriptorSize + : ZipConstants.DataDescriptorSize; + + return includingSignature + ? descriptorWithSignature + : descriptorWithSignature - sizeof(int); + } + + private void CopyDescriptorBytesDirect(ZipUpdate update, Stream stream, ref long destinationPosition, long sourcePosition) + { + var buffer = GetBuffer(); ; + + stream.Position = sourcePosition; + stream.Read(buffer, 0, sizeof(int)); + var sourceHasSignature = BitConverter.ToUInt32(buffer, 0) == ZipConstants.DataDescriptorSignature; + + var bytesToCopy = GetDescriptorSize(update, sourceHasSignature); + + while (bytesToCopy > 0) + { + stream.Position = sourcePosition; + + var bytesRead = stream.Read(buffer, 0, bytesToCopy); + if (bytesRead > 0) + { + stream.Position = destinationPosition; + stream.Write(buffer, 0, bytesRead); + bytesToCopy -= bytesRead; + destinationPosition += bytesRead; + sourcePosition += bytesRead; + } + else + { + throw new ZipException("Unexpected end of stream"); + } + } + } + + private void CopyEntryDataDirect(ZipUpdate update, Stream stream, bool updateCrc, ref long destinationPosition, ref long sourcePosition) + { + long bytesToCopy = update.Entry.CompressedSize; + + // NOTE: Compressed size is updated elsewhere. + var crc = new Crc32(); + byte[] buffer = GetBuffer(); + + long targetBytes = bytesToCopy; + long totalBytesRead = 0; + + int bytesRead; + do + { + int readSize = buffer.Length; + + if (bytesToCopy < readSize) + { + readSize = (int)bytesToCopy; + } + + stream.Position = sourcePosition; + bytesRead = stream.Read(buffer, 0, readSize); + if (bytesRead > 0) + { + if (updateCrc) + { + crc.Update(new ArraySegment(buffer, 0, bytesRead)); + } + stream.Position = destinationPosition; + stream.Write(buffer, 0, bytesRead); + + destinationPosition += bytesRead; + sourcePosition += bytesRead; + bytesToCopy -= bytesRead; + totalBytesRead += bytesRead; + } + } + while ((bytesRead > 0) && (bytesToCopy > 0)); + + if (totalBytesRead != targetBytes) + { + throw new ZipException(string.Format("Failed to copy bytes expected {0} read {1}", targetBytes, totalBytesRead)); + } + + if (updateCrc) + { + update.OutEntry.Crc = crc.Value; + } + } + + private int FindExistingUpdate(ZipEntry entry) + { + int result = -1; + if (updateIndex_.ContainsKey(entry.Name)) + { + result = (int)updateIndex_[entry.Name]; + } + /* + // This is slow like the coming of the next ice age but takes less storage and may be useful + // for CF? + for (int index = 0; index < updates_.Count; ++index) + { + ZipUpdate zu = ( ZipUpdate )updates_[index]; + if ( (zu.Entry.ZipFileIndex == entry.ZipFileIndex) && + (string.Compare(convertedName, zu.Entry.Name, true, CultureInfo.InvariantCulture) == 0) ) { + result = index; + break; + } + } + */ + return result; + } + + private int FindExistingUpdate(string fileName, bool isEntryName = false) + { + int result = -1; + + string convertedName = !isEntryName ? GetTransformedFileName(fileName) : fileName; + + if (updateIndex_.ContainsKey(convertedName)) + { + result = (int)updateIndex_[convertedName]; + } + + /* + // This is slow like the coming of the next ice age but takes less storage and may be useful + // for CF? + for ( int index = 0; index < updates_.Count; ++index ) { + if ( string.Compare(convertedName, (( ZipUpdate )updates_[index]).Entry.Name, + true, CultureInfo.InvariantCulture) == 0 ) { + result = index; + break; + } + } + */ + + return result; + } + + /// + /// Get an output stream for the specified + /// + /// The entry to get an output stream for. + /// The output stream obtained for the entry. + private Stream GetOutputStream(ZipEntry entry) + { + Stream result = baseStream_; + + if (entry.IsCrypted == true) + { + result = CreateAndInitEncryptionStream(result, entry); + } + + switch (entry.CompressionMethod) + { + case CompressionMethod.Stored: + if (!entry.IsCrypted) + { + // If there is an encryption stream in use, that can be returned directly + // otherwise, wrap the base stream in an UncompressedStream instead of returning it directly + result = new UncompressedStream(result); + } + break; + + case CompressionMethod.Deflated: + var dos = new DeflaterOutputStream(result, new Deflater(9, true)) + { + // If there is an encryption stream in use, then we want that to be disposed when the deflator stream is disposed + // If not, then we don't want it to dispose the base stream + IsStreamOwner = entry.IsCrypted + }; + result = dos; + break; + + case CompressionMethod.BZip2: + var bzos = new BZip2.BZip2OutputStream(result) + { + // If there is an encryption stream in use, then we want that to be disposed when the BZip2OutputStream stream is disposed + // If not, then we don't want it to dispose the base stream + IsStreamOwner = entry.IsCrypted + }; + result = bzos; + break; + + default: + throw new ZipException("Unknown compression method " + entry.CompressionMethod); + } + return result; + } + + private void AddEntry(ZipFile workFile, ZipUpdate update) + { + Stream source = null; + + if (update.Entry.IsFile) + { + source = update.GetSource(); + + if (source == null) + { + source = updateDataSource_.GetSource(update.Entry, update.Filename); + } + } + + var useCrc = update.Entry.AESKeySize == 0; + + if (source != null) + { + using (source) + { + long sourceStreamLength = source.Length; + if (update.OutEntry.Size < 0) + { + update.OutEntry.Size = sourceStreamLength; + } + else + { + // Check for errant entries. + if (update.OutEntry.Size != sourceStreamLength) + { + throw new ZipException("Entry size/stream size mismatch"); + } + } + + workFile.WriteLocalEntryHeader(update); + + long dataStart = workFile.baseStream_.Position; + + using (Stream output = workFile.GetOutputStream(update.OutEntry)) + { + CopyBytes(update, output, source, sourceStreamLength, useCrc); + } + + long dataEnd = workFile.baseStream_.Position; + update.OutEntry.CompressedSize = dataEnd - dataStart; + + if ((update.OutEntry.Flags & (int)GeneralBitFlags.Descriptor) == (int)GeneralBitFlags.Descriptor) + { + var helper = new ZipHelperStream(workFile.baseStream_); + helper.WriteDataDescriptor(update.OutEntry); + } + } + } + else + { + workFile.WriteLocalEntryHeader(update); + update.OutEntry.CompressedSize = 0; + } + } + + private void ModifyEntry(ZipFile workFile, ZipUpdate update) + { + workFile.WriteLocalEntryHeader(update); + long dataStart = workFile.baseStream_.Position; + + // TODO: This is slow if the changes don't effect the data!! + if (update.Entry.IsFile && (update.Filename != null)) + { + using (Stream output = workFile.GetOutputStream(update.OutEntry)) + { + using (Stream source = this.GetInputStream(update.Entry)) + { + CopyBytes(update, output, source, source.Length, true); + } + } + } + + long dataEnd = workFile.baseStream_.Position; + update.Entry.CompressedSize = dataEnd - dataStart; + } + + private void CopyEntryDirect(ZipFile workFile, ZipUpdate update, ref long destinationPosition) + { + bool skipOver = false || update.Entry.Offset == destinationPosition; + + if (!skipOver) + { + baseStream_.Position = destinationPosition; + workFile.WriteLocalEntryHeader(update); + destinationPosition = baseStream_.Position; + } + + long sourcePosition = 0; + + const int NameLengthOffset = 26; + + // TODO: Add base for SFX friendly handling + long entryDataOffset = update.Entry.Offset + NameLengthOffset; + + baseStream_.Seek(entryDataOffset, SeekOrigin.Begin); + + // Clumsy way of handling retrieving the original name and extra data length for now. + // TODO: Stop re-reading name and data length in CopyEntryDirect. + + uint nameLength = ReadLEUshort(); + uint extraLength = ReadLEUshort(); + + sourcePosition = baseStream_.Position + nameLength + extraLength; + + if (skipOver) + { + if (update.OffsetBasedSize != -1) + { + destinationPosition += update.OffsetBasedSize; + } + else + { + // Skip entry header + destinationPosition += (sourcePosition - entryDataOffset) + NameLengthOffset; + + // Skip entry compressed data + destinationPosition += update.Entry.CompressedSize; + + // Seek to end of entry to check for descriptor signature + baseStream_.Seek(destinationPosition, SeekOrigin.Begin); + + var descriptorHasSignature = ReadLEUint() == ZipConstants.DataDescriptorSignature; + + // Skip descriptor and it's signature (if present) + destinationPosition += GetDescriptorSize(update, descriptorHasSignature); + } + } + else + { + if (update.Entry.CompressedSize > 0) + { + CopyEntryDataDirect(update, baseStream_, false, ref destinationPosition, ref sourcePosition); + } + CopyDescriptorBytesDirect(update, baseStream_, ref destinationPosition, sourcePosition); + } + } + + private void CopyEntry(ZipFile workFile, ZipUpdate update) + { + workFile.WriteLocalEntryHeader(update); + + if (update.Entry.CompressedSize > 0) + { + const int NameLengthOffset = 26; + + long entryDataOffset = update.Entry.Offset + NameLengthOffset; + + // TODO: This wont work for SFX files! + baseStream_.Seek(entryDataOffset, SeekOrigin.Begin); + + uint nameLength = ReadLEUshort(); + uint extraLength = ReadLEUshort(); + + baseStream_.Seek(nameLength + extraLength, SeekOrigin.Current); + + CopyBytes(update, workFile.baseStream_, baseStream_, update.Entry.CompressedSize, false); + } + CopyDescriptorBytes(update, workFile.baseStream_, baseStream_); + } + + private void Reopen(Stream source) + { + isNewArchive_ = false; + baseStream_ = source ?? throw new ZipException("Failed to reopen archive - no source"); + ReadEntries(); + } + + private void Reopen() + { + if (Name == null) + { + throw new InvalidOperationException("Name is not known cannot Reopen"); + } + + Reopen(File.Open(Name, FileMode.Open, FileAccess.Read, FileShare.Read)); + } + + private void UpdateCommentOnly() + { + long baseLength = baseStream_.Length; + + ZipHelperStream updateFile = null; + + if (archiveStorage_.UpdateMode == FileUpdateMode.Safe) + { + Stream copyStream = archiveStorage_.MakeTemporaryCopy(baseStream_); + updateFile = new ZipHelperStream(copyStream) + { + IsStreamOwner = true + }; + + baseStream_.Dispose(); + baseStream_ = null; + } + else + { + if (archiveStorage_.UpdateMode == FileUpdateMode.Direct) + { + // TODO: archiveStorage wasnt originally intended for this use. + // Need to revisit this to tidy up handling as archive storage currently doesnt + // handle the original stream well. + // The problem is when using an existing zip archive with an in memory archive storage. + // The open stream wont support writing but the memory storage should open the same file not an in memory one. + + // Need to tidy up the archive storage interface and contract basically. + baseStream_ = archiveStorage_.OpenForDirectUpdate(baseStream_); + updateFile = new ZipHelperStream(baseStream_); + } + else + { + baseStream_.Dispose(); + baseStream_ = null; + updateFile = new ZipHelperStream(Name); + } + } + + using (updateFile) + { + long locatedCentralDirOffset = + updateFile.LocateBlockWithSignature(ZipConstants.EndOfCentralDirectorySignature, + baseLength, ZipConstants.EndOfCentralRecordBaseSize, 0xffff); + if (locatedCentralDirOffset < 0) + { + throw new ZipException("Cannot find central directory"); + } + + const int CentralHeaderCommentSizeOffset = 16; + updateFile.Position += CentralHeaderCommentSizeOffset; + + byte[] rawComment = newComment_.RawComment; + + updateFile.WriteLEShort(rawComment.Length); + updateFile.Write(rawComment, 0, rawComment.Length); + updateFile.SetLength(updateFile.Position); + } + + if (archiveStorage_.UpdateMode == FileUpdateMode.Safe) + { + Reopen(archiveStorage_.ConvertTemporaryToFinal()); + } + else + { + ReadEntries(); + } + } + + /// + /// Class used to sort updates. + /// + private class UpdateComparer : IComparer + { + /// + /// Compares two objects and returns a value indicating whether one is + /// less than, equal to or greater than the other. + /// + /// First object to compare + /// Second object to compare. + /// Compare result. + public int Compare(ZipUpdate x, ZipUpdate y) + { + int result; + + if (x == null) + { + if (y == null) + { + result = 0; + } + else + { + result = -1; + } + } + else if (y == null) + { + result = 1; + } + else + { + int xCmdValue = ((x.Command == UpdateCommand.Copy) || (x.Command == UpdateCommand.Modify)) ? 0 : 1; + int yCmdValue = ((y.Command == UpdateCommand.Copy) || (y.Command == UpdateCommand.Modify)) ? 0 : 1; + + result = xCmdValue - yCmdValue; + if (result == 0) + { + long offsetDiff = x.Entry.Offset - y.Entry.Offset; + if (offsetDiff < 0) + { + result = -1; + } + else if (offsetDiff == 0) + { + result = 0; + } + else + { + result = 1; + } + } + } + return result; + } + } + + private void RunUpdates() + { + long sizeEntries = 0; + long endOfStream = 0; + bool directUpdate = false; + long destinationPosition = 0; // NOT SFX friendly + + ZipFile workFile; + + if (IsNewArchive) + { + workFile = this; + workFile.baseStream_.Position = 0; + directUpdate = true; + } + else if (archiveStorage_.UpdateMode == FileUpdateMode.Direct) + { + workFile = this; + workFile.baseStream_.Position = 0; + directUpdate = true; + + // Sort the updates by offset within copies/modifies, then adds. + // This ensures that data required by copies will not be overwritten. + updates_.Sort(new UpdateComparer()); + } + else + { + workFile = ZipFile.Create(archiveStorage_.GetTemporaryOutput()); + workFile.UseZip64 = UseZip64; + + if (key != null) + { + workFile.key = (byte[])key.Clone(); + } + } + + try + { + foreach (ZipUpdate update in updates_) + { + if (update != null) + { + switch (update.Command) + { + case UpdateCommand.Copy: + if (directUpdate) + { + CopyEntryDirect(workFile, update, ref destinationPosition); + } + else + { + CopyEntry(workFile, update); + } + break; + + case UpdateCommand.Modify: + // TODO: Direct modifying of an entry will take some legwork. + ModifyEntry(workFile, update); + break; + + case UpdateCommand.Add: + if (!IsNewArchive && directUpdate) + { + workFile.baseStream_.Position = destinationPosition; + } + + AddEntry(workFile, update); + + if (directUpdate) + { + destinationPosition = workFile.baseStream_.Position; + } + break; + } + } + } + + if (!IsNewArchive && directUpdate) + { + workFile.baseStream_.Position = destinationPosition; + } + + long centralDirOffset = workFile.baseStream_.Position; + + foreach (ZipUpdate update in updates_) + { + if (update != null) + { + sizeEntries += workFile.WriteCentralDirectoryHeader(update.OutEntry); + } + } + + byte[] theComment = (newComment_ != null) ? newComment_.RawComment : ZipStrings.ConvertToArray(comment_); + using (ZipHelperStream zhs = new ZipHelperStream(workFile.baseStream_)) + { + zhs.WriteEndOfCentralDirectory(updateCount_, sizeEntries, centralDirOffset, theComment); + } + + endOfStream = workFile.baseStream_.Position; + + // And now patch entries... + foreach (ZipUpdate update in updates_) + { + if (update != null) + { + // If the size of the entry is zero leave the crc as 0 as well. + // The calculated crc will be all bits on... + if ((update.CrcPatchOffset > 0) && (update.OutEntry.CompressedSize > 0)) + { + workFile.baseStream_.Position = update.CrcPatchOffset; + workFile.WriteLEInt((int)update.OutEntry.Crc); + } + + if (update.SizePatchOffset > 0) + { + workFile.baseStream_.Position = update.SizePatchOffset; + if (update.OutEntry.LocalHeaderRequiresZip64) + { + workFile.WriteLeLong(update.OutEntry.Size); + workFile.WriteLeLong(update.OutEntry.CompressedSize); + } + else + { + workFile.WriteLEInt((int)update.OutEntry.CompressedSize); + workFile.WriteLEInt((int)update.OutEntry.Size); + } + } + } + } + } + catch + { + workFile.Close(); + if (!directUpdate && (workFile.Name != null)) + { + File.Delete(workFile.Name); + } + throw; + } + + if (directUpdate) + { + workFile.baseStream_.SetLength(endOfStream); + workFile.baseStream_.Flush(); + isNewArchive_ = false; + ReadEntries(); + } + else + { + baseStream_.Dispose(); + Reopen(archiveStorage_.ConvertTemporaryToFinal()); + } + } + + private void CheckUpdating() + { + if (updates_ == null) + { + throw new InvalidOperationException("BeginUpdate has not been called"); + } + } + + #endregion Update Support + + #region ZipUpdate class + + /// + /// Represents a pending update to a Zip file. + /// + private class ZipUpdate + { + #region Constructors + + public ZipUpdate(string fileName, ZipEntry entry) + { + command_ = UpdateCommand.Add; + entry_ = entry; + filename_ = fileName; + } + + [Obsolete] + public ZipUpdate(string fileName, string entryName, CompressionMethod compressionMethod) + { + command_ = UpdateCommand.Add; + entry_ = new ZipEntry(entryName) + { + CompressionMethod = compressionMethod + }; + filename_ = fileName; + } + + [Obsolete] + public ZipUpdate(string fileName, string entryName) + : this(fileName, entryName, CompressionMethod.Deflated) + { + // Do nothing. + } + + [Obsolete] + public ZipUpdate(IStaticDataSource dataSource, string entryName, CompressionMethod compressionMethod) + { + command_ = UpdateCommand.Add; + entry_ = new ZipEntry(entryName) + { + CompressionMethod = compressionMethod + }; + dataSource_ = dataSource; + } + + public ZipUpdate(IStaticDataSource dataSource, ZipEntry entry) + { + command_ = UpdateCommand.Add; + entry_ = entry; + dataSource_ = dataSource; + } + + public ZipUpdate(ZipEntry original, ZipEntry updated) + { + throw new ZipException("Modify not currently supported"); + /* + command_ = UpdateCommand.Modify; + entry_ = ( ZipEntry )original.Clone(); + outEntry_ = ( ZipEntry )updated.Clone(); + */ + } + + public ZipUpdate(UpdateCommand command, ZipEntry entry) + { + command_ = command; + entry_ = (ZipEntry)entry.Clone(); + } + + /// + /// Copy an existing entry. + /// + /// The existing entry to copy. + public ZipUpdate(ZipEntry entry) + : this(UpdateCommand.Copy, entry) + { + // Do nothing. + } + + #endregion Constructors + + /// + /// Get the for this update. + /// + /// This is the source or original entry. + public ZipEntry Entry + { + get { return entry_; } + } + + /// + /// Get the that will be written to the updated/new file. + /// + public ZipEntry OutEntry + { + get + { + if (outEntry_ == null) + { + outEntry_ = (ZipEntry)entry_.Clone(); + } + + return outEntry_; + } + } + + /// + /// Get the command for this update. + /// + public UpdateCommand Command + { + get { return command_; } + } + + /// + /// Get the filename if any for this update. Null if none exists. + /// + public string Filename + { + get { return filename_; } + } + + /// + /// Get/set the location of the size patch for this update. + /// + public long SizePatchOffset + { + get { return sizePatchOffset_; } + set { sizePatchOffset_ = value; } + } + + /// + /// Get /set the location of the crc patch for this update. + /// + public long CrcPatchOffset + { + get { return crcPatchOffset_; } + set { crcPatchOffset_ = value; } + } + + /// + /// Get/set the size calculated by offset. + /// Specifically, the difference between this and next entry's starting offset. + /// + public long OffsetBasedSize + { + get { return _offsetBasedSize; } + set { _offsetBasedSize = value; } + } + + public Stream GetSource() + { + Stream result = null; + if (dataSource_ != null) + { + result = dataSource_.GetSource(); + } + + return result; + } + + #region Instance Fields + + private ZipEntry entry_; + private ZipEntry outEntry_; + private readonly UpdateCommand command_; + private IStaticDataSource dataSource_; + private readonly string filename_; + private long sizePatchOffset_ = -1; + private long crcPatchOffset_ = -1; + private long _offsetBasedSize = -1; + + #endregion Instance Fields + } + + #endregion ZipUpdate class + + #endregion Updating + + #region Disposing + + #region IDisposable Members + + void IDisposable.Dispose() + { + Close(); + } + + #endregion IDisposable Members + + private void DisposeInternal(bool disposing) + { + if (!isDisposed_) + { + isDisposed_ = true; + entries_ = Empty.Array(); + + if (IsStreamOwner && (baseStream_ != null)) + { + lock (baseStream_) + { + baseStream_.Dispose(); + } + } + + PostUpdateCleanup(); + } + } + + /// + /// Releases the unmanaged resources used by the this instance and optionally releases the managed resources. + /// + /// true to release both managed and unmanaged resources; + /// false to release only unmanaged resources. + protected virtual void Dispose(bool disposing) + { + DisposeInternal(disposing); + } + + #endregion Disposing + + #region Internal routines + + #region Reading + + /// + /// Read an unsigned short in little endian byte order. + /// + /// Returns the value read. + /// + /// The stream ends prematurely + /// + private ushort ReadLEUshort() + { + int data1 = baseStream_.ReadByte(); + + if (data1 < 0) + { + throw new EndOfStreamException("End of stream"); + } + + int data2 = baseStream_.ReadByte(); + + if (data2 < 0) + { + throw new EndOfStreamException("End of stream"); + } + + return unchecked((ushort)((ushort)data1 | (ushort)(data2 << 8))); + } + + /// + /// Read a uint in little endian byte order. + /// + /// Returns the value read. + /// + /// An i/o error occurs. + /// + /// + /// The file ends prematurely + /// + private uint ReadLEUint() + { + return (uint)(ReadLEUshort() | (ReadLEUshort() << 16)); + } + + private ulong ReadLEUlong() + { + return ReadLEUint() | ((ulong)ReadLEUint() << 32); + } + + #endregion Reading + + // NOTE this returns the offset of the first byte after the signature. + private long LocateBlockWithSignature(int signature, long endLocation, int minimumBlockSize, int maximumVariableData) + { + using (ZipHelperStream les = new ZipHelperStream(baseStream_)) + { + return les.LocateBlockWithSignature(signature, endLocation, minimumBlockSize, maximumVariableData); + } + } + + /// + /// Search for and read the central directory of a zip file filling the entries array. + /// + /// + /// An i/o error occurs. + /// + /// + /// The central directory is malformed or cannot be found + /// + private void ReadEntries() + { + // Search for the End Of Central Directory. When a zip comment is + // present the directory will start earlier + // + // The search is limited to 64K which is the maximum size of a trailing comment field to aid speed. + // This should be compatible with both SFX and ZIP files but has only been tested for Zip files + // If a SFX file has the Zip data attached as a resource and there are other resources occurring later then + // this could be invalid. + // Could also speed this up by reading memory in larger blocks. + + if (baseStream_.CanSeek == false) + { + throw new ZipException("ZipFile stream must be seekable"); + } + + long locatedEndOfCentralDir = LocateBlockWithSignature(ZipConstants.EndOfCentralDirectorySignature, + baseStream_.Length, ZipConstants.EndOfCentralRecordBaseSize, 0xffff); + + if (locatedEndOfCentralDir < 0) + { + throw new ZipException("Cannot find central directory"); + } + + // Read end of central directory record + ushort thisDiskNumber = ReadLEUshort(); + ushort startCentralDirDisk = ReadLEUshort(); + ulong entriesForThisDisk = ReadLEUshort(); + ulong entriesForWholeCentralDir = ReadLEUshort(); + ulong centralDirSize = ReadLEUint(); + long offsetOfCentralDir = ReadLEUint(); + uint commentSize = ReadLEUshort(); + + if (commentSize > 0) + { + byte[] comment = new byte[commentSize]; + + StreamUtils.ReadFully(baseStream_, comment); + comment_ = ZipStrings.ConvertToString(comment); + } + else + { + comment_ = string.Empty; + } + + bool isZip64 = false; + bool requireZip64 = false; + + // Check if zip64 header information is required. + if ((thisDiskNumber == 0xffff) || + (startCentralDirDisk == 0xffff) || + (entriesForThisDisk == 0xffff) || + (entriesForWholeCentralDir == 0xffff) || + (centralDirSize == 0xffffffff) || + (offsetOfCentralDir == 0xffffffff)) + { + requireZip64 = true; + } + + // #357 - always check for the existance of the Zip64 central directory. + // #403 - Take account of the fixed size of the locator when searching. + // Subtract from locatedEndOfCentralDir so that the endLocation is the location of EndOfCentralDirectorySignature, + // rather than the data following the signature. + long locatedZip64EndOfCentralDirLocator = LocateBlockWithSignature( + ZipConstants.Zip64CentralDirLocatorSignature, + locatedEndOfCentralDir - 4, + ZipConstants.Zip64EndOfCentralDirectoryLocatorSize, + 0); + + if (locatedZip64EndOfCentralDirLocator < 0) + { + if (requireZip64) + { + // This is only an error in cases where the Zip64 directory is required. + throw new ZipException("Cannot find Zip64 locator"); + } + } + else + { + isZip64 = true; + + // number of the disk with the start of the zip64 end of central directory 4 bytes + // relative offset of the zip64 end of central directory record 8 bytes + // total number of disks 4 bytes + ReadLEUint(); // startDisk64 is not currently used + ulong offset64 = ReadLEUlong(); + uint totalDisks = ReadLEUint(); + + baseStream_.Position = (long)offset64; + long sig64 = ReadLEUint(); + + if (sig64 != ZipConstants.Zip64CentralFileHeaderSignature) + { + throw new ZipException(string.Format("Invalid Zip64 Central directory signature at {0:X}", offset64)); + } + + // NOTE: Record size = SizeOfFixedFields + SizeOfVariableData - 12. + ulong recordSize = ReadLEUlong(); + int versionMadeBy = ReadLEUshort(); + int versionToExtract = ReadLEUshort(); + uint thisDisk = ReadLEUint(); + uint centralDirDisk = ReadLEUint(); + entriesForThisDisk = ReadLEUlong(); + entriesForWholeCentralDir = ReadLEUlong(); + centralDirSize = ReadLEUlong(); + offsetOfCentralDir = (long)ReadLEUlong(); + + // NOTE: zip64 extensible data sector (variable size) is ignored. + } + + entries_ = new ZipEntry[entriesForThisDisk]; + + // SFX/embedded support, find the offset of the first entry vis the start of the stream + // This applies to Zip files that are appended to the end of an SFX stub. + // Or are appended as a resource to an executable. + // Zip files created by some archivers have the offsets altered to reflect the true offsets + // and so dont require any adjustment here... + // TODO: Difficulty with Zip64 and SFX offset handling needs resolution - maths? + if (!isZip64 && (offsetOfCentralDir < locatedEndOfCentralDir - (4 + (long)centralDirSize))) + { + offsetOfFirstEntry = locatedEndOfCentralDir - (4 + (long)centralDirSize + offsetOfCentralDir); + if (offsetOfFirstEntry <= 0) + { + throw new ZipException("Invalid embedded zip archive"); + } + } + + baseStream_.Seek(offsetOfFirstEntry + offsetOfCentralDir, SeekOrigin.Begin); + + for (ulong i = 0; i < entriesForThisDisk; i++) + { + if (ReadLEUint() != ZipConstants.CentralHeaderSignature) + { + throw new ZipException("Wrong Central Directory signature"); + } + + int versionMadeBy = ReadLEUshort(); + int versionToExtract = ReadLEUshort(); + int bitFlags = ReadLEUshort(); + int method = ReadLEUshort(); + uint dostime = ReadLEUint(); + uint crc = ReadLEUint(); + var csize = (long)ReadLEUint(); + var size = (long)ReadLEUint(); + int nameLen = ReadLEUshort(); + int extraLen = ReadLEUshort(); + int commentLen = ReadLEUshort(); + + int diskStartNo = ReadLEUshort(); // Not currently used + int internalAttributes = ReadLEUshort(); // Not currently used + + uint externalAttributes = ReadLEUint(); + long offset = ReadLEUint(); + + byte[] buffer = new byte[Math.Max(nameLen, commentLen)]; + + StreamUtils.ReadFully(baseStream_, buffer, 0, nameLen); + string name = ZipStrings.ConvertToStringExt(bitFlags, buffer, nameLen); + + var entry = new ZipEntry(name, versionToExtract, versionMadeBy, (CompressionMethod)method) + { + Crc = crc & 0xffffffffL, + Size = size & 0xffffffffL, + CompressedSize = csize & 0xffffffffL, + Flags = bitFlags, + DosTime = dostime, + ZipFileIndex = (long)i, + Offset = offset, + ExternalFileAttributes = (int)externalAttributes + }; + + if ((bitFlags & 8) == 0) + { + entry.CryptoCheckValue = (byte)(crc >> 24); + } + else + { + entry.CryptoCheckValue = (byte)((dostime >> 8) & 0xff); + } + + if (extraLen > 0) + { + byte[] extra = new byte[extraLen]; + StreamUtils.ReadFully(baseStream_, extra); + entry.ExtraData = extra; + } + + entry.ProcessExtraData(false); + + if (commentLen > 0) + { + StreamUtils.ReadFully(baseStream_, buffer, 0, commentLen); + entry.Comment = ZipStrings.ConvertToStringExt(bitFlags, buffer, commentLen); + } + + entries_[i] = entry; + } + } + + /// + /// Locate the data for a given entry. + /// + /// + /// The start offset of the data. + /// + /// + /// The stream ends prematurely + /// + /// + /// The local header signature is invalid, the entry and central header file name lengths are different + /// or the local and entry compression methods dont match + /// + private long LocateEntry(ZipEntry entry) + { + return TestLocalHeader(entry, HeaderTest.Extract); + } + + private Stream CreateAndInitDecryptionStream(Stream baseStream, ZipEntry entry) + { + CryptoStream result = null; + + if (entry.CompressionMethodForHeader == CompressionMethod.WinZipAES) + { + if (entry.Version >= ZipConstants.VERSION_AES) + { + // Issue #471 - accept an empty string as a password, but reject null. + OnKeysRequired(entry.Name); + if (rawPassword_ == null) + { + throw new ZipException("No password available for AES encrypted stream"); + } + int saltLen = entry.AESSaltLen; + byte[] saltBytes = new byte[saltLen]; + int saltIn = StreamUtils.ReadRequestedBytes(baseStream, saltBytes, 0, saltLen); + if (saltIn != saltLen) + throw new ZipException("AES Salt expected " + saltLen + " got " + saltIn); + // + byte[] pwdVerifyRead = new byte[2]; + StreamUtils.ReadFully(baseStream, pwdVerifyRead); + int blockSize = entry.AESKeySize / 8; // bits to bytes + + var decryptor = new ZipAESTransform(rawPassword_, saltBytes, blockSize, false); + byte[] pwdVerifyCalc = decryptor.PwdVerifier; + if (pwdVerifyCalc[0] != pwdVerifyRead[0] || pwdVerifyCalc[1] != pwdVerifyRead[1]) + throw new ZipException("Invalid password for AES"); + result = new ZipAESStream(baseStream, decryptor, CryptoStreamMode.Read); + } + else + { + throw new ZipException("Decryption method not supported"); + } + } + else + { + if ((entry.Version < ZipConstants.VersionStrongEncryption) + || (entry.Flags & (int)GeneralBitFlags.StrongEncryption) == 0) + { + var classicManaged = new PkzipClassicManaged(); + + OnKeysRequired(entry.Name); + if (HaveKeys == false) + { + throw new ZipException("No password available for encrypted stream"); + } + + result = new CryptoStream(baseStream, classicManaged.CreateDecryptor(key, null), CryptoStreamMode.Read); + CheckClassicPassword(result, entry); + } + else + { + // We don't support PKWare strong encryption + throw new ZipException("Decryption method not supported"); + } + } + + return result; + } + + private Stream CreateAndInitEncryptionStream(Stream baseStream, ZipEntry entry) + { + CryptoStream result = null; + if ((entry.Version < ZipConstants.VersionStrongEncryption) + || (entry.Flags & (int)GeneralBitFlags.StrongEncryption) == 0) + { + var classicManaged = new PkzipClassicManaged(); + + OnKeysRequired(entry.Name); + if (HaveKeys == false) + { + throw new ZipException("No password available for encrypted stream"); + } + + // Closing a CryptoStream will close the base stream as well so wrap it in an UncompressedStream + // which doesnt do this. + result = new CryptoStream(new UncompressedStream(baseStream), + classicManaged.CreateEncryptor(key, null), CryptoStreamMode.Write); + + if ((entry.Crc < 0) || (entry.Flags & 8) != 0) + { + WriteEncryptionHeader(result, entry.DosTime << 16); + } + else + { + WriteEncryptionHeader(result, entry.Crc); + } + } + return result; + } + + private static void CheckClassicPassword(CryptoStream classicCryptoStream, ZipEntry entry) + { + byte[] cryptbuffer = new byte[ZipConstants.CryptoHeaderSize]; + StreamUtils.ReadFully(classicCryptoStream, cryptbuffer); + if (cryptbuffer[ZipConstants.CryptoHeaderSize - 1] != entry.CryptoCheckValue) + { + throw new ZipException("Invalid password"); + } + } + + private static void WriteEncryptionHeader(Stream stream, long crcValue) + { + byte[] cryptBuffer = new byte[ZipConstants.CryptoHeaderSize]; + using (var rng = new RNGCryptoServiceProvider()) + { + rng.GetBytes(cryptBuffer); + } + cryptBuffer[11] = (byte)(crcValue >> 24); + stream.Write(cryptBuffer, 0, cryptBuffer.Length); + } + + #endregion Internal routines + + #region Instance Fields + + private bool isDisposed_; + private string name_; + private string comment_; + private string rawPassword_; + private Stream baseStream_; + private bool isStreamOwner; + private long offsetOfFirstEntry; + private ZipEntry[] entries_; + private byte[] key; + private bool isNewArchive_; + + // Default is dynamic which is not backwards compatible and can cause problems + // with XP's built in compression which cant read Zip64 archives. + // However it does avoid the situation were a large file is added and cannot be completed correctly. + // Hint: Set always ZipEntry size before they are added to an archive and this setting isnt needed. + private UseZip64 useZip64_ = UseZip64.Dynamic; + + #region Zip Update Instance Fields + + private List updates_; + private long updateCount_; // Count is managed manually as updates_ can contain nulls! + private Dictionary updateIndex_; + private IArchiveStorage archiveStorage_; + private IDynamicDataSource updateDataSource_; + private bool contentsEdited_; + private int bufferSize_ = DefaultBufferSize; + private byte[] copyBuffer_; + private ZipString newComment_; + private bool commentEdited_; + private IEntryFactory updateEntryFactory_ = new ZipEntryFactory(); + + #endregion Zip Update Instance Fields + + #endregion Instance Fields + + #region Support Classes + + /// + /// Represents a string from a which is stored as an array of bytes. + /// + private class ZipString + { + #region Constructors + + /// + /// Initialise a with a string. + /// + /// The textual string form. + public ZipString(string comment) + { + comment_ = comment; + isSourceString_ = true; + } + + /// + /// Initialise a using a string in its binary 'raw' form. + /// + /// + public ZipString(byte[] rawString) + { + rawComment_ = rawString; + } + + #endregion Constructors + + /// + /// Get a value indicating the original source of data for this instance. + /// True if the source was a string; false if the source was binary data. + /// + public bool IsSourceString + { + get { return isSourceString_; } + } + + /// + /// Get the length of the comment when represented as raw bytes. + /// + public int RawLength + { + get + { + MakeBytesAvailable(); + return rawComment_.Length; + } + } + + /// + /// Get the comment in its 'raw' form as plain bytes. + /// + public byte[] RawComment + { + get + { + MakeBytesAvailable(); + return (byte[])rawComment_.Clone(); + } + } + + /// + /// Reset the comment to its initial state. + /// + public void Reset() + { + if (isSourceString_) + { + rawComment_ = null; + } + else + { + comment_ = null; + } + } + + private void MakeTextAvailable() + { + if (comment_ == null) + { + comment_ = ZipStrings.ConvertToString(rawComment_); + } + } + + private void MakeBytesAvailable() + { + if (rawComment_ == null) + { + rawComment_ = ZipStrings.ConvertToArray(comment_); + } + } + + /// + /// Implicit conversion of comment to a string. + /// + /// The to convert to a string. + /// The textual equivalent for the input value. + static public implicit operator string(ZipString zipString) + { + zipString.MakeTextAvailable(); + return zipString.comment_; + } + + #region Instance Fields + + private string comment_; + private byte[] rawComment_; + private readonly bool isSourceString_; + + #endregion Instance Fields + } + + /// + /// An enumerator for Zip entries + /// + private class ZipEntryEnumerator : IEnumerator + { + #region Constructors + + public ZipEntryEnumerator(ZipEntry[] entries) + { + array = entries; + } + + #endregion Constructors + + #region IEnumerator Members + + public object Current + { + get + { + return array[index]; + } + } + + public void Reset() + { + index = -1; + } + + public bool MoveNext() + { + return (++index < array.Length); + } + + #endregion IEnumerator Members + + #region Instance Fields + + private ZipEntry[] array; + private int index = -1; + + #endregion Instance Fields + } + + /// + /// An is a stream that you can write uncompressed data + /// to and flush, but cannot read, seek or do anything else to. + /// + private class UncompressedStream : Stream + { + #region Constructors + + public UncompressedStream(Stream baseStream) + { + baseStream_ = baseStream; + } + + #endregion Constructors + + /// + /// Gets a value indicating whether the current stream supports reading. + /// + public override bool CanRead + { + get + { + return false; + } + } + + /// + /// Write any buffered data to underlying storage. + /// + public override void Flush() + { + baseStream_.Flush(); + } + + /// + /// Gets a value indicating whether the current stream supports writing. + /// + public override bool CanWrite + { + get + { + return baseStream_.CanWrite; + } + } + + /// + /// Gets a value indicating whether the current stream supports seeking. + /// + public override bool CanSeek + { + get + { + return false; + } + } + + /// + /// Get the length in bytes of the stream. + /// + public override long Length + { + get + { + return 0; + } + } + + /// + /// Gets or sets the position within the current stream. + /// + public override long Position + { + get + { + return baseStream_.Position; + } + set + { + throw new NotImplementedException(); + } + } + + /// + /// Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + /// + /// An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + /// The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + /// The maximum number of bytes to be read from the current stream. + /// + /// The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. + /// + /// The sum of offset and count is larger than the buffer length. + /// Methods were called after the stream was closed. + /// The stream does not support reading. + /// buffer is null. + /// An I/O error occurs. + /// offset or count is negative. + public override int Read(byte[] buffer, int offset, int count) + { + return 0; + } + + /// + /// Sets the position within the current stream. + /// + /// A byte offset relative to the origin parameter. + /// A value of type indicating the reference point used to obtain the new position. + /// + /// The new position within the current stream. + /// + /// An I/O error occurs. + /// The stream does not support seeking, such as if the stream is constructed from a pipe or console output. + /// Methods were called after the stream was closed. + public override long Seek(long offset, SeekOrigin origin) + { + return 0; + } + + /// + /// Sets the length of the current stream. + /// + /// The desired length of the current stream in bytes. + /// The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. + /// An I/O error occurs. + /// Methods were called after the stream was closed. + public override void SetLength(long value) + { + } + + /// + /// Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + /// + /// An array of bytes. This method copies count bytes from buffer to the current stream. + /// The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + /// The number of bytes to be written to the current stream. + /// An I/O error occurs. + /// The stream does not support writing. + /// Methods were called after the stream was closed. + /// buffer is null. + /// The sum of offset and count is greater than the buffer length. + /// offset or count is negative. + public override void Write(byte[] buffer, int offset, int count) + { + baseStream_.Write(buffer, offset, count); + } + + private readonly + + #region Instance Fields + + Stream baseStream_; + + #endregion Instance Fields + } + + /// + /// A is an + /// whose data is only a part or subsection of a file. + /// + private class PartialInputStream : Stream + { + #region Constructors + + /// + /// Initialise a new instance of the class. + /// + /// The containing the underlying stream to use for IO. + /// The start of the partial data. + /// The length of the partial data. + public PartialInputStream(ZipFile zipFile, long start, long length) + { + start_ = start; + length_ = length; + + // Although this is the only time the zipfile is used + // keeping a reference here prevents premature closure of + // this zip file and thus the baseStream_. + + // Code like this will cause apparently random failures depending + // on the size of the files and when garbage is collected. + // + // ZipFile z = new ZipFile (stream); + // Stream reader = z.GetInputStream(0); + // uses reader here.... + zipFile_ = zipFile; + baseStream_ = zipFile_.baseStream_; + readPos_ = start; + end_ = start + length; + } + + #endregion Constructors + + /// + /// Read a byte from this stream. + /// + /// Returns the byte read or -1 on end of stream. + public override int ReadByte() + { + if (readPos_ >= end_) + { + // -1 is the correct value at end of stream. + return -1; + } + + lock (baseStream_) + { + baseStream_.Seek(readPos_++, SeekOrigin.Begin); + return baseStream_.ReadByte(); + } + } + + /// + /// Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + /// + /// An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source. + /// The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + /// The maximum number of bytes to be read from the current stream. + /// + /// The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. + /// + /// The sum of offset and count is larger than the buffer length. + /// Methods were called after the stream was closed. + /// The stream does not support reading. + /// buffer is null. + /// An I/O error occurs. + /// offset or count is negative. + public override int Read(byte[] buffer, int offset, int count) + { + lock (baseStream_) + { + if (count > end_ - readPos_) + { + count = (int)(end_ - readPos_); + if (count == 0) + { + return 0; + } + } + // Protect against Stream implementations that throw away their buffer on every Seek + // (for example, Mono FileStream) + if (baseStream_.Position != readPos_) + { + baseStream_.Seek(readPos_, SeekOrigin.Begin); + } + int readCount = baseStream_.Read(buffer, offset, count); + if (readCount > 0) + { + readPos_ += readCount; + } + return readCount; + } + } + + /// + /// Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + /// + /// An array of bytes. This method copies count bytes from buffer to the current stream. + /// The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + /// The number of bytes to be written to the current stream. + /// An I/O error occurs. + /// The stream does not support writing. + /// Methods were called after the stream was closed. + /// buffer is null. + /// The sum of offset and count is greater than the buffer length. + /// offset or count is negative. + public override void Write(byte[] buffer, int offset, int count) + { + throw new NotSupportedException(); + } + + /// + /// When overridden in a derived class, sets the length of the current stream. + /// + /// The desired length of the current stream in bytes. + /// The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output. + /// An I/O error occurs. + /// Methods were called after the stream was closed. + public override void SetLength(long value) + { + throw new NotSupportedException(); + } + + /// + /// When overridden in a derived class, sets the position within the current stream. + /// + /// A byte offset relative to the origin parameter. + /// A value of type indicating the reference point used to obtain the new position. + /// + /// The new position within the current stream. + /// + /// An I/O error occurs. + /// The stream does not support seeking, such as if the stream is constructed from a pipe or console output. + /// Methods were called after the stream was closed. + public override long Seek(long offset, SeekOrigin origin) + { + long newPos = readPos_; + + switch (origin) + { + case SeekOrigin.Begin: + newPos = start_ + offset; + break; + + case SeekOrigin.Current: + newPos = readPos_ + offset; + break; + + case SeekOrigin.End: + newPos = end_ + offset; + break; + } + + if (newPos < start_) + { + throw new ArgumentException("Negative position is invalid"); + } + + if (newPos > end_) + { + throw new IOException("Cannot seek past end"); + } + readPos_ = newPos; + return readPos_; + } + + /// + /// Clears all buffers for this stream and causes any buffered data to be written to the underlying device. + /// + /// An I/O error occurs. + public override void Flush() + { + // Nothing to do. + } + + /// + /// Gets or sets the position within the current stream. + /// + /// + /// The current position within the stream. + /// An I/O error occurs. + /// The stream does not support seeking. + /// Methods were called after the stream was closed. + public override long Position + { + get { return readPos_ - start_; } + set + { + long newPos = start_ + value; + + if (newPos < start_) + { + throw new ArgumentException("Negative position is invalid"); + } + + if (newPos > end_) + { + throw new InvalidOperationException("Cannot seek past end"); + } + readPos_ = newPos; + } + } + + /// + /// Gets the length in bytes of the stream. + /// + /// + /// A long value representing the length of the stream in bytes. + /// A class derived from Stream does not support seeking. + /// Methods were called after the stream was closed. + public override long Length + { + get { return length_; } + } + + /// + /// Gets a value indicating whether the current stream supports writing. + /// + /// false + /// true if the stream supports writing; otherwise, false. + public override bool CanWrite + { + get { return false; } + } + + /// + /// Gets a value indicating whether the current stream supports seeking. + /// + /// true + /// true if the stream supports seeking; otherwise, false. + public override bool CanSeek + { + get { return true; } + } + + /// + /// Gets a value indicating whether the current stream supports reading. + /// + /// true. + /// true if the stream supports reading; otherwise, false. + public override bool CanRead + { + get { return true; } + } + + /// + /// Gets a value that determines whether the current stream can time out. + /// + /// + /// A value that determines whether the current stream can time out. + public override bool CanTimeout + { + get { return baseStream_.CanTimeout; } + } + + #region Instance Fields + + private ZipFile zipFile_; + private Stream baseStream_; + private readonly long start_; + private readonly long length_; + private long readPos_; + private readonly long end_; + + #endregion Instance Fields + } + + #endregion Support Classes + } + + #endregion ZipFile Class + + #region DataSources + + /// + /// Provides a static way to obtain a source of data for an entry. + /// + public interface IStaticDataSource + { + /// + /// Get a source of data by creating a new stream. + /// + /// Returns a to use for compression input. + /// Ideally a new stream is created and opened to achieve this, to avoid locking problems. + Stream GetSource(); + } + + /// + /// Represents a source of data that can dynamically provide + /// multiple data sources based on the parameters passed. + /// + public interface IDynamicDataSource + { + /// + /// Get a data source. + /// + /// The to get a source for. + /// The name for data if known. + /// Returns a to use for compression input. + /// Ideally a new stream is created and opened to achieve this, to avoid locking problems. + Stream GetSource(ZipEntry entry, string name); + } + + /// + /// Default implementation of a for use with files stored on disk. + /// + public class StaticDiskDataSource : IStaticDataSource + { + /// + /// Initialise a new instance of + /// + /// The name of the file to obtain data from. + public StaticDiskDataSource(string fileName) + { + fileName_ = fileName; + } + + #region IDataSource Members + + /// + /// Get a providing data. + /// + /// Returns a providing data. + public Stream GetSource() + { + return File.Open(fileName_, FileMode.Open, FileAccess.Read, FileShare.Read); + } + + private readonly + + #endregion IDataSource Members + + #region Instance Fields + + string fileName_; + + #endregion Instance Fields + } + + /// + /// Default implementation of for files stored on disk. + /// + public class DynamicDiskDataSource : IDynamicDataSource + { + #region IDataSource Members + + /// + /// Get a providing data for an entry. + /// + /// The entry to provide data for. + /// The file name for data if known. + /// Returns a stream providing data; or null if not available + public Stream GetSource(ZipEntry entry, string name) + { + Stream result = null; + + if (name != null) + { + result = File.Open(name, FileMode.Open, FileAccess.Read, FileShare.Read); + } + + return result; + } + + #endregion IDataSource Members + } + + #endregion DataSources + + #region Archive Storage + + /// + /// Defines facilities for data storage when updating Zip Archives. + /// + public interface IArchiveStorage + { + /// + /// Get the to apply during updates. + /// + FileUpdateMode UpdateMode { get; } + + /// + /// Get an empty that can be used for temporary output. + /// + /// Returns a temporary output + /// + Stream GetTemporaryOutput(); + + /// + /// Convert a temporary output stream to a final stream. + /// + /// The resulting final + /// + Stream ConvertTemporaryToFinal(); + + /// + /// Make a temporary copy of the original stream. + /// + /// The to copy. + /// Returns a temporary output that is a copy of the input. + Stream MakeTemporaryCopy(Stream stream); + + /// + /// Return a stream suitable for performing direct updates on the original source. + /// + /// The current stream. + /// Returns a stream suitable for direct updating. + /// This may be the current stream passed. + Stream OpenForDirectUpdate(Stream stream); + + /// + /// Dispose of this instance. + /// + void Dispose(); + } + + /// + /// An abstract suitable for extension by inheritance. + /// + abstract public class BaseArchiveStorage : IArchiveStorage + { + #region Constructors + + /// + /// Initializes a new instance of the class. + /// + /// The update mode. + protected BaseArchiveStorage(FileUpdateMode updateMode) + { + updateMode_ = updateMode; + } + + #endregion Constructors + + #region IArchiveStorage Members + + /// + /// Gets a temporary output + /// + /// Returns the temporary output stream. + /// + public abstract Stream GetTemporaryOutput(); + + /// + /// Converts the temporary to its final form. + /// + /// Returns a that can be used to read + /// the final storage for the archive. + /// + public abstract Stream ConvertTemporaryToFinal(); + + /// + /// Make a temporary copy of a . + /// + /// The to make a copy of. + /// Returns a temporary output that is a copy of the input. + public abstract Stream MakeTemporaryCopy(Stream stream); + + /// + /// Return a stream suitable for performing direct updates on the original source. + /// + /// The to open for direct update. + /// Returns a stream suitable for direct updating. + public abstract Stream OpenForDirectUpdate(Stream stream); + + /// + /// Disposes this instance. + /// + public abstract void Dispose(); + + /// + /// Gets the update mode applicable. + /// + /// The update mode. + public FileUpdateMode UpdateMode + { + get + { + return updateMode_; + } + } + + #endregion IArchiveStorage Members + + #region Instance Fields + + private readonly FileUpdateMode updateMode_; + + #endregion Instance Fields + } + + /// + /// An implementation suitable for hard disks. + /// + public class DiskArchiveStorage : BaseArchiveStorage + { + #region Constructors + + /// + /// Initializes a new instance of the class. + /// + /// The file. + /// The update mode. + public DiskArchiveStorage(ZipFile file, FileUpdateMode updateMode) + : base(updateMode) + { + if (file.Name == null) + { + throw new ZipException("Cant handle non file archives"); + } + + fileName_ = file.Name; + } + + /// + /// Initializes a new instance of the class. + /// + /// The file. + public DiskArchiveStorage(ZipFile file) + : this(file, FileUpdateMode.Safe) + { + } + + #endregion Constructors + + #region IArchiveStorage Members + + /// + /// Gets a temporary output for performing updates on. + /// + /// Returns the temporary output stream. + public override Stream GetTemporaryOutput() + { + temporaryName_ = PathUtils.GetTempFileName(temporaryName_); + temporaryStream_ = File.Open(temporaryName_, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); + + return temporaryStream_; + } + + /// + /// Converts a temporary to its final form. + /// + /// Returns a that can be used to read + /// the final storage for the archive. + public override Stream ConvertTemporaryToFinal() + { + if (temporaryStream_ == null) + { + throw new ZipException("No temporary stream has been created"); + } + + Stream result = null; + + string moveTempName = PathUtils.GetTempFileName(fileName_); + bool newFileCreated = false; + + try + { + temporaryStream_.Dispose(); + File.Move(fileName_, moveTempName); + File.Move(temporaryName_, fileName_); + newFileCreated = true; + File.Delete(moveTempName); + + result = File.Open(fileName_, FileMode.Open, FileAccess.Read, FileShare.Read); + } + catch (Exception) + { + result = null; + + // Try to roll back changes... + if (!newFileCreated) + { + File.Move(moveTempName, fileName_); + File.Delete(temporaryName_); + } + + throw; + } + + return result; + } + + /// + /// Make a temporary copy of a stream. + /// + /// The to copy. + /// Returns a temporary output that is a copy of the input. + public override Stream MakeTemporaryCopy(Stream stream) + { + stream.Dispose(); + + temporaryName_ = PathUtils.GetTempFileName(fileName_); + File.Copy(fileName_, temporaryName_, true); + + temporaryStream_ = new FileStream(temporaryName_, + FileMode.Open, + FileAccess.ReadWrite); + return temporaryStream_; + } + + /// + /// Return a stream suitable for performing direct updates on the original source. + /// + /// The current stream. + /// Returns a stream suitable for direct updating. + /// If the is not null this is used as is. + public override Stream OpenForDirectUpdate(Stream stream) + { + Stream result; + if ((stream == null) || !stream.CanWrite) + { + if (stream != null) + { + stream.Dispose(); + } + + result = new FileStream(fileName_, + FileMode.Open, + FileAccess.ReadWrite); + } + else + { + result = stream; + } + + return result; + } + + /// + /// Disposes this instance. + /// + public override void Dispose() + { + if (temporaryStream_ != null) + { + temporaryStream_.Dispose(); + } + } + + #endregion IArchiveStorage Members + + #region Instance Fields + + private Stream temporaryStream_; + private readonly string fileName_; + private string temporaryName_; + + #endregion Instance Fields + } + + /// + /// An implementation suitable for in memory streams. + /// + public class MemoryArchiveStorage : BaseArchiveStorage + { + #region Constructors + + /// + /// Initializes a new instance of the class. + /// + public MemoryArchiveStorage() + : base(FileUpdateMode.Direct) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The to use + /// This constructor is for testing as memory streams dont really require safe mode. + public MemoryArchiveStorage(FileUpdateMode updateMode) + : base(updateMode) + { + } + + #endregion Constructors + + #region Properties + + /// + /// Get the stream returned by if this was in fact called. + /// + public MemoryStream FinalStream + { + get { return finalStream_; } + } + + #endregion Properties + + #region IArchiveStorage Members + + /// + /// Gets the temporary output + /// + /// Returns the temporary output stream. + public override Stream GetTemporaryOutput() + { + temporaryStream_ = new MemoryStream(); + return temporaryStream_; + } + + /// + /// Converts the temporary to its final form. + /// + /// Returns a that can be used to read + /// the final storage for the archive. + public override Stream ConvertTemporaryToFinal() + { + if (temporaryStream_ == null) + { + throw new ZipException("No temporary stream has been created"); + } + + finalStream_ = new MemoryStream(temporaryStream_.ToArray()); + return finalStream_; + } + + /// + /// Make a temporary copy of the original stream. + /// + /// The to copy. + /// Returns a temporary output that is a copy of the input. + public override Stream MakeTemporaryCopy(Stream stream) + { + temporaryStream_ = new MemoryStream(); + stream.Position = 0; + StreamUtils.Copy(stream, temporaryStream_, new byte[4096]); + return temporaryStream_; + } + + /// + /// Return a stream suitable for performing direct updates on the original source. + /// + /// The original source stream + /// Returns a stream suitable for direct updating. + /// If the passed is not null this is used; + /// otherwise a new is returned. + public override Stream OpenForDirectUpdate(Stream stream) + { + Stream result; + if ((stream == null) || !stream.CanWrite) + { + result = new MemoryStream(); + + if (stream != null) + { + stream.Position = 0; + StreamUtils.Copy(stream, result, new byte[4096]); + + stream.Dispose(); + } + } + else + { + result = stream; + } + + return result; + } + + /// + /// Disposes this instance. + /// + public override void Dispose() + { + if (temporaryStream_ != null) + { + temporaryStream_.Dispose(); + } + } + + #endregion IArchiveStorage Members + + #region Instance Fields + + private MemoryStream temporaryStream_; + private MemoryStream finalStream_; + + #endregion Instance Fields + } + + #endregion Archive Storage +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs.meta new file mode 100644 index 0000000..f0e602e --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipFile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c681e771e22684af4a2bc7f6eed41742 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs new file mode 100644 index 0000000..da65630 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs @@ -0,0 +1,629 @@ +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// Holds data pertinent to a data descriptor. + /// + public class DescriptorData + { + /// + /// Get /set the compressed size of data. + /// + public long CompressedSize + { + get { return compressedSize; } + set { compressedSize = value; } + } + + /// + /// Get / set the uncompressed size of data + /// + public long Size + { + get { return size; } + set { size = value; } + } + + /// + /// Get /set the crc value. + /// + public long Crc + { + get { return crc; } + set { crc = (value & 0xffffffff); } + } + + #region Instance Fields + + private long size; + private long compressedSize; + private long crc; + + #endregion Instance Fields + } + + internal class EntryPatchData + { + public long SizePatchOffset + { + get { return sizePatchOffset_; } + set { sizePatchOffset_ = value; } + } + + public long CrcPatchOffset + { + get { return crcPatchOffset_; } + set { crcPatchOffset_ = value; } + } + + #region Instance Fields + + private long sizePatchOffset_; + private long crcPatchOffset_; + + #endregion Instance Fields + } + + /// + /// This class assists with writing/reading from Zip files. + /// + internal class ZipHelperStream : Stream + { + #region Constructors + + /// + /// Initialise an instance of this class. + /// + /// The name of the file to open. + public ZipHelperStream(string name) + { + stream_ = new FileStream(name, FileMode.Open, FileAccess.ReadWrite); + isOwner_ = true; + } + + /// + /// Initialise a new instance of . + /// + /// The stream to use. + public ZipHelperStream(Stream stream) + { + stream_ = stream; + } + + #endregion Constructors + + /// + /// Get / set a value indicating whether the underlying stream is owned or not. + /// + /// If the stream is owned it is closed when this instance is closed. + public bool IsStreamOwner + { + get { return isOwner_; } + set { isOwner_ = value; } + } + + #region Base Stream Methods + + public override bool CanRead + { + get { return stream_.CanRead; } + } + + public override bool CanSeek + { + get { return stream_.CanSeek; } + } + + public override bool CanTimeout + { + get { return stream_.CanTimeout; } + } + + public override long Length + { + get { return stream_.Length; } + } + + public override long Position + { + get { return stream_.Position; } + set { stream_.Position = value; } + } + + public override bool CanWrite + { + get { return stream_.CanWrite; } + } + + public override void Flush() + { + stream_.Flush(); + } + + public override long Seek(long offset, SeekOrigin origin) + { + return stream_.Seek(offset, origin); + } + + public override void SetLength(long value) + { + stream_.SetLength(value); + } + + public override int Read(byte[] buffer, int offset, int count) + { + return stream_.Read(buffer, offset, count); + } + + public override void Write(byte[] buffer, int offset, int count) + { + stream_.Write(buffer, offset, count); + } + + /// + /// Close the stream. + /// + /// + /// The underlying stream is closed only if is true. + /// + protected override void Dispose(bool disposing) + { + Stream toClose = stream_; + stream_ = null; + if (isOwner_ && (toClose != null)) + { + isOwner_ = false; + toClose.Dispose(); + } + } + + #endregion Base Stream Methods + + // Write the local file header + // TODO: ZipHelperStream.WriteLocalHeader is not yet used and needs checking for ZipFile and ZipOuptutStream usage + private void WriteLocalHeader(ZipEntry entry, EntryPatchData patchData) + { + CompressionMethod method = entry.CompressionMethod; + bool headerInfoAvailable = true; // How to get this? + bool patchEntryHeader = false; + + WriteLEInt(ZipConstants.LocalHeaderSignature); + + WriteLEShort(entry.Version); + WriteLEShort(entry.Flags); + WriteLEShort((byte)method); + WriteLEInt((int)entry.DosTime); + + if (headerInfoAvailable == true) + { + WriteLEInt((int)entry.Crc); + if (entry.LocalHeaderRequiresZip64) + { + WriteLEInt(-1); + WriteLEInt(-1); + } + else + { + WriteLEInt(entry.IsCrypted ? (int)entry.CompressedSize + ZipConstants.CryptoHeaderSize : (int)entry.CompressedSize); + WriteLEInt((int)entry.Size); + } + } + else + { + if (patchData != null) + { + patchData.CrcPatchOffset = stream_.Position; + } + WriteLEInt(0); // Crc + + if (patchData != null) + { + patchData.SizePatchOffset = stream_.Position; + } + + // For local header both sizes appear in Zip64 Extended Information + if (entry.LocalHeaderRequiresZip64 && patchEntryHeader) + { + WriteLEInt(-1); + WriteLEInt(-1); + } + else + { + WriteLEInt(0); // Compressed size + WriteLEInt(0); // Uncompressed size + } + } + + byte[] name = ZipStrings.ConvertToArray(entry.Flags, entry.Name); + + if (name.Length > 0xFFFF) + { + throw new ZipException("Entry name too long."); + } + + var ed = new ZipExtraData(entry.ExtraData); + + if (entry.LocalHeaderRequiresZip64 && (headerInfoAvailable || patchEntryHeader)) + { + ed.StartNewEntry(); + if (headerInfoAvailable) + { + ed.AddLeLong(entry.Size); + ed.AddLeLong(entry.CompressedSize); + } + else + { + ed.AddLeLong(-1); + ed.AddLeLong(-1); + } + ed.AddNewEntry(1); + + if (!ed.Find(1)) + { + throw new ZipException("Internal error cant find extra data"); + } + + if (patchData != null) + { + patchData.SizePatchOffset = ed.CurrentReadIndex; + } + } + else + { + ed.Delete(1); + } + + byte[] extra = ed.GetEntryData(); + + WriteLEShort(name.Length); + WriteLEShort(extra.Length); + + if (name.Length > 0) + { + stream_.Write(name, 0, name.Length); + } + + if (entry.LocalHeaderRequiresZip64 && patchEntryHeader) + { + patchData.SizePatchOffset += stream_.Position; + } + + if (extra.Length > 0) + { + stream_.Write(extra, 0, extra.Length); + } + } + + /// + /// Locates a block with the desired . + /// + /// The signature to find. + /// Location, marking the end of block. + /// Minimum size of the block. + /// The maximum variable data. + /// Returns the offset of the first byte after the signature; -1 if not found + public long LocateBlockWithSignature(int signature, long endLocation, int minimumBlockSize, int maximumVariableData) + { + long pos = endLocation - minimumBlockSize; + if (pos < 0) + { + return -1; + } + + long giveUpMarker = Math.Max(pos - maximumVariableData, 0); + + // TODO: This loop could be optimised for speed. + do + { + if (pos < giveUpMarker) + { + return -1; + } + Seek(pos--, SeekOrigin.Begin); + } while (ReadLEInt() != signature); + + return Position; + } + + /// + /// Write Zip64 end of central directory records (File header and locator). + /// + /// The number of entries in the central directory. + /// The size of entries in the central directory. + /// The offset of the central directory. + public void WriteZip64EndOfCentralDirectory(long noOfEntries, long sizeEntries, long centralDirOffset) + { + long centralSignatureOffset = centralDirOffset + sizeEntries; + WriteLEInt(ZipConstants.Zip64CentralFileHeaderSignature); + WriteLELong(44); // Size of this record (total size of remaining fields in header or full size - 12) + WriteLEShort(ZipConstants.VersionMadeBy); // Version made by + WriteLEShort(ZipConstants.VersionZip64); // Version to extract + WriteLEInt(0); // Number of this disk + WriteLEInt(0); // number of the disk with the start of the central directory + WriteLELong(noOfEntries); // No of entries on this disk + WriteLELong(noOfEntries); // Total No of entries in central directory + WriteLELong(sizeEntries); // Size of the central directory + WriteLELong(centralDirOffset); // offset of start of central directory + // zip64 extensible data sector not catered for here (variable size) + + // Write the Zip64 end of central directory locator + WriteLEInt(ZipConstants.Zip64CentralDirLocatorSignature); + + // no of the disk with the start of the zip64 end of central directory + WriteLEInt(0); + + // relative offset of the zip64 end of central directory record + WriteLELong(centralSignatureOffset); + + // total number of disks + WriteLEInt(1); + } + + /// + /// Write the required records to end the central directory. + /// + /// The number of entries in the directory. + /// The size of the entries in the directory. + /// The start of the central directory. + /// The archive comment. (This can be null). + public void WriteEndOfCentralDirectory(long noOfEntries, long sizeEntries, + long startOfCentralDirectory, byte[] comment) + { + if ((noOfEntries >= 0xffff) || + (startOfCentralDirectory >= 0xffffffff) || + (sizeEntries >= 0xffffffff)) + { + WriteZip64EndOfCentralDirectory(noOfEntries, sizeEntries, startOfCentralDirectory); + } + + WriteLEInt(ZipConstants.EndOfCentralDirectorySignature); + + // TODO: ZipFile Multi disk handling not done + WriteLEShort(0); // number of this disk + WriteLEShort(0); // no of disk with start of central dir + + // Number of entries + if (noOfEntries >= 0xffff) + { + WriteLEUshort(0xffff); // Zip64 marker + WriteLEUshort(0xffff); + } + else + { + WriteLEShort((short)noOfEntries); // entries in central dir for this disk + WriteLEShort((short)noOfEntries); // total entries in central directory + } + + // Size of the central directory + if (sizeEntries >= 0xffffffff) + { + WriteLEUint(0xffffffff); // Zip64 marker + } + else + { + WriteLEInt((int)sizeEntries); + } + + // offset of start of central directory + if (startOfCentralDirectory >= 0xffffffff) + { + WriteLEUint(0xffffffff); // Zip64 marker + } + else + { + WriteLEInt((int)startOfCentralDirectory); + } + + int commentLength = (comment != null) ? comment.Length : 0; + + if (commentLength > 0xffff) + { + throw new ZipException(string.Format("Comment length({0}) is too long can only be 64K", commentLength)); + } + + WriteLEShort(commentLength); + + if (commentLength > 0) + { + Write(comment, 0, comment.Length); + } + } + + #region LE value reading/writing + + /// + /// Read an unsigned short in little endian byte order. + /// + /// Returns the value read. + /// + /// An i/o error occurs. + /// + /// + /// The file ends prematurely + /// + public int ReadLEShort() + { + int byteValue1 = stream_.ReadByte(); + + if (byteValue1 < 0) + { + throw new EndOfStreamException(); + } + + int byteValue2 = stream_.ReadByte(); + if (byteValue2 < 0) + { + throw new EndOfStreamException(); + } + + return byteValue1 | (byteValue2 << 8); + } + + /// + /// Read an int in little endian byte order. + /// + /// Returns the value read. + /// + /// An i/o error occurs. + /// + /// + /// The file ends prematurely + /// + public int ReadLEInt() + { + return ReadLEShort() | (ReadLEShort() << 16); + } + + /// + /// Read a long in little endian byte order. + /// + /// The value read. + public long ReadLELong() + { + return (uint)ReadLEInt() | ((long)ReadLEInt() << 32); + } + + /// + /// Write an unsigned short in little endian byte order. + /// + /// The value to write. + public void WriteLEShort(int value) + { + stream_.WriteByte((byte)(value & 0xff)); + stream_.WriteByte((byte)((value >> 8) & 0xff)); + } + + /// + /// Write a ushort in little endian byte order. + /// + /// The value to write. + public void WriteLEUshort(ushort value) + { + stream_.WriteByte((byte)(value & 0xff)); + stream_.WriteByte((byte)(value >> 8)); + } + + /// + /// Write an int in little endian byte order. + /// + /// The value to write. + public void WriteLEInt(int value) + { + WriteLEShort(value); + WriteLEShort(value >> 16); + } + + /// + /// Write a uint in little endian byte order. + /// + /// The value to write. + public void WriteLEUint(uint value) + { + WriteLEUshort((ushort)(value & 0xffff)); + WriteLEUshort((ushort)(value >> 16)); + } + + /// + /// Write a long in little endian byte order. + /// + /// The value to write. + public void WriteLELong(long value) + { + WriteLEInt((int)value); + WriteLEInt((int)(value >> 32)); + } + + /// + /// Write a ulong in little endian byte order. + /// + /// The value to write. + public void WriteLEUlong(ulong value) + { + WriteLEUint((uint)(value & 0xffffffff)); + WriteLEUint((uint)(value >> 32)); + } + + #endregion LE value reading/writing + + /// + /// Write a data descriptor. + /// + /// The entry to write a descriptor for. + /// Returns the number of descriptor bytes written. + public int WriteDataDescriptor(ZipEntry entry) + { + if (entry == null) + { + throw new ArgumentNullException(nameof(entry)); + } + + int result = 0; + + // Add data descriptor if flagged as required + if ((entry.Flags & (int)GeneralBitFlags.Descriptor) != 0) + { + // The signature is not PKZIP originally but is now described as optional + // in the PKZIP Appnote documenting the format. + WriteLEInt(ZipConstants.DataDescriptorSignature); + WriteLEInt(unchecked((int)(entry.Crc))); + + result += 8; + + if (entry.LocalHeaderRequiresZip64) + { + WriteLELong(entry.CompressedSize); + WriteLELong(entry.Size); + result += 16; + } + else + { + WriteLEInt((int)entry.CompressedSize); + WriteLEInt((int)entry.Size); + result += 8; + } + } + + return result; + } + + /// + /// Read data descriptor at the end of compressed data. + /// + /// if set to true [zip64]. + /// The data to fill in. + /// Returns the number of bytes read in the descriptor. + public void ReadDataDescriptor(bool zip64, DescriptorData data) + { + int intValue = ReadLEInt(); + + // In theory this may not be a descriptor according to PKZIP appnote. + // In practice its always there. + if (intValue != ZipConstants.DataDescriptorSignature) + { + throw new ZipException("Data descriptor signature not found"); + } + + data.Crc = ReadLEInt(); + + if (zip64) + { + data.CompressedSize = ReadLELong(); + data.Size = ReadLELong(); + } + else + { + data.CompressedSize = ReadLEInt(); + data.Size = ReadLEInt(); + } + } + + #region Instance Fields + + private bool isOwner_; + private Stream stream_; + + #endregion Instance Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs.meta new file mode 100644 index 0000000..82bf3a9 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a9b7aa5fb3b194a839a80213fbfde6ac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs new file mode 100644 index 0000000..cccac66 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs @@ -0,0 +1,727 @@ +using ICSharpCode.SharpZipLib.Checksum; +using ICSharpCode.SharpZipLib.Encryption; +using ICSharpCode.SharpZipLib.Zip.Compression; +using ICSharpCode.SharpZipLib.Zip.Compression.Streams; +using System; +using System.IO; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// This is an InflaterInputStream that reads the files baseInputStream an zip archive + /// one after another. It has a special method to get the zip entry of + /// the next file. The zip entry contains information about the file name + /// size, compressed size, Crc, etc. + /// It includes support for Stored and Deflated entries. + ///
+ ///
Author of the original java version : Jochen Hoenicke + ///
+ /// + /// This sample shows how to read a zip file + /// + /// using System; + /// using System.Text; + /// using System.IO; + /// + /// using ICSharpCode.SharpZipLib.Zip; + /// + /// class MainClass + /// { + /// public static void Main(string[] args) + /// { + /// using ( ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]))) { + /// + /// ZipEntry theEntry; + /// const int size = 2048; + /// byte[] data = new byte[2048]; + /// + /// while ((theEntry = s.GetNextEntry()) != null) { + /// if ( entry.IsFile ) { + /// Console.Write("Show contents (y/n) ?"); + /// if (Console.ReadLine() == "y") { + /// while (true) { + /// size = s.Read(data, 0, data.Length); + /// if (size > 0) { + /// Console.Write(new ASCIIEncoding().GetString(data, 0, size)); + /// } else { + /// break; + /// } + /// } + /// } + /// } + /// } + /// } + /// } + /// } + /// + /// + public class ZipInputStream : InflaterInputStream + { + #region Instance Fields + + /// + /// Delegate for reading bytes from a stream. + /// + private delegate int ReadDataHandler(byte[] b, int offset, int length); + + /// + /// The current reader this instance. + /// + private ReadDataHandler internalReader; + + private Crc32 crc = new Crc32(); + private ZipEntry entry; + + private long size; + private CompressionMethod method; + private int flags; + private string password; + + #endregion Instance Fields + + #region Constructors + + /// + /// Creates a new Zip input stream, for reading a zip archive. + /// + /// The underlying providing data. + public ZipInputStream(Stream baseInputStream) + : base(baseInputStream, new Inflater(true)) + { + internalReader = new ReadDataHandler(ReadingNotAvailable); + } + + /// + /// Creates a new Zip input stream, for reading a zip archive. + /// + /// The underlying providing data. + /// Size of the buffer. + public ZipInputStream(Stream baseInputStream, int bufferSize) + : base(baseInputStream, new Inflater(true), bufferSize) + { + internalReader = new ReadDataHandler(ReadingNotAvailable); + } + + #endregion Constructors + + /// + /// Optional password used for encryption when non-null + /// + /// A password for all encrypted entries in this + public string Password + { + get + { + return password; + } + set + { + password = value; + } + } + + /// + /// Gets a value indicating if there is a current entry and it can be decompressed + /// + /// + /// The entry can only be decompressed if the library supports the zip features required to extract it. + /// See the ZipEntry Version property for more details. + /// + /// Since uses the local headers for extraction, entries with no compression combined with the + /// flag set, cannot be extracted as the end of the entry data cannot be deduced. + /// + public bool CanDecompressEntry + => entry != null + && IsEntryCompressionMethodSupported(entry) + && entry.CanDecompress + && (!entry.HasFlag(GeneralBitFlags.Descriptor) || entry.CompressionMethod != CompressionMethod.Stored || entry.IsCrypted); + + /// + /// Is the compression method for the specified entry supported? + /// + /// + /// Uses entry.CompressionMethodForHeader so that entries of type WinZipAES will be rejected. + /// + /// the entry to check. + /// true if the compression method is supported, false if not. + private static bool IsEntryCompressionMethodSupported(ZipEntry entry) + { + var entryCompressionMethod = entry.CompressionMethodForHeader; + + return entryCompressionMethod == CompressionMethod.Deflated || + entryCompressionMethod == CompressionMethod.Stored; + } + + /// + /// Advances to the next entry in the archive + /// + /// + /// The next entry in the archive or null if there are no more entries. + /// + /// + /// If the previous entry is still open CloseEntry is called. + /// + /// + /// Input stream is closed + /// + /// + /// Password is not set, password is invalid, compression method is invalid, + /// version required to extract is not supported + /// + public ZipEntry GetNextEntry() + { + if (crc == null) + { + throw new InvalidOperationException("Closed."); + } + + if (entry != null) + { + CloseEntry(); + } + + int header = inputBuffer.ReadLeInt(); + + if (header == ZipConstants.CentralHeaderSignature || + header == ZipConstants.EndOfCentralDirectorySignature || + header == ZipConstants.CentralHeaderDigitalSignature || + header == ZipConstants.ArchiveExtraDataSignature || + header == ZipConstants.Zip64CentralFileHeaderSignature) + { + // No more individual entries exist + Dispose(); + return null; + } + + // -jr- 07-Dec-2003 Ignore spanning temporary signatures if found + // Spanning signature is same as descriptor signature and is untested as yet. + if ((header == ZipConstants.SpanningTempSignature) || (header == ZipConstants.SpanningSignature)) + { + header = inputBuffer.ReadLeInt(); + } + + if (header != ZipConstants.LocalHeaderSignature) + { + throw new ZipException("Wrong Local header signature: 0x" + String.Format("{0:X}", header)); + } + + var versionRequiredToExtract = (short)inputBuffer.ReadLeShort(); + + flags = inputBuffer.ReadLeShort(); + method = (CompressionMethod)inputBuffer.ReadLeShort(); + var dostime = (uint)inputBuffer.ReadLeInt(); + int crc2 = inputBuffer.ReadLeInt(); + csize = inputBuffer.ReadLeInt(); + size = inputBuffer.ReadLeInt(); + int nameLen = inputBuffer.ReadLeShort(); + int extraLen = inputBuffer.ReadLeShort(); + + bool isCrypted = (flags & 1) == 1; + + byte[] buffer = new byte[nameLen]; + inputBuffer.ReadRawBuffer(buffer); + + string name = ZipStrings.ConvertToStringExt(flags, buffer); + + entry = new ZipEntry(name, versionRequiredToExtract, ZipConstants.VersionMadeBy, method) + { + Flags = flags, + }; + + if ((flags & 8) == 0) + { + entry.Crc = crc2 & 0xFFFFFFFFL; + entry.Size = size & 0xFFFFFFFFL; + entry.CompressedSize = csize & 0xFFFFFFFFL; + + entry.CryptoCheckValue = (byte)((crc2 >> 24) & 0xff); + } + else + { + // This allows for GNU, WinZip and possibly other archives, the PKZIP spec + // says these values are zero under these circumstances. + if (crc2 != 0) + { + entry.Crc = crc2 & 0xFFFFFFFFL; + } + + if (size != 0) + { + entry.Size = size & 0xFFFFFFFFL; + } + + if (csize != 0) + { + entry.CompressedSize = csize & 0xFFFFFFFFL; + } + + entry.CryptoCheckValue = (byte)((dostime >> 8) & 0xff); + } + + entry.DosTime = dostime; + + // If local header requires Zip64 is true then the extended header should contain + // both values. + + // Handle extra data if present. This can set/alter some fields of the entry. + if (extraLen > 0) + { + byte[] extra = new byte[extraLen]; + inputBuffer.ReadRawBuffer(extra); + entry.ExtraData = extra; + } + + entry.ProcessExtraData(true); + if (entry.CompressedSize >= 0) + { + csize = entry.CompressedSize; + } + + if (entry.Size >= 0) + { + size = entry.Size; + } + + if (method == CompressionMethod.Stored && (!isCrypted && csize != size || (isCrypted && csize - ZipConstants.CryptoHeaderSize != size))) + { + throw new ZipException("Stored, but compressed != uncompressed"); + } + + // Determine how to handle reading of data if this is attempted. + if (IsEntryCompressionMethodSupported(entry)) + { + internalReader = new ReadDataHandler(InitialRead); + } + else + { + internalReader = new ReadDataHandler(ReadingNotSupported); + } + + return entry; + } + + /// + /// Read data descriptor at the end of compressed data. + /// + private void ReadDataDescriptor() + { + if (inputBuffer.ReadLeInt() != ZipConstants.DataDescriptorSignature) + { + throw new ZipException("Data descriptor signature not found"); + } + + entry.Crc = inputBuffer.ReadLeInt() & 0xFFFFFFFFL; + + if (entry.LocalHeaderRequiresZip64) + { + csize = inputBuffer.ReadLeLong(); + size = inputBuffer.ReadLeLong(); + } + else + { + csize = inputBuffer.ReadLeInt(); + size = inputBuffer.ReadLeInt(); + } + entry.CompressedSize = csize; + entry.Size = size; + } + + /// + /// Complete cleanup as the final part of closing. + /// + /// True if the crc value should be tested + private void CompleteCloseEntry(bool testCrc) + { + StopDecrypting(); + + if ((flags & 8) != 0) + { + ReadDataDescriptor(); + } + + size = 0; + + if (testCrc && + ((crc.Value & 0xFFFFFFFFL) != entry.Crc) && (entry.Crc != -1)) + { + throw new ZipException("CRC mismatch"); + } + + crc.Reset(); + + if (method == CompressionMethod.Deflated) + { + inf.Reset(); + } + entry = null; + } + + /// + /// Closes the current zip entry and moves to the next one. + /// + /// + /// The stream is closed + /// + /// + /// The Zip stream ends early + /// + public void CloseEntry() + { + if (crc == null) + { + throw new InvalidOperationException("Closed"); + } + + if (entry == null) + { + return; + } + + if (method == CompressionMethod.Deflated) + { + if ((flags & 8) != 0) + { + // We don't know how much we must skip, read until end. + byte[] tmp = new byte[4096]; + + // Read will close this entry + while (Read(tmp, 0, tmp.Length) > 0) + { + } + return; + } + + csize -= inf.TotalIn; + inputBuffer.Available += inf.RemainingInput; + } + + if ((inputBuffer.Available > csize) && (csize >= 0)) + { + inputBuffer.Available = (int)((long)inputBuffer.Available - csize); + } + else + { + csize -= inputBuffer.Available; + inputBuffer.Available = 0; + while (csize != 0) + { + long skipped = Skip(csize); + + if (skipped <= 0) + { + throw new ZipException("Zip archive ends early."); + } + + csize -= skipped; + } + } + + CompleteCloseEntry(false); + } + + /// + /// Returns 1 if there is an entry available + /// Otherwise returns 0. + /// + public override int Available + { + get + { + return entry != null ? 1 : 0; + } + } + + /// + /// Returns the current size that can be read from the current entry if available + /// + /// Thrown if the entry size is not known. + /// Thrown if no entry is currently available. + public override long Length + { + get + { + if (entry != null) + { + if (entry.Size >= 0) + { + return entry.Size; + } + else + { + throw new ZipException("Length not available for the current entry"); + } + } + else + { + throw new InvalidOperationException("No current entry"); + } + } + } + + /// + /// Reads a byte from the current zip entry. + /// + /// + /// The byte or -1 if end of stream is reached. + /// + public override int ReadByte() + { + byte[] b = new byte[1]; + if (Read(b, 0, 1) <= 0) + { + return -1; + } + return b[0] & 0xff; + } + + /// + /// Handle attempts to read by throwing an . + /// + /// The destination array to store data in. + /// The offset at which data read should be stored. + /// The maximum number of bytes to read. + /// Returns the number of bytes actually read. + private int ReadingNotAvailable(byte[] destination, int offset, int count) + { + throw new InvalidOperationException("Unable to read from this stream"); + } + + /// + /// Handle attempts to read from this entry by throwing an exception + /// + private int ReadingNotSupported(byte[] destination, int offset, int count) + { + throw new ZipException("The compression method for this entry is not supported"); + } + + /// + /// Handle attempts to read from this entry by throwing an exception + /// + private int StoredDescriptorEntry(byte[] destination, int offset, int count) => + throw new StreamUnsupportedException( + "The combination of Stored compression method and Descriptor flag is not possible to read using ZipInputStream"); + + + /// + /// Perform the initial read on an entry which may include + /// reading encryption headers and setting up inflation. + /// + /// The destination to fill with data read. + /// The offset to start reading at. + /// The maximum number of bytes to read. + /// The actual number of bytes read. + private int InitialRead(byte[] destination, int offset, int count) + { + var usesDescriptor = (entry.Flags & (int)GeneralBitFlags.Descriptor) != 0; + + // Handle encryption if required. + if (entry.IsCrypted) + { + if (password == null) + { + throw new ZipException("No password set."); + } + + // Generate and set crypto transform... + var managed = new PkzipClassicManaged(); + byte[] key = PkzipClassic.GenerateKeys(ZipStrings.ConvertToArray(password)); + + inputBuffer.CryptoTransform = managed.CreateDecryptor(key, null); + + byte[] cryptbuffer = new byte[ZipConstants.CryptoHeaderSize]; + inputBuffer.ReadClearTextBuffer(cryptbuffer, 0, ZipConstants.CryptoHeaderSize); + + if (cryptbuffer[ZipConstants.CryptoHeaderSize - 1] != entry.CryptoCheckValue) + { + throw new ZipException("Invalid password"); + } + + if (csize >= ZipConstants.CryptoHeaderSize) + { + csize -= ZipConstants.CryptoHeaderSize; + } + else if (!usesDescriptor) + { + throw new ZipException($"Entry compressed size {csize} too small for encryption"); + } + } + else + { + inputBuffer.CryptoTransform = null; + } + + if (csize > 0 || usesDescriptor) + { + if (method == CompressionMethod.Deflated && inputBuffer.Available > 0) + { + inputBuffer.SetInflaterInput(inf); + } + + // It's not possible to know how many bytes to read when using "Stored" compression (unless using encryption) + if (!entry.IsCrypted && method == CompressionMethod.Stored && usesDescriptor) + { + internalReader = StoredDescriptorEntry; + return StoredDescriptorEntry(destination, offset, count); + } + + if (!CanDecompressEntry) + { + internalReader = ReadingNotSupported; + return ReadingNotSupported(destination, offset, count); + } + + internalReader = BodyRead; + return BodyRead(destination, offset, count); + } + + + internalReader = ReadingNotAvailable; + return 0; + } + + /// + /// Read a block of bytes from the stream. + /// + /// The destination for the bytes. + /// The index to start storing data. + /// The number of bytes to attempt to read. + /// Returns the number of bytes read. + /// Zero bytes read means end of stream. + public override int Read(byte[] buffer, int offset, int count) + { + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (offset < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset), "Cannot be negative"); + } + + if (count < 0) + { + throw new ArgumentOutOfRangeException(nameof(count), "Cannot be negative"); + } + + if ((buffer.Length - offset) < count) + { + throw new ArgumentException("Invalid offset/count combination"); + } + + return internalReader(buffer, offset, count); + } + + /// + /// Reads a block of bytes from the current zip entry. + /// + /// + /// The number of bytes read (this may be less than the length requested, even before the end of stream), or 0 on end of stream. + /// + /// + /// An i/o error occurred. + /// + /// + /// The deflated stream is corrupted. + /// + /// + /// The stream is not open. + /// + private int BodyRead(byte[] buffer, int offset, int count) + { + if (crc == null) + { + throw new InvalidOperationException("Closed"); + } + + if ((entry == null) || (count <= 0)) + { + return 0; + } + + if (offset + count > buffer.Length) + { + throw new ArgumentException("Offset + count exceeds buffer size"); + } + + bool finished = false; + + switch (method) + { + case CompressionMethod.Deflated: + count = base.Read(buffer, offset, count); + if (count <= 0) + { + if (!inf.IsFinished) + { + throw new ZipException("Inflater not finished!"); + } + inputBuffer.Available = inf.RemainingInput; + + // A csize of -1 is from an unpatched local header + if ((flags & 8) == 0 && + (inf.TotalIn != csize && csize != 0xFFFFFFFF && csize != -1 || inf.TotalOut != size)) + { + throw new ZipException("Size mismatch: " + csize + ";" + size + " <-> " + inf.TotalIn + ";" + inf.TotalOut); + } + inf.Reset(); + finished = true; + } + break; + + case CompressionMethod.Stored: + if ((count > csize) && (csize >= 0)) + { + count = (int)csize; + } + + if (count > 0) + { + count = inputBuffer.ReadClearTextBuffer(buffer, offset, count); + if (count > 0) + { + csize -= count; + size -= count; + } + } + + if (csize == 0) + { + finished = true; + } + else + { + if (count < 0) + { + throw new ZipException("EOF in stored block"); + } + } + break; + } + + if (count > 0) + { + crc.Update(new ArraySegment(buffer, offset, count)); + } + + if (finished) + { + CompleteCloseEntry(true); + } + + return count; + } + + /// + /// Closes the zip input stream + /// + protected override void Dispose(bool disposing) + { + internalReader = new ReadDataHandler(ReadingNotAvailable); + crc = null; + entry = null; + + base.Dispose(disposing); + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs.meta new file mode 100644 index 0000000..81cdbf4 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 76f8c9ec3576b4d1294c77c9caf75a57 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs new file mode 100644 index 0000000..f91b20c --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs @@ -0,0 +1,313 @@ +using ICSharpCode.SharpZipLib.Core; +using System; +using System.IO; +using System.Text; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// ZipNameTransform transforms names as per the Zip file naming convention. + /// + /// The use of absolute names is supported although its use is not valid + /// according to Zip naming conventions, and should not be used if maximum compatability is desired. + public class ZipNameTransform : INameTransform + { + #region Constructors + + /// + /// Initialize a new instance of + /// + public ZipNameTransform() + { + } + + /// + /// Initialize a new instance of + /// + /// The string to trim from the front of paths if found. + public ZipNameTransform(string trimPrefix) + { + TrimPrefix = trimPrefix; + } + + #endregion Constructors + + /// + /// Static constructor. + /// + static ZipNameTransform() + { + char[] invalidPathChars; + invalidPathChars = Path.GetInvalidPathChars(); + int howMany = invalidPathChars.Length + 2; + + InvalidEntryCharsRelaxed = new char[howMany]; + Array.Copy(invalidPathChars, 0, InvalidEntryCharsRelaxed, 0, invalidPathChars.Length); + InvalidEntryCharsRelaxed[howMany - 1] = '*'; + InvalidEntryCharsRelaxed[howMany - 2] = '?'; + + howMany = invalidPathChars.Length + 4; + InvalidEntryChars = new char[howMany]; + Array.Copy(invalidPathChars, 0, InvalidEntryChars, 0, invalidPathChars.Length); + InvalidEntryChars[howMany - 1] = ':'; + InvalidEntryChars[howMany - 2] = '\\'; + InvalidEntryChars[howMany - 3] = '*'; + InvalidEntryChars[howMany - 4] = '?'; + } + + /// + /// Transform a windows directory name according to the Zip file naming conventions. + /// + /// The directory name to transform. + /// The transformed name. + public string TransformDirectory(string name) + { + name = TransformFile(name); + if (name.Length > 0) + { + if (!name.EndsWith("/", StringComparison.Ordinal)) + { + name += "/"; + } + } + else + { + throw new ZipException("Cannot have an empty directory name"); + } + return name; + } + + /// + /// Transform a windows file name according to the Zip file naming conventions. + /// + /// The file name to transform. + /// The transformed name. + public string TransformFile(string name) + { + if (name != null) + { + string lowerName = name.ToLower(); + if ((trimPrefix_ != null) && (lowerName.IndexOf(trimPrefix_, StringComparison.Ordinal) == 0)) + { + name = name.Substring(trimPrefix_.Length); + } + + name = name.Replace(@"\", "/"); + name = PathUtils.DropPathRoot(name); + + // Drop any leading and trailing slashes. + name = name.Trim('/'); + + // Convert consecutive // characters to / + int index = name.IndexOf("//", StringComparison.Ordinal); + while (index >= 0) + { + name = name.Remove(index, 1); + index = name.IndexOf("//", StringComparison.Ordinal); + } + + name = MakeValidName(name, '_'); + } + else + { + name = string.Empty; + } + return name; + } + + /// + /// Get/set the path prefix to be trimmed from paths if present. + /// + /// The prefix is trimmed before any conversion from + /// a windows path is done. + public string TrimPrefix + { + get { return trimPrefix_; } + set + { + trimPrefix_ = value; + if (trimPrefix_ != null) + { + trimPrefix_ = trimPrefix_.ToLower(); + } + } + } + + /// + /// Force a name to be valid by replacing invalid characters with a fixed value + /// + /// The name to force valid + /// The replacement character to use. + /// Returns a valid name + private static string MakeValidName(string name, char replacement) + { + int index = name.IndexOfAny(InvalidEntryChars); + if (index >= 0) + { + var builder = new StringBuilder(name); + + while (index >= 0) + { + builder[index] = replacement; + + if (index >= name.Length) + { + index = -1; + } + else + { + index = name.IndexOfAny(InvalidEntryChars, index + 1); + } + } + name = builder.ToString(); + } + + if (name.Length > 0xffff) + { + throw new PathTooLongException(); + } + + return name; + } + + /// + /// Test a name to see if it is a valid name for a zip entry. + /// + /// The name to test. + /// If true checking is relaxed about windows file names and absolute paths. + /// Returns true if the name is a valid zip name; false otherwise. + /// Zip path names are actually in Unix format, and should only contain relative paths. + /// This means that any path stored should not contain a drive or + /// device letter, or a leading slash. All slashes should forward slashes '/'. + /// An empty name is valid for a file where the input comes from standard input. + /// A null name is not considered valid. + /// + public static bool IsValidName(string name, bool relaxed) + { + bool result = (name != null); + + if (result) + { + if (relaxed) + { + result = name.IndexOfAny(InvalidEntryCharsRelaxed) < 0; + } + else + { + result = + (name.IndexOfAny(InvalidEntryChars) < 0) && + (name.IndexOf('/') != 0); + } + } + + return result; + } + + /// + /// Test a name to see if it is a valid name for a zip entry. + /// + /// The name to test. + /// Returns true if the name is a valid zip name; false otherwise. + /// Zip path names are actually in unix format, + /// and should only contain relative paths if a path is present. + /// This means that the path stored should not contain a drive or + /// device letter, or a leading slash. All slashes should forward slashes '/'. + /// An empty name is valid where the input comes from standard input. + /// A null name is not considered valid. + /// + public static bool IsValidName(string name) + { + bool result = + (name != null) && + (name.IndexOfAny(InvalidEntryChars) < 0) && + (name.IndexOf('/') != 0) + ; + return result; + } + + #region Instance Fields + + private string trimPrefix_; + + #endregion Instance Fields + + #region Class Fields + + private static readonly char[] InvalidEntryChars; + private static readonly char[] InvalidEntryCharsRelaxed; + + #endregion Class Fields + } + + /// + /// An implementation of INameTransform that transforms entry paths as per the Zip file naming convention. + /// Strips path roots and puts directory separators in the correct format ('/') + /// + public class PathTransformer : INameTransform + { + /// + /// Initialize a new instance of + /// + public PathTransformer() + { + } + + /// + /// Transform a windows directory name according to the Zip file naming conventions. + /// + /// The directory name to transform. + /// The transformed name. + public string TransformDirectory(string name) + { + name = TransformFile(name); + + if (name.Length > 0) + { + if (!name.EndsWith("/", StringComparison.Ordinal)) + { + name += "/"; + } + } + else + { + throw new ZipException("Cannot have an empty directory name"); + } + + return name; + } + + /// + /// Transform a windows file name according to the Zip file naming conventions. + /// + /// The file name to transform. + /// The transformed name. + public string TransformFile(string name) + { + if (name != null) + { + // Put separators in the expected format. + name = name.Replace(@"\", "/"); + + // Remove the path root. + name = PathUtils.DropPathRoot(name); + + // Drop any leading and trailing slashes. + name = name.Trim('/'); + + // Convert consecutive // characters to / + int index = name.IndexOf("//", StringComparison.Ordinal); + while (index >= 0) + { + name = name.Remove(index, 1); + index = name.IndexOf("//", StringComparison.Ordinal); + } + } + else + { + name = string.Empty; + } + + return name; + } + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs.meta new file mode 100644 index 0000000..0cda0df --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2a0357397b8784698979fa5ee8c1c39a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs new file mode 100644 index 0000000..79d65f5 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs @@ -0,0 +1,1079 @@ +using ICSharpCode.SharpZipLib.Checksum; +using ICSharpCode.SharpZipLib.Core; +using ICSharpCode.SharpZipLib.Encryption; +using ICSharpCode.SharpZipLib.Zip.Compression; +using ICSharpCode.SharpZipLib.Zip.Compression.Streams; +using System; +using System.Collections.Generic; +using System.IO; +using System.Security.Cryptography; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// This is a DeflaterOutputStream that writes the files into a zip + /// archive one after another. It has a special method to start a new + /// zip entry. The zip entries contains information about the file name + /// size, compressed size, CRC, etc. + /// + /// It includes support for Stored and Deflated entries. + /// This class is not thread safe. + ///
+ ///
Author of the original java version : Jochen Hoenicke + ///
+ /// This sample shows how to create a zip file + /// + /// using System; + /// using System.IO; + /// + /// using ICSharpCode.SharpZipLib.Core; + /// using ICSharpCode.SharpZipLib.Zip; + /// + /// class MainClass + /// { + /// public static void Main(string[] args) + /// { + /// string[] filenames = Directory.GetFiles(args[0]); + /// byte[] buffer = new byte[4096]; + /// + /// using ( ZipOutputStream s = new ZipOutputStream(File.Create(args[1])) ) { + /// + /// s.SetLevel(9); // 0 - store only to 9 - means best compression + /// + /// foreach (string file in filenames) { + /// ZipEntry entry = new ZipEntry(file); + /// s.PutNextEntry(entry); + /// + /// using (FileStream fs = File.OpenRead(file)) { + /// StreamUtils.Copy(fs, s, buffer); + /// } + /// } + /// } + /// } + /// } + /// + /// + public class ZipOutputStream : DeflaterOutputStream + { + #region Constructors + + /// + /// Creates a new Zip output stream, writing a zip archive. + /// + /// + /// The output stream to which the archive contents are written. + /// + public ZipOutputStream(Stream baseOutputStream) + : base(baseOutputStream, new Deflater(Deflater.DEFAULT_COMPRESSION, true)) + { + } + + /// + /// Creates a new Zip output stream, writing a zip archive. + /// + /// The output stream to which the archive contents are written. + /// Size of the buffer to use. + public ZipOutputStream(Stream baseOutputStream, int bufferSize) + : base(baseOutputStream, new Deflater(Deflater.DEFAULT_COMPRESSION, true), bufferSize) + { + } + + #endregion Constructors + + /// + /// Gets a flag value of true if the central header has been added for this archive; false if it has not been added. + /// + /// No further entries can be added once this has been done. + public bool IsFinished + { + get + { + return entries == null; + } + } + + /// + /// Set the zip file comment. + /// + /// + /// The comment text for the entire archive. + /// + /// + /// The converted comment is longer than 0xffff bytes. + /// + public void SetComment(string comment) + { + // TODO: Its not yet clear how to handle unicode comments here. + byte[] commentBytes = ZipStrings.ConvertToArray(comment); + if (commentBytes.Length > 0xffff) + { + throw new ArgumentOutOfRangeException(nameof(comment)); + } + zipComment = commentBytes; + } + + /// + /// Sets the compression level. The new level will be activated + /// immediately. + /// + /// The new compression level (1 to 9). + /// + /// Level specified is not supported. + /// + /// + public void SetLevel(int level) + { + deflater_.SetLevel(level); + defaultCompressionLevel = level; + } + + /// + /// Get the current deflater compression level + /// + /// The current compression level + public int GetLevel() + { + return deflater_.GetLevel(); + } + + /// + /// Get / set a value indicating how Zip64 Extension usage is determined when adding entries. + /// + /// Older archivers may not understand Zip64 extensions. + /// If backwards compatability is an issue be careful when adding entries to an archive. + /// Setting this property to off is workable but less desirable as in those circumstances adding a file + /// larger then 4GB will fail. + public UseZip64 UseZip64 + { + get { return useZip64_; } + set { useZip64_ = value; } + } + + /// + /// Used for transforming the names of entries added by . + /// Defaults to , set to null to disable transforms and use names as supplied. + /// + public INameTransform NameTransform { get; set; } = new PathTransformer(); + + /// + /// Get/set the password used for encryption. + /// + /// When set to null or if the password is empty no encryption is performed + public string Password + { + get + { + return password; + } + set + { + if ((value != null) && (value.Length == 0)) + { + password = null; + } + else + { + password = value; + } + } + } + + /// + /// Write an unsigned short in little endian byte order. + /// + private void WriteLeShort(int value) + { + unchecked + { + baseOutputStream_.WriteByte((byte)(value & 0xff)); + baseOutputStream_.WriteByte((byte)((value >> 8) & 0xff)); + } + } + + /// + /// Write an int in little endian byte order. + /// + private void WriteLeInt(int value) + { + unchecked + { + WriteLeShort(value); + WriteLeShort(value >> 16); + } + } + + /// + /// Write an int in little endian byte order. + /// + private void WriteLeLong(long value) + { + unchecked + { + WriteLeInt((int)value); + WriteLeInt((int)(value >> 32)); + } + } + + // Apply any configured transforms/cleaning to the name of the supplied entry. + private void TransformEntryName(ZipEntry entry) + { + if (this.NameTransform != null) + { + if (entry.IsDirectory) + { + entry.Name = this.NameTransform.TransformDirectory(entry.Name); + } + else + { + entry.Name = this.NameTransform.TransformFile(entry.Name); + } + } + } + + /// + /// Starts a new Zip entry. It automatically closes the previous + /// entry if present. + /// All entry elements bar name are optional, but must be correct if present. + /// If the compression method is stored and the output is not patchable + /// the compression for that entry is automatically changed to deflate level 0 + /// + /// + /// the entry. + /// + /// + /// if entry passed is null. + /// + /// + /// if an I/O error occured. + /// + /// + /// if stream was finished + /// + /// + /// Too many entries in the Zip file
+ /// Entry name is too long
+ /// Finish has already been called
+ ///
+ /// + /// The Compression method specified for the entry is unsupported. + /// + public void PutNextEntry(ZipEntry entry) + { + if (entry == null) + { + throw new ArgumentNullException(nameof(entry)); + } + + if (entries == null) + { + throw new InvalidOperationException("ZipOutputStream was finished"); + } + + if (curEntry != null) + { + CloseEntry(); + } + + if (entries.Count == int.MaxValue) + { + throw new ZipException("Too many entries for Zip file"); + } + + CompressionMethod method = entry.CompressionMethod; + + // Check that the compression is one that we support + if (method != CompressionMethod.Deflated && method != CompressionMethod.Stored) + { + throw new NotImplementedException("Compression method not supported"); + } + + // A password must have been set in order to add AES encrypted entries + if (entry.AESKeySize > 0 && string.IsNullOrEmpty(this.Password)) + { + throw new InvalidOperationException("The Password property must be set before AES encrypted entries can be added"); + } + + int compressionLevel = defaultCompressionLevel; + + // Clear flags that the library manages internally + entry.Flags &= (int)GeneralBitFlags.UnicodeText; + patchEntryHeader = false; + + bool headerInfoAvailable; + + // No need to compress - definitely no data. + if (entry.Size == 0) + { + entry.CompressedSize = entry.Size; + entry.Crc = 0; + method = CompressionMethod.Stored; + headerInfoAvailable = true; + } + else + { + headerInfoAvailable = (entry.Size >= 0) && entry.HasCrc && entry.CompressedSize >= 0; + + // Switch to deflation if storing isnt possible. + if (method == CompressionMethod.Stored) + { + if (!headerInfoAvailable) + { + if (!CanPatchEntries) + { + // Can't patch entries so storing is not possible. + method = CompressionMethod.Deflated; + compressionLevel = 0; + } + } + else // entry.size must be > 0 + { + entry.CompressedSize = entry.Size; + headerInfoAvailable = entry.HasCrc; + } + } + } + + if (headerInfoAvailable == false) + { + if (CanPatchEntries == false) + { + // Only way to record size and compressed size is to append a data descriptor + // after compressed data. + + // Stored entries of this form have already been converted to deflating. + entry.Flags |= 8; + } + else + { + patchEntryHeader = true; + } + } + + if (Password != null) + { + entry.IsCrypted = true; + if (entry.Crc < 0) + { + // Need to append a data descriptor as the crc isnt available for use + // with encryption, the date is used instead. Setting the flag + // indicates this to the decompressor. + entry.Flags |= 8; + } + } + + entry.Offset = offset; + entry.CompressionMethod = (CompressionMethod)method; + + curMethod = method; + sizePatchPos = -1; + + if ((useZip64_ == UseZip64.On) || ((entry.Size < 0) && (useZip64_ == UseZip64.Dynamic))) + { + entry.ForceZip64(); + } + + // Write the local file header + WriteLeInt(ZipConstants.LocalHeaderSignature); + + WriteLeShort(entry.Version); + WriteLeShort(entry.Flags); + WriteLeShort((byte)entry.CompressionMethodForHeader); + WriteLeInt((int)entry.DosTime); + + // TODO: Refactor header writing. Its done in several places. + if (headerInfoAvailable) + { + WriteLeInt((int)entry.Crc); + if (entry.LocalHeaderRequiresZip64) + { + WriteLeInt(-1); + WriteLeInt(-1); + } + else + { + WriteLeInt((int)entry.CompressedSize + entry.EncryptionOverheadSize); + WriteLeInt((int)entry.Size); + } + } + else + { + if (patchEntryHeader) + { + crcPatchPos = baseOutputStream_.Position; + } + WriteLeInt(0); // Crc + + if (patchEntryHeader) + { + sizePatchPos = baseOutputStream_.Position; + } + + // For local header both sizes appear in Zip64 Extended Information + if (entry.LocalHeaderRequiresZip64 || patchEntryHeader) + { + WriteLeInt(-1); + WriteLeInt(-1); + } + else + { + WriteLeInt(0); // Compressed size + WriteLeInt(0); // Uncompressed size + } + } + + // Apply any required transforms to the entry name, and then convert to byte array format. + TransformEntryName(entry); + byte[] name = ZipStrings.ConvertToArray(entry.Flags, entry.Name); + + if (name.Length > 0xFFFF) + { + throw new ZipException("Entry name too long."); + } + + var ed = new ZipExtraData(entry.ExtraData); + + if (entry.LocalHeaderRequiresZip64) + { + ed.StartNewEntry(); + if (headerInfoAvailable) + { + ed.AddLeLong(entry.Size); + ed.AddLeLong(entry.CompressedSize + entry.EncryptionOverheadSize); + } + else + { + ed.AddLeLong(-1); + ed.AddLeLong(-1); + } + ed.AddNewEntry(1); + + if (!ed.Find(1)) + { + throw new ZipException("Internal error cant find extra data"); + } + + if (patchEntryHeader) + { + sizePatchPos = ed.CurrentReadIndex; + } + } + else + { + ed.Delete(1); + } + + if (entry.AESKeySize > 0) + { + AddExtraDataAES(entry, ed); + } + byte[] extra = ed.GetEntryData(); + + WriteLeShort(name.Length); + WriteLeShort(extra.Length); + + if (name.Length > 0) + { + baseOutputStream_.Write(name, 0, name.Length); + } + + if (entry.LocalHeaderRequiresZip64 && patchEntryHeader) + { + sizePatchPos += baseOutputStream_.Position; + } + + if (extra.Length > 0) + { + baseOutputStream_.Write(extra, 0, extra.Length); + } + + offset += ZipConstants.LocalHeaderBaseSize + name.Length + extra.Length; + // Fix offsetOfCentraldir for AES + if (entry.AESKeySize > 0) + offset += entry.AESOverheadSize; + + // Activate the entry. + curEntry = entry; + crc.Reset(); + if (method == CompressionMethod.Deflated) + { + deflater_.Reset(); + deflater_.SetLevel(compressionLevel); + } + size = 0; + + if (entry.IsCrypted) + { + if (entry.AESKeySize > 0) + { + WriteAESHeader(entry); + } + else + { + if (entry.Crc < 0) + { // so testing Zip will says its ok + WriteEncryptionHeader(entry.DosTime << 16); + } + else + { + WriteEncryptionHeader(entry.Crc); + } + } + } + } + + /// + /// Closes the current entry, updating header and footer information as required + /// + /// + /// Invalid entry field values. + /// + /// + /// An I/O error occurs. + /// + /// + /// No entry is active. + /// + public void CloseEntry() + { + if (curEntry == null) + { + throw new InvalidOperationException("No open entry"); + } + + long csize = size; + + // First finish the deflater, if appropriate + if (curMethod == CompressionMethod.Deflated) + { + if (size >= 0) + { + base.Finish(); + csize = deflater_.TotalOut; + } + else + { + deflater_.Reset(); + } + } + else if (curMethod == CompressionMethod.Stored) + { + // This is done by Finish() for Deflated entries, but we need to do it + // ourselves for Stored ones + base.GetAuthCodeIfAES(); + } + + // Write the AES Authentication Code (a hash of the compressed and encrypted data) + if (curEntry.AESKeySize > 0) + { + baseOutputStream_.Write(AESAuthCode, 0, 10); + // Always use 0 as CRC for AE-2 format + curEntry.Crc = 0; + } + else + { + if (curEntry.Crc < 0) + { + curEntry.Crc = crc.Value; + } + else if (curEntry.Crc != crc.Value) + { + throw new ZipException($"crc was {crc.Value}, but {curEntry.Crc} was expected"); + } + } + + if (curEntry.Size < 0) + { + curEntry.Size = size; + } + else if (curEntry.Size != size) + { + throw new ZipException($"size was {size}, but {curEntry.Size} was expected"); + } + + if (curEntry.CompressedSize < 0) + { + curEntry.CompressedSize = csize; + } + else if (curEntry.CompressedSize != csize) + { + throw new ZipException($"compressed size was {csize}, but {curEntry.CompressedSize} expected"); + } + + offset += csize; + + if (curEntry.IsCrypted) + { + curEntry.CompressedSize += curEntry.EncryptionOverheadSize; + } + + // Patch the header if possible + if (patchEntryHeader) + { + patchEntryHeader = false; + + long curPos = baseOutputStream_.Position; + baseOutputStream_.Seek(crcPatchPos, SeekOrigin.Begin); + WriteLeInt((int)curEntry.Crc); + + if (curEntry.LocalHeaderRequiresZip64) + { + if (sizePatchPos == -1) + { + throw new ZipException("Entry requires zip64 but this has been turned off"); + } + + baseOutputStream_.Seek(sizePatchPos, SeekOrigin.Begin); + WriteLeLong(curEntry.Size); + WriteLeLong(curEntry.CompressedSize); + } + else + { + WriteLeInt((int)curEntry.CompressedSize); + WriteLeInt((int)curEntry.Size); + } + baseOutputStream_.Seek(curPos, SeekOrigin.Begin); + } + + // Add data descriptor if flagged as required + if ((curEntry.Flags & 8) != 0) + { + WriteLeInt(ZipConstants.DataDescriptorSignature); + WriteLeInt(unchecked((int)curEntry.Crc)); + + if (curEntry.LocalHeaderRequiresZip64) + { + WriteLeLong(curEntry.CompressedSize); + WriteLeLong(curEntry.Size); + offset += ZipConstants.Zip64DataDescriptorSize; + } + else + { + WriteLeInt((int)curEntry.CompressedSize); + WriteLeInt((int)curEntry.Size); + offset += ZipConstants.DataDescriptorSize; + } + } + + entries.Add(curEntry); + curEntry = null; + } + + /// + /// Initializes encryption keys based on given . + /// + /// The password. + private void InitializePassword(string password) + { + var pkManaged = new PkzipClassicManaged(); + byte[] key = PkzipClassic.GenerateKeys(ZipStrings.ConvertToArray(password)); + cryptoTransform_ = pkManaged.CreateEncryptor(key, null); + } + + /// + /// Initializes encryption keys based on given password. + /// + private void InitializeAESPassword(ZipEntry entry, string rawPassword, + out byte[] salt, out byte[] pwdVerifier) + { + salt = new byte[entry.AESSaltLen]; + + // Salt needs to be cryptographically random, and unique per file + _aesRnd.GetBytes(salt); + + int blockSize = entry.AESKeySize / 8; // bits to bytes + + cryptoTransform_ = new ZipAESTransform(rawPassword, salt, blockSize, true); + pwdVerifier = ((ZipAESTransform)cryptoTransform_).PwdVerifier; + } + + private void WriteEncryptionHeader(long crcValue) + { + offset += ZipConstants.CryptoHeaderSize; + + InitializePassword(Password); + + byte[] cryptBuffer = new byte[ZipConstants.CryptoHeaderSize]; + using (var rng = new RNGCryptoServiceProvider()) + { + rng.GetBytes(cryptBuffer); + } + + cryptBuffer[11] = (byte)(crcValue >> 24); + + EncryptBlock(cryptBuffer, 0, cryptBuffer.Length); + baseOutputStream_.Write(cryptBuffer, 0, cryptBuffer.Length); + } + + private static void AddExtraDataAES(ZipEntry entry, ZipExtraData extraData) + { + // Vendor Version: AE-1 IS 1. AE-2 is 2. With AE-2 no CRC is required and 0 is stored. + const int VENDOR_VERSION = 2; + // Vendor ID is the two ASCII characters "AE". + const int VENDOR_ID = 0x4541; //not 6965; + extraData.StartNewEntry(); + // Pack AES extra data field see http://www.winzip.com/aes_info.htm + //extraData.AddLeShort(7); // Data size (currently 7) + extraData.AddLeShort(VENDOR_VERSION); // 2 = AE-2 + extraData.AddLeShort(VENDOR_ID); // "AE" + extraData.AddData(entry.AESEncryptionStrength); // 1 = 128, 2 = 192, 3 = 256 + extraData.AddLeShort((int)entry.CompressionMethod); // The actual compression method used to compress the file + extraData.AddNewEntry(0x9901); + } + + // Replaces WriteEncryptionHeader for AES + // + private void WriteAESHeader(ZipEntry entry) + { + byte[] salt; + byte[] pwdVerifier; + InitializeAESPassword(entry, Password, out salt, out pwdVerifier); + // File format for AES: + // Size (bytes) Content + // ------------ ------- + // Variable Salt value + // 2 Password verification value + // Variable Encrypted file data + // 10 Authentication code + // + // Value in the "compressed size" fields of the local file header and the central directory entry + // is the total size of all the items listed above. In other words, it is the total size of the + // salt value, password verification value, encrypted data, and authentication code. + baseOutputStream_.Write(salt, 0, salt.Length); + baseOutputStream_.Write(pwdVerifier, 0, pwdVerifier.Length); + } + + /// + /// Writes the given buffer to the current entry. + /// + /// The buffer containing data to write. + /// The offset of the first byte to write. + /// The number of bytes to write. + /// Archive size is invalid + /// No entry is active. + public override void Write(byte[] buffer, int offset, int count) + { + if (curEntry == null) + { + throw new InvalidOperationException("No open entry."); + } + + if (buffer == null) + { + throw new ArgumentNullException(nameof(buffer)); + } + + if (offset < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset), "Cannot be negative"); + } + + if (count < 0) + { + throw new ArgumentOutOfRangeException(nameof(count), "Cannot be negative"); + } + + if ((buffer.Length - offset) < count) + { + throw new ArgumentException("Invalid offset/count combination"); + } + + if (curEntry.AESKeySize == 0) + { + // Only update CRC if AES is not enabled + crc.Update(new ArraySegment(buffer, offset, count)); + } + + size += count; + + switch (curMethod) + { + case CompressionMethod.Deflated: + base.Write(buffer, offset, count); + break; + + case CompressionMethod.Stored: + if (Password != null) + { + CopyAndEncrypt(buffer, offset, count); + } + else + { + baseOutputStream_.Write(buffer, offset, count); + } + break; + } + } + + private void CopyAndEncrypt(byte[] buffer, int offset, int count) + { + const int CopyBufferSize = 4096; + byte[] localBuffer = new byte[CopyBufferSize]; + while (count > 0) + { + int bufferCount = (count < CopyBufferSize) ? count : CopyBufferSize; + + Array.Copy(buffer, offset, localBuffer, 0, bufferCount); + EncryptBlock(localBuffer, 0, bufferCount); + baseOutputStream_.Write(localBuffer, 0, bufferCount); + count -= bufferCount; + offset += bufferCount; + } + } + + /// + /// Finishes the stream. This will write the central directory at the + /// end of the zip file and flush the stream. + /// + /// + /// This is automatically called when the stream is closed. + /// + /// + /// An I/O error occurs. + /// + /// + /// Comment exceeds the maximum length
+ /// Entry name exceeds the maximum length + ///
+ public override void Finish() + { + if (entries == null) + { + return; + } + + if (curEntry != null) + { + CloseEntry(); + } + + long numEntries = entries.Count; + long sizeEntries = 0; + + foreach (ZipEntry entry in entries) + { + WriteLeInt(ZipConstants.CentralHeaderSignature); + WriteLeShort((entry.HostSystem << 8) | entry.VersionMadeBy); + WriteLeShort(entry.Version); + WriteLeShort(entry.Flags); + WriteLeShort((short)entry.CompressionMethodForHeader); + WriteLeInt((int)entry.DosTime); + WriteLeInt((int)entry.Crc); + + if (entry.IsZip64Forced() || + (entry.CompressedSize >= uint.MaxValue)) + { + WriteLeInt(-1); + } + else + { + WriteLeInt((int)entry.CompressedSize); + } + + if (entry.IsZip64Forced() || + (entry.Size >= uint.MaxValue)) + { + WriteLeInt(-1); + } + else + { + WriteLeInt((int)entry.Size); + } + + byte[] name = ZipStrings.ConvertToArray(entry.Flags, entry.Name); + + if (name.Length > 0xffff) + { + throw new ZipException("Name too long."); + } + + var ed = new ZipExtraData(entry.ExtraData); + + if (entry.CentralHeaderRequiresZip64) + { + ed.StartNewEntry(); + if (entry.IsZip64Forced() || + (entry.Size >= 0xffffffff)) + { + ed.AddLeLong(entry.Size); + } + + if (entry.IsZip64Forced() || + (entry.CompressedSize >= 0xffffffff)) + { + ed.AddLeLong(entry.CompressedSize); + } + + if (entry.Offset >= 0xffffffff) + { + ed.AddLeLong(entry.Offset); + } + + ed.AddNewEntry(1); + } + else + { + ed.Delete(1); + } + + if (entry.AESKeySize > 0) + { + AddExtraDataAES(entry, ed); + } + byte[] extra = ed.GetEntryData(); + + byte[] entryComment = + (entry.Comment != null) ? + ZipStrings.ConvertToArray(entry.Flags, entry.Comment) : + Empty.Array(); + + if (entryComment.Length > 0xffff) + { + throw new ZipException("Comment too long."); + } + + WriteLeShort(name.Length); + WriteLeShort(extra.Length); + WriteLeShort(entryComment.Length); + WriteLeShort(0); // disk number + WriteLeShort(0); // internal file attributes + // external file attributes + + if (entry.ExternalFileAttributes != -1) + { + WriteLeInt(entry.ExternalFileAttributes); + } + else + { + if (entry.IsDirectory) + { // mark entry as directory (from nikolam.AT.perfectinfo.com) + WriteLeInt(16); + } + else + { + WriteLeInt(0); + } + } + + if (entry.Offset >= uint.MaxValue) + { + WriteLeInt(-1); + } + else + { + WriteLeInt((int)entry.Offset); + } + + if (name.Length > 0) + { + baseOutputStream_.Write(name, 0, name.Length); + } + + if (extra.Length > 0) + { + baseOutputStream_.Write(extra, 0, extra.Length); + } + + if (entryComment.Length > 0) + { + baseOutputStream_.Write(entryComment, 0, entryComment.Length); + } + + sizeEntries += ZipConstants.CentralHeaderBaseSize + name.Length + extra.Length + entryComment.Length; + } + + using (ZipHelperStream zhs = new ZipHelperStream(baseOutputStream_)) + { + zhs.WriteEndOfCentralDirectory(numEntries, sizeEntries, offset, zipComment); + } + + entries = null; + } + + /// + /// Flushes the stream by calling Flush on the deflater stream unless + /// the current compression method is . Then it flushes the underlying output stream. + /// + public override void Flush() + { + if(curMethod == CompressionMethod.Stored) + { + baseOutputStream_.Flush(); + } + else + { + base.Flush(); + } + } + + #region Instance Fields + + /// + /// The entries for the archive. + /// + private List entries = new List(); + + /// + /// Used to track the crc of data added to entries. + /// + private Crc32 crc = new Crc32(); + + /// + /// The current entry being added. + /// + private ZipEntry curEntry; + + private int defaultCompressionLevel = Deflater.DEFAULT_COMPRESSION; + + private CompressionMethod curMethod = CompressionMethod.Deflated; + + /// + /// Used to track the size of data for an entry during writing. + /// + private long size; + + /// + /// Offset to be recorded for each entry in the central header. + /// + private long offset; + + /// + /// Comment for the entire archive recorded in central header. + /// + private byte[] zipComment = Empty.Array(); + + /// + /// Flag indicating that header patching is required for the current entry. + /// + private bool patchEntryHeader; + + /// + /// Position to patch crc + /// + private long crcPatchPos = -1; + + /// + /// Position to patch size. + /// + private long sizePatchPos = -1; + + // Default is dynamic which is not backwards compatible and can cause problems + // with XP's built in compression which cant read Zip64 archives. + // However it does avoid the situation were a large file is added and cannot be completed correctly. + // NOTE: Setting the size for entries before they are added is the best solution! + private UseZip64 useZip64_ = UseZip64.Dynamic; + + /// + /// The password to use when encrypting archive entries. + /// + private string password; + + #endregion Instance Fields + + #region Static Fields + + // Static to help ensure that multiple files within a zip will get different random salt + private static RandomNumberGenerator _aesRnd = RandomNumberGenerator.Create(); + + #endregion Static Fields + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs.meta new file mode 100644 index 0000000..d521ba6 --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: acd559a98b14a4ee291348288cfaf7ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipStrings.cs b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipStrings.cs new file mode 100644 index 0000000..2d0c4cf --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipStrings.cs @@ -0,0 +1,194 @@ +using System; +using System.Text; +using ICSharpCode.SharpZipLib.Core; + +namespace ICSharpCode.SharpZipLib.Zip +{ + /// + /// This static class contains functions for encoding and decoding zip file strings + /// + public static class ZipStrings + { + static ZipStrings() + { + try + { + var platformCodepage = Encoding.GetEncoding(0).CodePage; + SystemDefaultCodePage = (platformCodepage == 1 || platformCodepage == 2 || platformCodepage == 3 || platformCodepage == 42) ? FallbackCodePage : platformCodepage; + } + catch + { + SystemDefaultCodePage = FallbackCodePage; + } + } + + /// Code page backing field + /// + /// The original Zip specification (https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) states + /// that file names should only be encoded with IBM Code Page 437 or UTF-8. + /// In practice, most zip apps use OEM or system encoding (typically cp437 on Windows). + /// Let's be good citizens and default to UTF-8 http://utf8everywhere.org/ + /// + private static int codePage = AutomaticCodePage; + + /// Automatically select codepage while opening archive + /// see https://github.com/icsharpcode/SharpZipLib/pull/280#issuecomment-433608324 + /// + private const int AutomaticCodePage = -1; + + /// + /// Encoding used for string conversion. Setting this to 65001 (UTF-8) will + /// also set the Language encoding flag to indicate UTF-8 encoded file names. + /// + public static int CodePage + { + get + { + return codePage == AutomaticCodePage? Encoding.UTF8.CodePage:codePage; + } + set + { + if ((value < 0) || (value > 65535) || + (value == 1) || (value == 2) || (value == 3) || (value == 42)) + { + throw new ArgumentOutOfRangeException(nameof(value)); + } + + codePage = value; + } + } + + private const int FallbackCodePage = 437; + + /// + /// Attempt to get the operating system default codepage, or failing that, to + /// the fallback code page IBM 437. + /// + public static int SystemDefaultCodePage { get; } + + /// + /// Get whether the default codepage is set to UTF-8. Setting this property to false will + /// set the to + /// + /// + /// Get OEM codepage from NetFX, which parses the NLP file with culture info table etc etc. + /// But sometimes it yields the special value of 1 which is nicknamed CodePageNoOEM in sources (might also mean CP_OEMCP, but Encoding puts it so). + /// This was observed on Ukranian and Hindu systems. + /// Given this value, throws an . + /// So replace it with , (IBM 437 which is the default code page in a default Windows installation console. + /// + public static bool UseUnicode + { + get + { + return codePage == Encoding.UTF8.CodePage; + } + set + { + if (value) + { + codePage = Encoding.UTF8.CodePage; + } + else + { + codePage = SystemDefaultCodePage; + } + } + } + + /// + /// Convert a portion of a byte array to a string using + /// + /// + /// Data to convert to string + /// + /// + /// Number of bytes to convert starting from index 0 + /// + /// + /// data[0]..data[count - 1] converted to a string + /// + public static string ConvertToString(byte[] data, int count) + => data == null + ? string.Empty + : Encoding.GetEncoding(CodePage).GetString(data, 0, count); + + /// + /// Convert a byte array to a string using + /// + /// + /// Byte array to convert + /// + /// + /// dataconverted to a string + /// + public static string ConvertToString(byte[] data) + => ConvertToString(data, data.Length); + + private static Encoding EncodingFromFlag(int flags) + => ((flags & (int)GeneralBitFlags.UnicodeText) != 0) + ? Encoding.UTF8 + : Encoding.GetEncoding( + // if CodePage wasn't set manually and no utf flag present + // then we must use SystemDefault (old behavior) + // otherwise, CodePage should be preferred over SystemDefault + // see https://github.com/icsharpcode/SharpZipLib/issues/274 + codePage == AutomaticCodePage? + SystemDefaultCodePage: + codePage); + + /// + /// Convert a byte array to a string using + /// + /// The applicable general purpose bits flags + /// + /// Byte array to convert + /// + /// The number of bytes to convert. + /// + /// dataconverted to a string + /// + public static string ConvertToStringExt(int flags, byte[] data, int count) + => (data == null) + ? string.Empty + : EncodingFromFlag(flags).GetString(data, 0, count); + + /// + /// Convert a byte array to a string using + /// + /// + /// Byte array to convert + /// + /// The applicable general purpose bits flags + /// + /// dataconverted to a string + /// + public static string ConvertToStringExt(int flags, byte[] data) + => ConvertToStringExt(flags, data, data.Length); + + /// + /// Convert a string to a byte array using + /// + /// + /// String to convert to an array + /// + /// Converted array + public static byte[] ConvertToArray(string str) + => str == null + ? Empty.Array() + : Encoding.GetEncoding(CodePage).GetBytes(str); + + /// + /// Convert a string to a byte array using + /// + /// The applicable general purpose bits flags + /// + /// String to convert to an array + /// + /// Converted array + public static byte[] ConvertToArray(int flags, string str) + => (string.IsNullOrEmpty(str)) + ? Empty.Array() + : EncodingFromFlag(flags).GetBytes(str); + } +} diff --git a/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipStrings.cs.meta b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipStrings.cs.meta new file mode 100644 index 0000000..317fe2d --- /dev/null +++ b/ThirdParty/SharpZip/src/ICSharpCode.SharpZipLib/Zip/ZipStrings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 21fa088a78d414feca82be633d1b2a00 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI.meta b/UI.meta new file mode 100644 index 0000000..0e68e80 --- /dev/null +++ b/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b6525cd0a2ae484788f3ac166b7c0ad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Animations.meta b/UI/Animations.meta new file mode 100644 index 0000000..102918a --- /dev/null +++ b/UI/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4ac34030f431389478ea7741ff326ab6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Animations/BrowserModListItem_Deflate.anim b/UI/Animations/BrowserModListItem_Deflate.anim new file mode 100644 index 0000000..fbf021f --- /dev/null +++ b/UI/Animations/BrowserModListItem_Deflate.anim @@ -0,0 +1,242 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BrowserModListItem_Deflate + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 422 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 338 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 377.38 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 300 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 225 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 197 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: icon + classID: 224 + script: {fileID: 0} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 1967290853 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 38095219 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 1704208859 + attribute: 38095219 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.16666667 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 422 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 338 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 377.38 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 300 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 225 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 197 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: icon + classID: 224 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/UI/Animations/BrowserModListItem_Deflate.anim.meta b/UI/Animations/BrowserModListItem_Deflate.anim.meta new file mode 100644 index 0000000..8cbf42d --- /dev/null +++ b/UI/Animations/BrowserModListItem_Deflate.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44771267907cfd74ebf0d62f449c0b3e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Animations/BrowserModListItem_Inflate.anim b/UI/Animations/BrowserModListItem_Inflate.anim new file mode 100644 index 0000000..7b6ed95 --- /dev/null +++ b/UI/Animations/BrowserModListItem_Inflate.anim @@ -0,0 +1,431 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BrowserModListItem_Inflate + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 338 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 422 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 300 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 377.38 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 197 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 225 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: icon + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.08235294 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.9529412 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Subscribe + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Subscribe/Text + classID: 114 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Text (1) + classID: 114 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 1967290853 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 38095219 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 1704208859 + attribute: 38095219 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 3200287185 + attribute: 304273561 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 903285484 + attribute: 304273561 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 3261844218 + attribute: 304273561 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.16666667 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 338 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 422 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 300 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 377.38 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 197 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 225 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: icon + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.08235294 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.9529412 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Subscribe + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Subscribe/Text + classID: 114 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Text (1) + classID: 114 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/UI/Animations/BrowserModListItem_Inflate.anim.meta b/UI/Animations/BrowserModListItem_Inflate.anim.meta new file mode 100644 index 0000000..e0fb11e --- /dev/null +++ b/UI/Animations/BrowserModListItem_Inflate.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bcc27bb25c572744a8b41c8c8986a70d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Animations/BrowserModListItem_RegularSelected.controller b/UI/Animations/BrowserModListItem_RegularSelected.controller new file mode 100644 index 0000000..69c350e --- /dev/null +++ b/UI/Animations/BrowserModListItem_RegularSelected.controller @@ -0,0 +1,101 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BrowserModListItem_RegularSelected + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 1107541076456923718} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &1102177722266481094 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Deflate + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 44771267907cfd74ebf0d62f449c0b3e, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &1102576434624418022 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Inflate + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: bcc27bb25c572744a8b41c8c8986a70d, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &1107541076456923718 +AnimatorStateMachine: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 1102576434624418022} + m_Position: {x: 228, y: 12, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1102177722266481094} + m_Position: {x: 235, y: 65, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 1102576434624418022} diff --git a/UI/Animations/BrowserModListItem_RegularSelected.controller.meta b/UI/Animations/BrowserModListItem_RegularSelected.controller.meta new file mode 100644 index 0000000..53a14e7 --- /dev/null +++ b/UI/Animations/BrowserModListItem_RegularSelected.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e68f79a1540cdeb4fa310b01fc7767e8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Animations/Loading anim.controller b/UI/Animations/Loading anim.controller new file mode 100644 index 0000000..d48a7f2 --- /dev/null +++ b/UI/Animations/Loading anim.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Loading anim + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 1107776700330498332} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &1102465041580600166 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LoopingLoadingAnimation + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 76164ebb31ffecc4099f1ebbdc7848ea, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &1107776700330498332 +AnimatorStateMachine: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 1102465041580600166} + m_Position: {x: 200, y: 0, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 1102465041580600166} diff --git a/UI/Animations/Loading anim.controller.meta b/UI/Animations/Loading anim.controller.meta new file mode 100644 index 0000000..d583358 --- /dev/null +++ b/UI/Animations/Loading anim.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 826562ecbea8a4049b2126fe9b4f4478 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Animations/LoopingLoadingAnimation.anim b/UI/Animations/LoopingLoadingAnimation.anim new file mode 100644 index 0000000..1f29c74 --- /dev/null +++ b/UI/Animations/LoopingLoadingAnimation.anim @@ -0,0 +1,314 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LoopingLoadingAnimation + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.3137255 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.6666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.3333334 + value: 0.3137255 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Cog 1 + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.654902 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.33333334 + value: 0.3137255 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.3333334 + value: 0.78431374 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Cog 2 + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.6666667 + value: 0.3137255 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.3333334 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Cog 3 + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 871812076 + attribute: 304273561 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 2868877910 + attribute: 304273561 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 3724061376 + attribute: 304273561 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1.3333334 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.3137255 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.6666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.3333334 + value: 0.3137255 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Cog 1 + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.654902 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.33333334 + value: 0.3137255 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.3333334 + value: 0.78431374 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Cog 2 + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.6666667 + value: 0.3137255 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.3333334 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Cog 3 + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/UI/Animations/LoopingLoadingAnimation.anim.meta b/UI/Animations/LoopingLoadingAnimation.anim.meta new file mode 100644 index 0000000..ec9e35a --- /dev/null +++ b/UI/Animations/LoopingLoadingAnimation.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 76164ebb31ffecc4099f1ebbdc7848ea +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Animations/SearchResultListItem_Deflate.anim b/UI/Animations/SearchResultListItem_Deflate.anim new file mode 100644 index 0000000..cae30e1 --- /dev/null +++ b/UI/Animations/SearchResultListItem_Deflate.anim @@ -0,0 +1,242 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SearchResultListItem_Deflate + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 400 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 350 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 400 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 300 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 225 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 197 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: icon + classID: 224 + script: {fileID: 0} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 1967290853 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 38095219 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 1704208859 + attribute: 38095219 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.16666667 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 400 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 350 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 400 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 300 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 225 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 197 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: icon + classID: 224 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/UI/Animations/SearchResultListItem_Deflate.anim.meta b/UI/Animations/SearchResultListItem_Deflate.anim.meta new file mode 100644 index 0000000..af39ba5 --- /dev/null +++ b/UI/Animations/SearchResultListItem_Deflate.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bea4d68d182aca14288a3ed40c52c43c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Animations/SearchResultListItem_Inflate.anim b/UI/Animations/SearchResultListItem_Inflate.anim new file mode 100644 index 0000000..26a6c65 --- /dev/null +++ b/UI/Animations/SearchResultListItem_Inflate.anim @@ -0,0 +1,431 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SearchResultListItem_Inflate + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 338 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 422 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 300 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 377.38 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 197 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 225 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: icon + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.08235294 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.9529412 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Subscribe + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Subscribe/Text + classID: 114 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Text (1) + classID: 114 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 1967290853 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 38095219 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 1704208859 + attribute: 38095219 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 3200287185 + attribute: 304273561 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 903285484 + attribute: 304273561 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 3261844218 + attribute: 304273561 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.16666667 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 338 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 422 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 300 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 377.38 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 197 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 225 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_SizeDelta.y + path: icon + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.08235294 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.9529412 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Subscribe + classID: 114 + script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Subscribe/Text + classID: 114 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.a + path: Prompts/Text (1) + classID: 114 + script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/UI/Animations/SearchResultListItem_Inflate.anim.meta b/UI/Animations/SearchResultListItem_Inflate.anim.meta new file mode 100644 index 0000000..08856c6 --- /dev/null +++ b/UI/Animations/SearchResultListItem_Inflate.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c7b1191087e9a0e418f20ca73a8e3fcf +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Animations/SearchResultListItem_RegularSelected.controller b/UI/Animations/SearchResultListItem_RegularSelected.controller new file mode 100644 index 0000000..09b6642 --- /dev/null +++ b/UI/Animations/SearchResultListItem_RegularSelected.controller @@ -0,0 +1,101 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SearchResultListItem_RegularSelected + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 1107541076456923718} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &1102177722266481094 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Deflate + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: bea4d68d182aca14288a3ed40c52c43c, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &1102576434624418022 +AnimatorState: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Inflate + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: c7b1191087e9a0e418f20ca73a8e3fcf, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &1107541076456923718 +AnimatorStateMachine: + serializedVersion: 5 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 1102576434624418022} + m_Position: {x: 228, y: 12, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1102177722266481094} + m_Position: {x: 235, y: 65, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 1102576434624418022} diff --git a/UI/Animations/SearchResultListItem_RegularSelected.controller.meta b/UI/Animations/SearchResultListItem_RegularSelected.controller.meta new file mode 100644 index 0000000..9c232df --- /dev/null +++ b/UI/Animations/SearchResultListItem_RegularSelected.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b8a13cb054dfca4db49cf75b7b98832 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme.meta b/UI/Color Scheme.meta new file mode 100644 index 0000000..dbcd3df --- /dev/null +++ b/UI/Color Scheme.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 32efca21276366d4482fb7a2ee31e769 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/ColorApplierImage.cs b/UI/Color Scheme/ColorApplierImage.cs new file mode 100644 index 0000000..4366a22 --- /dev/null +++ b/UI/Color Scheme/ColorApplierImage.cs @@ -0,0 +1,77 @@ +using System.Collections; +using ModIO.Util; +using ModIOBrowser.Implementation; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + internal class ColorApplier : MonoBehaviour where T : Graphic + { + public ColorSetterType color; + protected virtual T graphic => null; + public ColorScheme colorScheme; + + private void Start() + { + if(!Apply()) + { + CoroutineRunner.Instance.Run(AttemptToRecolorSoon()); + } + } + + private bool Apply() + { + if(colorScheme == null && !Browser.SingletonIsInstantiated()) + { + return false; + } + + var scheme = colorScheme == null ? Browser.Instance.colorScheme : colorScheme; + if(scheme != null) + { + graphic.color = scheme.GetSchemeColor(color); + return true; + } + else + { + Debug.LogError($"Unable to apply color to { transform.FullPath() }"); + } + + return false; + } + + IEnumerator AttemptToRecolorSoon() + { + yield return new WaitForEndOfFrame(); + while(true) + { + if(Apply()) + { + yield break; + } + + //Debug.LogError($"Unable to set color scheme to {transform.FullPath()} - is this intentional? Attempting again..."); + yield return new WaitForSeconds(0.1f); //less cpu intensive than frame + } + } + } + + //Other types are easy to extend to, just inherit from ColorApplier and apply type + //If this is a regular occurance for you, you may want to consider extending Graphic as an interface + //to allow for non-unity Graphic types + + internal class ColorApplierImage : ColorApplier + { + public Image image; + override protected Image graphic => image; + + private void OnValidate() + { + if(image == null) + { + image = GetComponent(); + } + } + } +} diff --git a/UI/Color Scheme/ColorApplierImage.cs.meta b/UI/Color Scheme/ColorApplierImage.cs.meta new file mode 100644 index 0000000..32eec41 --- /dev/null +++ b/UI/Color Scheme/ColorApplierImage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: edb10346a1dac1d41a69f1b9c914fbfd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/ColorScheme.cs b/UI/Color Scheme/ColorScheme.cs new file mode 100644 index 0000000..c19800c --- /dev/null +++ b/UI/Color Scheme/ColorScheme.cs @@ -0,0 +1,126 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + public class ColorScheme : MonoBehaviour + { +#region Internal values + public Color Dark1; + public Color Dark2; + public Color Dark3; + public Color White; + + internal int H1_px = 48; + internal int H2_px = 40; + internal int H3_px = 32; + internal int H4_px = 24; + internal int H5_px = 18; + internal int ParagraphBig_px = 24; + internal int ParagraphNormal_px = 18; + internal int SmallTextRegular_px = 16; + internal int SmallTextSemibold_px = 16; + internal int MainNavigation_px = 20; + + // internal int BorderThicknessBig_px = 6; + // internal int BorderThicknessSmall_px = 3; + + // internal int CornerRadiusLarge_px = 40; + // internal int CornerRadiusStandard_px = 24; + // internal int CornerRadiusCollection_px = 16; + // internal int CornerRadiusTags_px = 8; + // internal int CornerRadiusCheckboxes_px = 4; +#endregion // Internal values + + // Editable colors + public Color Highlight; + public Color Inactive1; + public Color Inactive2; + public Color Inactive3; + public Color PositiveAccent; + public Color NegativeAccent; + + // For setting the light or dark mode of the UI + public bool LightMode; + + void Reset() + { + SetColorsToDefault(); + } + + [ContextMenu("Restore Default Colors")] + public void SetColorsToDefault() + { + ColorUtility.TryParseHtmlString("#1B2038", out Dark1); + ColorUtility.TryParseHtmlString("#212945", out Dark2); + ColorUtility.TryParseHtmlString("#0E101B", out Dark3); + ColorUtility.TryParseHtmlString("#FFFFFF", out White); + + ColorUtility.TryParseHtmlString("#07C1D8", out Highlight); + ColorUtility.TryParseHtmlString("#C1C4D7", out Inactive1); + ColorUtility.TryParseHtmlString("#AEB1C2", out Inactive2); + ColorUtility.TryParseHtmlString("#737684", out Inactive3); + ColorUtility.TryParseHtmlString("#7EEF8C", out PositiveAccent); + ColorUtility.TryParseHtmlString("#DB5355", out NegativeAccent); + } + + public void RefreshUI() + { + ColorSetter[] setters = GetComponentsInChildren(true); + foreach(ColorSetter setter in setters) + { + setter.Refresh(this); + } + } + + public ColorBlock GetColorBlock_Button() + { + ColorBlock colors = new ColorBlock(); + colors.fadeDuration = 0.1f; + colors.normalColor = Inactive2; + colors.highlightedColor = Highlight; + colors.pressedColor = Inactive2; + colors.disabledColor = Dark3; + colors.colorMultiplier = 1; + return colors; + } + + public ColorBlock GetColorBlock_Dropdown() + { + ColorBlock colors = new ColorBlock(); + colors.normalColor = Inactive2; + colors.highlightedColor = Highlight; + colors.pressedColor = Inactive2; + colors.disabledColor = Dark3; + return colors; + } + + public Color GetSchemeColor(ColorSetterType enumType) + { + switch(enumType) + { + case ColorSetterType.Dark1: + return Dark1; + case ColorSetterType.Dark2: + return Dark2; + case ColorSetterType.Dark3: + return Dark3; + case ColorSetterType.White: + return White; + case ColorSetterType.Highlight: + return Highlight; + case ColorSetterType.Inactive1: + return Inactive1; + case ColorSetterType.Inactive2: + return Inactive2; + case ColorSetterType.Inactive3: + return Inactive3; + case ColorSetterType.PositiveAccent: + return PositiveAccent; + case ColorSetterType.NegativeAccent: + return NegativeAccent; + } + return default; + } + } +} diff --git a/UI/Color Scheme/ColorScheme.cs.meta b/UI/Color Scheme/ColorScheme.cs.meta new file mode 100644 index 0000000..d2cad19 --- /dev/null +++ b/UI/Color Scheme/ColorScheme.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9a96faf57aa85c499eea788a9dd5a04 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/ColorSchemeBlock.cs b/UI/Color Scheme/ColorSchemeBlock.cs new file mode 100644 index 0000000..1e2d247 --- /dev/null +++ b/UI/Color Scheme/ColorSchemeBlock.cs @@ -0,0 +1,34 @@ + +using System; + +namespace ModIOBrowser +{ + [Serializable] + public struct ColorSchemeBlock + { + public static ColorSchemeBlock DefaultColorSchemeBlock = new ColorSchemeBlock() + { + Normal = ColorSetterType.Inactive2, + Highlighted = ColorSetterType.Highlight, + Pressed = ColorSetterType.Highlight, + Disabled = ColorSetterType.Dark3, + NormalColorAlpha = 1f, + HighlightedColorAlpha = 1f, + PressedColorAlpha = 1f, + DisabledColorAlpha = 1f, + ColorMultiplier = 1f, + FadeDuration = 0.1f + }; + + public ColorSetterType Normal; + public float NormalColorAlpha; + public ColorSetterType Highlighted; + public float HighlightedColorAlpha; + public ColorSetterType Pressed; + public float PressedColorAlpha; + public ColorSetterType Disabled; + public float DisabledColorAlpha; + public float ColorMultiplier; + public float FadeDuration; + } +} diff --git a/UI/Color Scheme/ColorSchemeBlock.cs.meta b/UI/Color Scheme/ColorSchemeBlock.cs.meta new file mode 100644 index 0000000..90ef733 --- /dev/null +++ b/UI/Color Scheme/ColorSchemeBlock.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 16a099eb43a4be34fa93ed81e1522af0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/ColorSetter.cs b/UI/Color Scheme/ColorSetter.cs new file mode 100644 index 0000000..b707904 --- /dev/null +++ b/UI/Color Scheme/ColorSetter.cs @@ -0,0 +1,75 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + + internal class ColorSetter : MonoBehaviour + { + public ColorSetterType type; + MultiTargetButton button; + + void OnEnable() + { + if(Browser.SingletonIsInstantiated()) + { + Refresh(Browser.Instance.colorScheme); + } + } + + void SetGraphicColor(Color color) + { + Graphic graphic = GetComponent(); + if(graphic != null) + { + float alpha = graphic.color.a; // maintain the alpha + color.a = alpha; + graphic.color = color; + } + } + + void SetSelectableColorBlock(ColorBlock colors) + { + Selectable selectable = GetComponent(); + if(selectable != null) + { + selectable.colors = colors; + } + } + + void SetDropdownColorBlocks() + { + + } + + internal void Refresh() + { + ColorScheme scheme = GetComponentInParent(); + if(scheme != null) + { + scheme.RefreshUI(); + } + } + + internal void Refresh(ColorScheme scheme) + { + switch(type) + { + case ColorSetterType.Button: + SetSelectableColorBlock(scheme.GetColorBlock_Button()); + break; + case ColorSetterType.Dropdown: + SetSelectableColorBlock(scheme.GetColorBlock_Button()); + break; + default: + SetGraphicColor(scheme.GetSchemeColor(type)); + break; + } + #if UNITY_EDITOR + if (!Application.isEditor) + EditorUtility.SetDirty(this); + #endif + } + } +} diff --git a/UI/Color Scheme/ColorSetter.cs.meta b/UI/Color Scheme/ColorSetter.cs.meta new file mode 100644 index 0000000..dac4cb7 --- /dev/null +++ b/UI/Color Scheme/ColorSetter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0bb7d01b14ae58d489b1d0e368d78625 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/ColorSetterType.cs b/UI/Color Scheme/ColorSetterType.cs new file mode 100644 index 0000000..2b2aa74 --- /dev/null +++ b/UI/Color Scheme/ColorSetterType.cs @@ -0,0 +1,22 @@ +namespace ModIOBrowser +{ + public enum ColorSetterType + { + // Single color for Image or Text (Graphic) + Dark1, + Dark2, + Dark3, + White, + Highlight, + Inactive1, + Inactive2, + Inactive3, + PositiveAccent, + NegativeAccent, + // Color blocks + Button, + Dropdown, + DropdownToggle, + Toggle + } +} diff --git a/UI/Color Scheme/ColorSetterType.cs.meta b/UI/Color Scheme/ColorSetterType.cs.meta new file mode 100644 index 0000000..70d6817 --- /dev/null +++ b/UI/Color Scheme/ColorSetterType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6678527c9cfda9c4bac429ff5d82be86 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/MultiTargetButton.cs b/UI/Color Scheme/MultiTargetButton.cs new file mode 100644 index 0000000..1337493 --- /dev/null +++ b/UI/Color Scheme/MultiTargetButton.cs @@ -0,0 +1,228 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + /// + /// This component essentially inherits and mirrors the Unity Button component and adds a few + /// additional features. It has a reference to a ColorScheme that it uses to properly apply + /// colors to transitions. + /// The most important feature is that this component can manage transition behaviours for + /// multiple targets instead of just one. A typical Unity Button can only target one element. + /// For example, a button might change the color of a text component, but it can't also change + /// the color of the background. This component adds additional targets that have their own + /// unique transition behaviour so you can target multiple texts, images, objects etc. + /// It also has 'childButtons' which is essentially a list of other + /// interactable components that it will force to highlight as well. Eg, the featured carousel, + /// when the entire carousel panel is highlighted, the 'subscribe' button also highlights to + /// indicate that it can be 'subscribed' with the keybinding 'X' (or other binding depending on + /// controller setup). + /// + /// Note that the MultiTargetToggle and MultiTargetDropdown are essentially the same + /// as this component but inherit the Dropdown and Toggle component instead + public class MultiTargetButton : Button + { + // The color scheme we want to abide by + public ColorScheme scheme; + + // The extra targets that we control with transition behaviour + public List extraTargets = new List(); + + // Other buttons that are parented to us that we can tell to invoke transitions of their own + public List childButtons = new List(); + +#if UNITY_EDITOR + protected override void Reset() + { + base.Reset(); + if(scheme == null) + { + scheme = FindObjectOfType(); + } + } +#endif // UNITY_EDITOR + + /// + /// This is the inherited method that all Unity Buttons use when they need to change their + /// current transition state. Eg, become highlighted, selected or pressed. + /// + protected override void DoStateTransition(SelectionState state, bool instant) + { + // First we do the state transition for the main target like we would for a normal button + base.DoStateTransition(state, instant); + + // This iterates over each extra target and executes the transition just the same as it + // does for the main target of this button, but with some additional types (like color scheme) + foreach(var target in extraTargets) + { + Color color; + Sprite newSprite; + string triggername; + switch(state) + { + case Selectable.SelectionState.Normal: + color = target.colors.normalColor; + newSprite = (Sprite)null; + triggername = target.animationTriggers.normalTrigger; + break; + case Selectable.SelectionState.Highlighted: + color = target.colors.highlightedColor; + newSprite = target.spriteState.highlightedSprite; + triggername = target.animationTriggers.highlightedTrigger; + SoundPlayer.PlayHover(); + + break; +#if UNITY_2019_4_OR_NEWER + case Selectable.SelectionState.Selected: + color = target.colors.highlightedColor; + newSprite = target.spriteState.highlightedSprite; + triggername = target.animationTriggers.highlightedTrigger; + break; +#endif + case Selectable.SelectionState.Pressed: + color = target.colors.pressedColor; + newSprite = target.spriteState.pressedSprite; + triggername = target.animationTriggers.pressedTrigger; + SoundPlayer.PlayClick(); + + break; + case Selectable.SelectionState.Disabled: + color = target.colors.disabledColor; + newSprite = target.spriteState.disabledSprite; + triggername = target.animationTriggers.disabledTrigger; + break; + default: + color = Color.black; + newSprite = (Sprite)null; + triggername = string.Empty; + break; + } + if(!this.gameObject.activeInHierarchy) + return; + switch(target.transition) + { + case MultiTargetTransition.ColorTint: + StartColorTween(target.target, color * target.colors.colorMultiplier, + target.colors.fadeDuration, instant); + break; + case MultiTargetTransition.SpriteSwap: + DoSpriteSwap(target.target, newSprite); + break; + case MultiTargetTransition.Animation: + TriggerAnimation(target.animator, target.animationTriggers, triggername); + break; + case MultiTargetTransition.DisableEnable: + if(target.isControllerButtonIcon && InputNavigation.Instance.mouseNavigation) + { + // if we arent using a controller always hide this target + target?.target?.gameObject.SetActive(false); + break; + } + ToggleActiveState(target, state); + break; + case MultiTargetTransition.ColorScheme: + UseSchemeColorTint(target, state, scheme, instant); + break; + } + } + + // This tells all of the child buttons to also do a state transition + foreach(var child in childButtons) { child.DoStateTransition(state, instant); } + + LayoutRebuilder.ForceRebuildLayoutImmediate(transform as RectTransform); + } + + // the following methods in this region are mostly replicated from the Unity Button with + // a few additional changes to accomodate the extra targets and colour scheme feature +#region Transition type methods + void UseSchemeColorTint(Target target, Selectable.SelectionState state, ColorScheme scheme, + bool instant) + { + if(scheme == null) + { + return; + } + Color color = default; + switch(state) + { + case SelectionState.Normal: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Normal); + break; + case SelectionState.Highlighted: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Highlighted); + break; +#if UNITY_2019_4_OR_NEWER + case SelectionState.Selected: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Highlighted); + break; +#endif + case SelectionState.Pressed: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Pressed); + break; + case SelectionState.Disabled: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Disabled); + break; + } + StartColorTween(target.target, color * target.colorSchemeBlock.ColorMultiplier, + target.colorSchemeBlock.FadeDuration, instant); + } + + void ToggleActiveState(Target target, Selectable.SelectionState state) + { + switch(state) + { + case SelectionState.Normal: + target?.target?.gameObject.SetActive(target.enableOnNormal); + break; + case SelectionState.Highlighted: + target?.target?.gameObject.SetActive(target.enableOnHighlight); + break; +#if UNITY_2019_4_OR_NEWER + case SelectionState.Selected: + target.target.gameObject.SetActive(target.enableOnHighlight); + break; +#endif + case SelectionState.Pressed: + target?.target?.gameObject.SetActive(target.enableOnPressed); + break; + case SelectionState.Disabled: + target?.target?.gameObject.SetActive(target.enableOnDisabled); + break; + } + } + + void StartColorTween(Graphic target, Color targetColor, float fadeDuration, bool instant) + { + if((UnityEngine.Object)target == (UnityEngine.Object)null) + return; + target.CrossFadeColor(targetColor, !instant ? fadeDuration : 0.0f, true, true); + } + + void DoSpriteSwap(Graphic target, Sprite newSprite) + { + if(target == null) + return; + if(target is Image image) + { + image.overrideSprite = newSprite; + } + } + + void TriggerAnimation(Animator targetAnimator, AnimationTriggers trigger, + string triggerName) + { + if(this.transition != Selectable.Transition.Animation + || (UnityEngine.Object)targetAnimator == (UnityEngine.Object)null + || !this.animator.isActiveAndEnabled || !targetAnimator.hasBoundPlayables + || string.IsNullOrEmpty(triggerName)) + return; + this.animator.ResetTrigger(trigger.normalTrigger); + this.animator.ResetTrigger(trigger.pressedTrigger); + this.animator.ResetTrigger(trigger.highlightedTrigger); + this.animator.ResetTrigger(trigger.disabledTrigger); + this.animator.SetTrigger(triggerName); + } +#endregion + } +} diff --git a/UI/Color Scheme/MultiTargetButton.cs.meta b/UI/Color Scheme/MultiTargetButton.cs.meta new file mode 100644 index 0000000..8345201 --- /dev/null +++ b/UI/Color Scheme/MultiTargetButton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5ce6686d7065cf4986b2ed3e2773c96 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/MultiTargetDropdown.cs b/UI/Color Scheme/MultiTargetDropdown.cs new file mode 100644 index 0000000..e26f1c6 --- /dev/null +++ b/UI/Color Scheme/MultiTargetDropdown.cs @@ -0,0 +1,242 @@ +using System.Collections.Generic; +using UnityEngine; +using TMPro; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + public class MultiTargetDropdown : TMP_Dropdown + { + public ColorScheme scheme; + + public List extraTargets = new List(); + public List childDropdowns = new List(); + + GameObject border; + + public static MultiTargetDropdown currentMultiTargetDropdown; + + public override void OnSubmit(BaseEventData eventData) + { + base.OnSubmit(eventData); + currentMultiTargetDropdown = this; + } + + public override void OnCancel(BaseEventData eventData) + { + base.OnSubmit(eventData); + currentMultiTargetDropdown = null; + } + + public override void OnDeselect(BaseEventData eventData) + { + base.OnDeselect(eventData); + currentMultiTargetDropdown = null; + } + +#if UNITY_EDITOR + protected override void Reset() + { + base.Reset(); + template = transform.Find("Template") as RectTransform; + Transform label = transform.Find("Label"); + if(label != null) + { + captionText = label.GetComponent(); + } + Transform item = transform.Find("Template/Viewport/Content/Item/Item Label"); + if(item != null) + { + itemText = item.GetComponent(); + } + } +#endif // UNITY_EDITOR + + protected override void DoStateTransition(SelectionState state, bool instant) + { + base.DoStateTransition(state, instant); + + foreach(var target in extraTargets) + { + Color color; + Sprite newSprite; + string triggername; + switch(state) + { + case Selectable.SelectionState.Normal: + color = target.colors.normalColor; + newSprite = (Sprite)null; + triggername = target.animationTriggers.normalTrigger; + break; + case Selectable.SelectionState.Highlighted: + color = target.colors.highlightedColor; + newSprite = target.spriteState.highlightedSprite; + triggername = target.animationTriggers.highlightedTrigger; + break; +#if UNITY_2019_4_OR_NEWER + case Selectable.SelectionState.Selected: + color = target.colors.highlightedColor; + newSprite = target.spriteState.highlightedSprite; + triggername = target.animationTriggers.highlightedTrigger; + break; +#endif + case Selectable.SelectionState.Pressed: + color = target.colors.pressedColor; + newSprite = target.spriteState.pressedSprite; + triggername = target.animationTriggers.pressedTrigger; + break; + case Selectable.SelectionState.Disabled: + color = target.colors.disabledColor; + newSprite = target.spriteState.disabledSprite; + triggername = target.animationTriggers.disabledTrigger; + break; + default: + color = Color.black; + newSprite = (Sprite)null; + triggername = string.Empty; + break; + } + if(!this.gameObject.activeInHierarchy) + return; + switch(target.transition) + { + case MultiTargetTransition.ColorTint: + StartColorTween(target.target, color * target.colors.colorMultiplier, + target.colors.fadeDuration, instant); + break; + case MultiTargetTransition.SpriteSwap: + DoSpriteSwap(target.target, newSprite); + break; + case MultiTargetTransition.Animation: + TriggerAnimation(target.animator, target.animationTriggers, triggername); + break; + case MultiTargetTransition.DisableEnable: + ToggleActiveState(target, state); + break; + case MultiTargetTransition.ColorScheme: + UseSchemeColorTint(target, state, scheme, instant); + break; + } + } + + foreach(var child in childDropdowns) { child.DoStateTransition(state, instant); } + + LayoutRebuilder.ForceRebuildLayoutImmediate(transform as RectTransform); + } + + void UseSchemeColorTint(Target target, Selectable.SelectionState state, ColorScheme scheme, + bool instant) + { + if(scheme == null) + { + return; + } + Color color = default; + switch(state) + { + case SelectionState.Normal: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Normal); + break; + case SelectionState.Highlighted: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Highlighted); + break; +#if UNITY_2019_4_OR_NEWER + case SelectionState.Selected: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Highlighted); + break; +#endif + case SelectionState.Pressed: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Pressed); + break; + case SelectionState.Disabled: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Disabled); + break; + } + StartColorTween(target.target, color * target.colorSchemeBlock.ColorMultiplier, + target.colorSchemeBlock.FadeDuration, instant); + } + + void ToggleActiveState(Target target, Selectable.SelectionState state) + { + switch(state) + { + case SelectionState.Normal: + target?.target?.gameObject.SetActive(target.enableOnNormal); + break; + case SelectionState.Highlighted: + target?.target?.gameObject.SetActive(target.enableOnHighlight); + break; +#if UNITY_2019_4_OR_NEWER + case SelectionState.Selected: + target.target.gameObject.SetActive(target.enableOnHighlight); + break; +#endif + case SelectionState.Pressed: + target?.target?.gameObject.SetActive(target.enableOnPressed); + break; + case SelectionState.Disabled: + target?.target?.gameObject.SetActive(target.enableOnDisabled); + break; + } + } + + void StartColorTween(Graphic target, Color targetColor, float fadeDuration, bool instant) + { + if((UnityEngine.Object)target == (UnityEngine.Object)null) + return; + target.CrossFadeColor(targetColor, !instant ? fadeDuration : 0.0f, true, true); + } + + void DoSpriteSwap(Graphic target, Sprite newSprite) + { + if(target == null) + return; + if(target is Image image) + { + image.overrideSprite = newSprite; + } + } + + void TriggerAnimation(Animator targetAnimator, AnimationTriggers trigger, + string triggerName) + { + if(this.transition != Selectable.Transition.Animation + || (UnityEngine.Object)targetAnimator == (UnityEngine.Object)null + || !this.animator.isActiveAndEnabled || !targetAnimator.hasBoundPlayables + || string.IsNullOrEmpty(triggerName)) + return; + this.animator.ResetTrigger(trigger.normalTrigger); + this.animator.ResetTrigger(trigger.pressedTrigger); + this.animator.ResetTrigger(trigger.highlightedTrigger); + this.animator.ResetTrigger(trigger.disabledTrigger); + this.animator.SetTrigger(triggerName); + } + + protected override TMP_Dropdown.DropdownItem CreateItem( + TMP_Dropdown.DropdownItem itemTemplate) + { + TMP_Dropdown.DropdownItem item = base.CreateItem(itemTemplate); + if(border == null) + { + border = itemTemplate.transform.parent.Find("Border")?.gameObject; + } + MultiTargetButton button = itemTemplate.GetComponent(); + if(button != null) + { + button.scheme = scheme; + } + return item; + } + + protected override GameObject CreateBlocker(Canvas rootCanvas) + { + GameObject item = base.CreateBlocker(rootCanvas); + if(border != null) + { + border.transform.SetAsLastSibling(); + } + return item; + } + } +} diff --git a/UI/Color Scheme/MultiTargetDropdown.cs.meta b/UI/Color Scheme/MultiTargetDropdown.cs.meta new file mode 100644 index 0000000..decfc40 --- /dev/null +++ b/UI/Color Scheme/MultiTargetDropdown.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f7f173c11dfda5a4c9a9860f473a14b7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/MultiTargetToggle.cs b/UI/Color Scheme/MultiTargetToggle.cs new file mode 100644 index 0000000..948be1d --- /dev/null +++ b/UI/Color Scheme/MultiTargetToggle.cs @@ -0,0 +1,216 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + public class MultiTargetToggle : Toggle + { + public ColorScheme scheme; + public List extraTargets = new List(); + + /// + /// This is the object, eg Checkmark, inside the toggle that indicates if it is on or off. + /// We cannot directly override the behavior that sets the checkmark graphic so instead we + /// manage an additional object on our own that we can turn on and off whenever we do a + /// state transition + /// + public GameObject targetIsOnIndicator; + + /// + /// Same as above, but for when the toggle has been disabled + /// + public GameObject targetIsDisabledIndicator; + + /// + /// There is a slight edge case with the 'targetIsOnIndicator' field. It wont get affected on + /// toggle until DoStateTransition. So we have a method here to manually call it to be run + /// after we toggle it + /// + public void DoStateTransition() + { + DoStateTransition(currentSelectionState, true); + } + + protected override void DoStateTransition(SelectionState state, bool instant) + { + base.DoStateTransition(state, instant); + + if(targetIsOnIndicator != null) + { + targetIsOnIndicator.SetActive(isOn); + } + if(targetIsDisabledIndicator != null) + { + targetIsDisabledIndicator.SetActive(state == SelectionState.Disabled); + } + + foreach(var target in extraTargets) + { + Color color; + Sprite newSprite; + string triggername; + switch(state) + { + case Selectable.SelectionState.Normal: + color = target.colors.normalColor; + newSprite = (Sprite)null; + triggername = target.animationTriggers.normalTrigger; + break; + case Selectable.SelectionState.Highlighted: + color = target.colors.highlightedColor; + newSprite = target.spriteState.highlightedSprite; + triggername = target.animationTriggers.highlightedTrigger; + break; +#if UNITY_2019_4_OR_NEWER + case Selectable.SelectionState.Selected: + color = target.colors.highlightedColor; + newSprite = target.spriteState.highlightedSprite; + triggername = target.animationTriggers.highlightedTrigger; + break; +#endif + case Selectable.SelectionState.Pressed: + color = target.colors.pressedColor; + newSprite = target.spriteState.pressedSprite; + triggername = target.animationTriggers.pressedTrigger; + break; + case Selectable.SelectionState.Disabled: + color = target.colors.disabledColor; + newSprite = target.spriteState.disabledSprite; + triggername = target.animationTriggers.disabledTrigger; + break; + default: + color = Color.black; + newSprite = (Sprite)null; + triggername = string.Empty; + break; + } + if(!this.gameObject.activeInHierarchy) + return; + switch(target.transition) + { + case MultiTargetTransition.ColorTint: + StartColorTween(target.target, color * target.colors.colorMultiplier, target.colors.fadeDuration, instant); + break; + case MultiTargetTransition.SpriteSwap: + DoSpriteSwap(target.target, newSprite); + break; + case MultiTargetTransition.Animation: + TriggerAnimation(target.animator, target.animationTriggers, triggername); + break; + case MultiTargetTransition.DisableEnable: + ToggleActiveState(target, state); + break; + case MultiTargetTransition.ColorScheme: + UseSchemeColorTint(target, state, scheme, instant); + break; + } + } + } + + void UseSchemeColorTint(Target target, Selectable.SelectionState state, ColorScheme scheme, bool instant) + { + if(scheme == null) + { + return; + } + Color color = default; + switch(state) + { + case SelectionState.Normal: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Normal); + break; + case SelectionState.Highlighted: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Highlighted); + break; +#if UNITY_2019_4_OR_NEWER + case SelectionState.Selected: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Highlighted); + break; +#endif + case SelectionState.Pressed: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Pressed); + break; + case SelectionState.Disabled: + color = scheme.GetSchemeColor(target.colorSchemeBlock.Disabled); + break; + } + StartColorTween(target.target, color * target.colorSchemeBlock.ColorMultiplier, target.colorSchemeBlock.FadeDuration, instant); + } + + void ToggleActiveState(Target target, Selectable.SelectionState state) + { + switch(state) + { + case SelectionState.Normal: + target.target.gameObject.SetActive(target.enableOnNormal); + break; + case SelectionState.Highlighted: + target.target.gameObject.SetActive(target.enableOnHighlight); + break; +#if UNITY_2019_4_OR_NEWER + case SelectionState.Selected: + target.target.gameObject.SetActive(target.enableOnHighlight); + break; +#endif + case SelectionState.Pressed: + target.target.gameObject.SetActive(target.enableOnPressed); + break; + case SelectionState.Disabled: + target.target.gameObject.SetActive(target.enableOnDisabled); + break; + } + } + + void StartColorTween(Graphic target, Color targetColor, float fadeDuration, bool instant) + { + if((UnityEngine.Object)target == (UnityEngine.Object)null) + return; + target.CrossFadeColor(targetColor, !instant ? fadeDuration : 0.0f, true, true); + } + + void DoSpriteSwap(Graphic target, Sprite newSprite) + { + if(target == null) + return; + if(target is Image image) + { + image.overrideSprite = newSprite; + } + } + + void TriggerAnimation(Animator targetAnimator, AnimationTriggers trigger, string triggerName) + { + if(this.transition != Selectable.Transition.Animation || (UnityEngine.Object)targetAnimator == (UnityEngine.Object)null || !this.animator.isActiveAndEnabled || !targetAnimator.hasBoundPlayables || string.IsNullOrEmpty(triggerName)) + return; + this.animator.ResetTrigger(trigger.normalTrigger); + this.animator.ResetTrigger(trigger.pressedTrigger); + this.animator.ResetTrigger(trigger.highlightedTrigger); + this.animator.ResetTrigger(trigger.disabledTrigger); + this.animator.SetTrigger(triggerName); + } + + // public override void OnPointerClick(PointerEventData eventData) + // { + // if(eventData.button != PointerEventData.InputButton.Left) + // return; + // Press(); + // } + // + // public override void OnSubmit(BaseEventData eventData) + // { + // Press(); + // if(!this.IsActive() || !this.IsInteractable()) + // return; + // DoStateTransition(SelectionState.Pressed, false); + // } + + // void Press() + // { + // if(!this.IsActive() || !this.IsInteractable()) + // return; + // UISystemProfilerApi.AddMarker("Button.onClick", (UnityEngine.Object)this); + // onClick.Invoke(); + // } + } +} diff --git a/UI/Color Scheme/MultiTargetToggle.cs.meta b/UI/Color Scheme/MultiTargetToggle.cs.meta new file mode 100644 index 0000000..7bf85f1 --- /dev/null +++ b/UI/Color Scheme/MultiTargetToggle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c834cada87fd6a740a2602fcb50cc1f6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/MultiTargetTransition.cs b/UI/Color Scheme/MultiTargetTransition.cs new file mode 100644 index 0000000..8c07711 --- /dev/null +++ b/UI/Color Scheme/MultiTargetTransition.cs @@ -0,0 +1,13 @@ + +namespace ModIOBrowser +{ + public enum MultiTargetTransition + { + None, + ColorTint, + SpriteSwap, + Animation, + DisableEnable, + ColorScheme + } +} diff --git a/UI/Color Scheme/MultiTargetTransition.cs.meta b/UI/Color Scheme/MultiTargetTransition.cs.meta new file mode 100644 index 0000000..4471d31 --- /dev/null +++ b/UI/Color Scheme/MultiTargetTransition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a5ddfcea3acf57e4dbddf9241624e2ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/Target.cs b/UI/Color Scheme/Target.cs new file mode 100644 index 0000000..906ebbc --- /dev/null +++ b/UI/Color Scheme/Target.cs @@ -0,0 +1,22 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + [System.Serializable] + public class Target + { + public Graphic target; + public MultiTargetTransition transition = MultiTargetTransition.ColorTint; + public ColorBlock colors = ColorBlock.defaultColorBlock; + public ColorSchemeBlock colorSchemeBlock = ColorSchemeBlock.DefaultColorSchemeBlock; + public SpriteState spriteState; + public AnimationTriggers animationTriggers = new AnimationTriggers(); + public Animator animator; + public bool enableOnNormal = false; + public bool enableOnHighlight = true; + public bool enableOnPressed = true; + public bool enableOnDisabled = false; + public bool isControllerButtonIcon = false; + } +} diff --git a/UI/Color Scheme/Target.cs.meta b/UI/Color Scheme/Target.cs.meta new file mode 100644 index 0000000..f43ead9 --- /dev/null +++ b/UI/Color Scheme/Target.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63403b196354e4c459dd0b0c710b4275 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/UI Component Prefabs.meta b/UI/Color Scheme/UI Component Prefabs.meta new file mode 100644 index 0000000..7ce8387 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d117a42f11b168649add70bd9e7843aa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/UI Component Prefabs/Button with Cue Variant.prefab b/UI/Color Scheme/UI Component Prefabs/Button with Cue Variant.prefab new file mode 100644 index 0000000..cc3822a --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/Button with Cue Variant.prefab @@ -0,0 +1,843 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &126164467 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 126164468} + - component: {fileID: 126164470} + - component: {fileID: 126164469} + - component: {fileID: 4964708182681195730} + m_Layer: 5 + m_Name: Cue Circle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &126164468 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 126164467} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8018215697222549953} + m_Father: {fileID: 2112189429} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 23.999985, y: -12} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &126164470 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 126164467} + m_CullTransparentMesh: 0 +--- !u!114 &126164469 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 126164467} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4964708182681195730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 126164467} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 126164469} + config: {fileID: 11400000, guid: f61575af3474946408f87595370cf4ad, type: 2} +--- !u!1 &2112189428 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2112189429} + - component: {fileID: 2112189431} + - component: {fileID: 2112189430} + m_Layer: 5 + m_Name: Cue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2112189429 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2112189428} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 126164468} + m_Father: {fileID: 8301908709888898489} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 89.41501, y: -20} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2112189431 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2112189428} + m_CullTransparentMesh: 0 +--- !u!114 &2112189430 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2112189428} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4670762107156833254 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8018215697222549953} + - component: {fileID: 8249598317668927308} + - component: {fileID: 7795385792544564510} + - component: {fileID: 8502793601590996624} + m_Layer: 5 + m_Name: Cue Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8018215697222549953 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4670762107156833254} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 126164468} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8249598317668927308 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4670762107156833254} + m_CullTransparentMesh: 0 +--- !u!114 &7795385792544564510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4670762107156833254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: fddb9d650a68b3b46abb9f7e8316cef3, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8502793601590996624 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4670762107156833254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 7795385792544564510} + config: {fileID: 11400000, guid: 28c79f6171a406f4d8672f60f57401e3, type: 2} +--- !u!114 &1696590542559041822 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6442999689545999158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 20 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &1181529641621318298 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1138638543927884068} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1001 &8304412121563985391 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 147 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Button with Cue Variant + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 73.5 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Transition + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TargetGraphic + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_SelectedColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_SelectedColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_SelectedColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_HighlightedColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_HighlightedColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_HighlightedColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].target + value: + objectReference: {fileID: 1956534672024296434} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].target + value: + objectReference: {fileID: 1956534672024296434} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].target + value: + objectReference: {fileID: 2112189430} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].transition + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].transition + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].transition + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnPressed + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnHighlight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].isControllerButtonIcon + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Normal + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Pressed + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.a + value: 0.5019608 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Disabled + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].spriteState.m_PressedSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].spriteState.m_PressedSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].spriteState.m_DisabledSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].spriteState.m_SelectedSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].spriteState.m_DisabledSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].spriteState.m_SelectedSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Highlighted + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].spriteState.m_HighlightedSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].spriteState.m_HighlightedSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_NormalTrigger + value: Normal + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.NormalColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_PressedTrigger + value: Pressed + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.PressedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_DisabledTrigger + value: Disabled + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.DisabledColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: SubscibeToFeaturedMod + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_HighlightedTrigger + value: Highlighted + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.HighlightedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 9 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &6442999689545999158 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 8304412121563985391} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8301908709888898489 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 8304412121563985391} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1956534672024296434 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7500801496791559709, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 8304412121563985391} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6442999689545999158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1138638543927884068 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 8304412121563985391} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Color Scheme/UI Component Prefabs/Button with Cue Variant.prefab.meta b/UI/Color Scheme/UI Component Prefabs/Button with Cue Variant.prefab.meta new file mode 100644 index 0000000..a2db2f5 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/Button with Cue Variant.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d63c60c076ced34294aeaf91358d462 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/UI Component Prefabs/Button.prefab b/UI/Color Scheme/UI Component Prefabs/Button.prefab new file mode 100644 index 0000000..8b75ff1 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/Button.prefab @@ -0,0 +1,325 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3050362772334548697 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2673114980991062} + - component: {fileID: 1635713923479228532} + - component: {fileID: 7500801496791559709} + - component: {fileID: 7318288332265493699} + - component: {fileID: 6149685810869579981} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2673114980991062 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3050362772334548697} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5802092550609450754} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -36} + m_SizeDelta: {x: 160, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &1635713923479228532 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3050362772334548697} + m_CullTransparentMesh: 0 +--- !u!114 &7500801496791559709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3050362772334548697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7318288332265493699 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3050362772334548697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7500801496791559709} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 7500801496791559709} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &6149685810869579981 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3050362772334548697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!1 &9003385506253720779 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5802092550609450754} + - component: {fileID: 8539526844436002148} + - component: {fileID: 1480094620036461527} + - component: {fileID: 8554790275978124321} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5802092550609450754 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9003385506253720779} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2673114980991062} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8539526844436002148 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9003385506253720779} + m_CullTransparentMesh: 0 +--- !u!114 &1480094620036461527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9003385506253720779} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!114 &8554790275978124321 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9003385506253720779} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Subscribe + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/UI/Color Scheme/UI Component Prefabs/Button.prefab.meta b/UI/Color Scheme/UI Component Prefabs/Button.prefab.meta new file mode 100644 index 0000000..51963c5 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/Button.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9bde00a16f32d6d42a1280198365e78b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/UI Component Prefabs/Close (X).prefab b/UI/Color Scheme/UI Component Prefabs/Close (X).prefab new file mode 100644 index 0000000..8fb91b9 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/Close (X).prefab @@ -0,0 +1,273 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5630672464362638007 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1279836047344415325} + - component: {fileID: 4875515034278877415} + - component: {fileID: 1558276951444812434} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1279836047344415325 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630672464362638007} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2380536337945314739} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 12, y: 12} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4875515034278877415 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630672464362638007} + m_CullTransparentMesh: 0 +--- !u!114 &1558276951444812434 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5630672464362638007} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 91067186e3f58f84da3d9e44e806d5a8, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &6223212484800735567 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2380536337945314739} + - component: {fileID: 4937985049441195289} + - component: {fileID: 6223212484800735560} + - component: {fileID: 6223212484800735566} + m_Layer: 5 + m_Name: Close (X) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2380536337945314739 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6223212484800735567} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1279836047344415325} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -40, y: -40} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 1, y: 1} +--- !u!222 &4937985049441195289 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6223212484800735567} + m_CullTransparentMesh: 0 +--- !u!114 &6223212484800735560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6223212484800735567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &6223212484800735566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6223212484800735567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6223212484800735560} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: CloseDownloadQueuePanel + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 6223212484800735560} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 1558276951444812434} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] diff --git a/UI/Color Scheme/UI Component Prefabs/Close (X).prefab.meta b/UI/Color Scheme/UI Component Prefabs/Close (X).prefab.meta new file mode 100644 index 0000000..c4e5374 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/Close (X).prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/UI Component Prefabs/Dropdown.prefab b/UI/Color Scheme/UI Component Prefabs/Dropdown.prefab new file mode 100644 index 0000000..ec14a8a --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/Dropdown.prefab @@ -0,0 +1,1636 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &922164442777049922 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4551140308871664759} + - component: {fileID: 1485384941863505574} + - component: {fileID: 7926923080811124048} + - component: {fileID: 2624685201049225731} + m_Layer: 5 + m_Name: Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4551140308871664759 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 922164442777049922} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8415282165173031212} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1485384941863505574 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 922164442777049922} + m_CullTransparentMesh: 0 +--- !u!114 &7926923080811124048 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 922164442777049922} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bc62e97fd943d4c4b9c6037db82c8230, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2624685201049225731 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 922164442777049922} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &6055993957581084615 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 337598424600556439} + - component: {fileID: 8230867576513015196} + - component: {fileID: 6096110003026377264} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &337598424600556439 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6055993957581084615} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8415282166504170332} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8230867576513015196 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6055993957581084615} + m_CullTransparentMesh: 0 +--- !u!114 &6096110003026377264 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6055993957581084615} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Subscribed mods + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 0} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 0 + m_fontSizeMax: 0 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 1 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6917729051966963922 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3943750464946847986} + - component: {fileID: 5528740057364720671} + - component: {fileID: 9151929098982221421} + - component: {fileID: 7980705230158606494} + - component: {fileID: 7830902711092647608} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3943750464946847986 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917729051966963922} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 9030708627163966507} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 171.51, y: -20} + m_SizeDelta: {x: 40.57, y: 15.22} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &5528740057364720671 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917729051966963922} + m_CullTransparentMesh: 0 +--- !u!114 &9151929098982221421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917729051966963922} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &7980705230158606494 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917729051966963922} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: English + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7830902711092647608 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917729051966963922} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &7425031109443226708 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4502623724393616370} + - component: {fileID: 6781846078896547496} + - component: {fileID: 7995833267917793518} + - component: {fileID: 6947373515689822312} + - component: {fileID: 4991488087841201526} + m_Layer: 5 + m_Name: 'Sort by:' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4502623724393616370 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7425031109443226708} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 9030708627163966507} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 53.59, y: 13.41} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &6781846078896547496 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7425031109443226708} + m_CullTransparentMesh: 0 +--- !u!114 &7995833267917793518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7425031109443226708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &6947373515689822312 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7425031109443226708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Language + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4991488087841201526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7425031109443226708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &8179523019579004526 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9030708627163966507} + - component: {fileID: 1715659005967758140} + m_Layer: 5 + m_Name: Text Layout + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9030708627163966507 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8179523019579004526} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4502623724393616370} + - {fileID: 3943750464946847986} + m_Father: {fileID: 8415282165173031212} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: -70, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1715659005967758140 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8179523019579004526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &8415282165173031213 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8415282165173031212} + - component: {fileID: 8415282165173031209} + - component: {fileID: 8415282165173031210} + - component: {fileID: 8415282165173031208} + - component: {fileID: 8415282165173031211} + m_Layer: 5 + m_Name: Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8415282165173031212 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165173031213} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 9030708627163966507} + - {fileID: 8415282165186696094} + - {fileID: 8415282166446179741} + - {fileID: 4551140308871664759} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 212, y: 40} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &8415282165173031209 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165173031213} + m_CullTransparentMesh: 0 +--- !u!114 &8415282165173031210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165173031213} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8415282165173031208 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165173031213} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7f173c11dfda5a4c9a9860f473a14b7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8415282165173031210} + m_Template: {fileID: 8415282166446179741} + m_CaptionText: {fileID: 7980705230158606494} + m_CaptionImage: {fileID: 0} + m_Placeholder: {fileID: 0} + m_ItemText: {fileID: 6096110003026377264} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: English + m_Image: {fileID: 0} + - m_Text: Unsubscribed + m_Image: {fileID: 0} + - m_Text: All mods + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: OnTranslationDropdownChange + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_AlphaFadeSpeed: 0.15 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 8415282165173031210} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8831ad7cc6913f64791202833e0e7ded, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8471ca04d7df332408a7a99c388ec2bd, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8831ad7cc6913f64791202833e0e7ded, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 8471ca04d7df332408a7a99c388ec2bd, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 1 + enableOnHighlight: 0 + enableOnPressed: 0 + enableOnDisabled: 1 + isControllerButtonIcon: 0 + - target: {fileID: 8415282165186696093} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7980705230158606494} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7926923080811124048} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childDropdowns: [] +--- !u!114 &8415282165173031211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165173031213} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 10 +--- !u!1 &8415282165186696095 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8415282165186696094} + - component: {fileID: 8415282165186696092} + - component: {fileID: 8415282165186696093} + - component: {fileID: 5526653063235773069} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8415282165186696094 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165186696095} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8415282165173031212} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -30, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8415282165186696092 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165186696095} + m_CullTransparentMesh: 0 +--- !u!114 &8415282165186696093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165186696095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 743f32884109b9b479d408b546e30dc2, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5526653063235773069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165186696095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &8415282165435699412 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8415282165435699411} + - component: {fileID: 8415282165435699439} + - component: {fileID: 8415282165435699408} + - component: {fileID: 8415282165435699409} + - component: {fileID: 8415282165435699410} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8415282165435699411 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165435699412} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8415282166519795445} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8415282165435699439 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165435699412} + m_CullTransparentMesh: 0 +--- !u!114 &8415282165435699408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165435699412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8415282165435699409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165435699412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &8415282165435699410 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282165435699412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &8415282166080464475 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8415282166080464474} + - component: {fileID: 8415282166080464472} + - component: {fileID: 8415282166080464473} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8415282166080464474 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166080464475} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8415282166504170332} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 25, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8415282166080464472 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166080464475} + m_CullTransparentMesh: 0 +--- !u!114 &8415282166080464473 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166080464475} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8415282166446179742 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8415282166446179741} + - component: {fileID: 8415282166446179738} + - component: {fileID: 8415282166446179739} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8415282166446179741 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166446179742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8415282166519795445} + m_Father: {fileID: 8415282165173031212} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8415282166446179738 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166446179742} + m_CullTransparentMesh: 0 +--- !u!114 &8415282166446179739 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166446179742} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8415282166504170333 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8415282166504170332} + - component: {fileID: 8415282166504170330} + - component: {fileID: 8415282166504170331} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8415282166504170332 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166504170333} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8415282166793483453} + - {fileID: 8415282166080464474} + - {fileID: 337598424600556439} + m_Father: {fileID: 8415282166519795445} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 162.5, y: -24} + m_SizeDelta: {x: 325, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &8415282166504170330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166504170333} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c834cada87fd6a740a2602fcb50cc1f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8415282166793483452} + toggleTransition: 1 + graphic: {fileID: 8415282166080464473} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 8415282166793483452} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 0 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 1 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 1 + enableOnHighlight: 0 + enableOnPressed: 0 + enableOnDisabled: 1 + isControllerButtonIcon: 0 +--- !u!114 &8415282166504170331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166504170333} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!1 &8415282166519795446 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8415282166519795445} + - component: {fileID: 8415282166519795442} + - component: {fileID: 8415282166519795443} + - component: {fileID: 8415282166519795444} + - component: {fileID: 8415282166519795440} + - component: {fileID: 8415282166519795441} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8415282166519795445 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166519795446} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8415282166504170332} + - {fileID: 8415282165435699411} + m_Father: {fileID: 8415282166446179741} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &8415282166519795442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166519795446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!222 &8415282166519795443 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166519795446} + m_CullTransparentMesh: 0 +--- !u!114 &8415282166519795444 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166519795446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8415282166519795440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166519795446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &8415282166519795441 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166519795446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &8415282166793483454 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8415282166793483453} + - component: {fileID: 8415282166793483451} + - component: {fileID: 8415282166793483452} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8415282166793483453 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166793483454} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8415282166504170332} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8415282166793483451 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166793483454} + m_CullTransparentMesh: 0 +--- !u!114 &8415282166793483452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8415282166793483454} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/UI/Color Scheme/UI Component Prefabs/Dropdown.prefab.meta b/UI/Color Scheme/UI Component Prefabs/Dropdown.prefab.meta new file mode 100644 index 0000000..4765c8d --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/Dropdown.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 50b3a7c8f9573ab4bb339bf803ddeff7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/UI Component Prefabs/InputField.prefab b/UI/Color Scheme/UI Component Prefabs/InputField.prefab new file mode 100644 index 0000000..31c7932 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/InputField.prefab @@ -0,0 +1,1002 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3583501032904820050 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357505246666942, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3583501032904820051} + - component: {fileID: 3583501032904820062} + - component: {fileID: 3583501032904820061} + - component: {fileID: 3583501032904820060} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3583501032904820051 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357505246666943, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501032904820050} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6288028452739536919} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3583501032904820062 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357505246666930, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501032904820050} + m_CullTransparentMesh: 0 +--- !u!114 &3583501032904820061 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357505246666929, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501032904820050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3583501032904820061} + characterCount: 1 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3583501032904820060 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357505246666928, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501032904820050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &3583501033932969197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357504252113153, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3583501033932969198} + - component: {fileID: 3583501033932969193} + - component: {fileID: 3583501033932969192} + - component: {fileID: 3583501033932969199} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3583501033932969198 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357504252113154, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501033932969197} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6288028452739536919} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3583501033932969193 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357504252113157, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501033932969197} + m_CullTransparentMesh: 0 +--- !u!114 &3583501033932969192 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357504252113156, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501033932969197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Enter keyword + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2147483647 + m_fontColor: {r: 1, g: 1, b: 1, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3583501033932969192} + characterCount: 13 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3583501033932969199 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3608357504252113155, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501033932969197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &3583501034654577055 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3583501034654577048} + - component: {fileID: 3583501034654577051} + - component: {fileID: 3583501034654577050} + - component: {fileID: 3583501034654577049} + m_Layer: 5 + m_Name: pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3583501034654577048 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501034654577055} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6288028451827600422} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -48} + m_SizeDelta: {x: 0, y: 1} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3583501034654577051 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501034654577055} + m_CullTransparentMesh: 0 +--- !u!114 &3583501034654577050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501034654577055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &3583501034654577049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3583501034654577055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &6288028450745375127 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6288028450745375126} + - component: {fileID: 6288028450745375131} + - component: {fileID: 6288028450745375128} + - component: {fileID: 3583501034491646527} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6288028450745375126 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028450745375127} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6288028451827600422} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 5, y: -8} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 1} +--- !u!222 &6288028450745375131 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028450745375127} + m_CullTransparentMesh: 0 +--- !u!114 &6288028450745375128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028450745375127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9add6864895115c4587c2a86d9ba1a46, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &3583501034491646527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028450745375127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &6288028451827600423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6288028451827600422} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6288028451827600422 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028451827600423} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6288028450745375126} + - {fileID: 6288028452663676799} + - {fileID: 3583501034654577048} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 280, y: -84} + m_SizeDelta: {x: 560, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &6288028452663676796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 6119197495652215440, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6288028452663676799} + - component: {fileID: 6288028452663676035} + - component: {fileID: 6288028452663676033} + - component: {fileID: 4361742436300990387} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6288028452663676799 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028452663676796} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6288028452739536919} + - {fileID: 1591359431281854446} + m_Father: {fileID: 6288028451827600422} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 48} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &6288028452663676035 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 6119197495652215151, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028452663676796} + m_CullTransparentMesh: 0 +--- !u!114 &6288028452663676033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 6119197495652215149, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028452663676796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1465265955689522173} + m_TextViewport: {fileID: 6288028452739536919} + m_TextComponent: {fileID: 3583501032904820061} + m_Placeholder: {fileID: 3583501033932969192} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &4361742436300990387 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 4548728663795401311, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028452663676796} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + inputFieldTitle: Search + inputFieldPlaceholderText: Search... + keyboardtype: 1 + inputField: {fileID: 6288028452663676033} +--- !u!1 &6288028452739536916 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 6119197495593074168, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6288028452739536919} + - component: {fileID: 6288028452739536918} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6288028452739536919 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 6119197495593074171, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028452739536916} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3583501033932969198} + - {fileID: 3583501032904820051} + m_Father: {fileID: 6288028452663676799} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 20, y: 0} + m_SizeDelta: {x: -40, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6288028452739536918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 6119197495593074170, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6288028452739536916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -146154839, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8471170308171773233 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 8514043821895717085, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1591359431281854446} + - component: {fileID: 4024907407051286576} + - component: {fileID: 1465265955689522173} + - component: {fileID: 6174691219766199438} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1591359431281854446 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 1566678471178707458, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8471170308171773233} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6288028452663676799} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4024907407051286576 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 3779371978146663900, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8471170308171773233} + m_CullTransparentMesh: 1 +--- !u!114 &1465265955689522173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 1728813413893064209, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8471170308171773233} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 91c8a28ebcde6ac469e4ad1171ed8847, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &6174691219766199438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 6203912787354018146, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + m_PrefabInstance: {fileID: 263549898427606508} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8471170308171773233} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1001 &263549898427606508 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6288028451827600422} + m_Modifications: + - target: {fileID: 4548728663795401311, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: inputFieldTitle + value: Search + objectReference: {fileID: 0} + - target: {fileID: 4548728663795401311, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: inputFieldPlaceholderText + value: Search... + objectReference: {fileID: 0} + - target: {fileID: 4548728663795401311, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: keyboardtype + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215440, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_Name + value: InputField (TMP) + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_SizeDelta.y + value: 48 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6119197495652215443, guid: c7116525927426f48accdb6f43c34b35, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c7116525927426f48accdb6f43c34b35, type: 3} diff --git a/UI/Color Scheme/UI Component Prefabs/InputField.prefab.meta b/UI/Color Scheme/UI Component Prefabs/InputField.prefab.meta new file mode 100644 index 0000000..11695e8 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/InputField.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 41734941304f2e843ac339b5227f4c8b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Color Scheme/UI Component Prefabs/More options.prefab b/UI/Color Scheme/UI Component Prefabs/More options.prefab new file mode 100644 index 0000000..9d02e77 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/More options.prefab @@ -0,0 +1,608 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1020140050670541509 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2760373121462030376} + - component: {fileID: 7548900683352953665} + - component: {fileID: 1020140050670541510} + - component: {fileID: 1020140050670541511} + - component: {fileID: 1020140050670541528} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2760373121462030376 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020140050670541509} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2996962303814152134} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 70.695, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7548900683352953665 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020140050670541509} + m_CullTransparentMesh: 0 +--- !u!114 &1020140050670541510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020140050670541509} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &1020140050670541511 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020140050670541509} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: More options + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1020140050670541528 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020140050670541509} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &2639670795910479274 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5484685534411531537} + - component: {fileID: 2066264164308827229} + - component: {fileID: 8440295978673225185} + - component: {fileID: 3273406580189357525} + m_Layer: 5 + m_Name: Cue (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5484685534411531537 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2639670795910479274} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6697462529236771462} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 12, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &2066264164308827229 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2639670795910479274} + m_CullTransparentMesh: 0 +--- !u!114 &8440295978673225185 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2639670795910479274} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 254acc7aafd98ab4586b41fb9c0c1bee, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3273406580189357525 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2639670795910479274} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 8440295978673225185} + config: {fileID: 11400000, guid: c0f94355830c579428077573555b77e2, type: 2} +--- !u!1 &6697462529236771461 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6697462529236771462} + - component: {fileID: 6697462529236771480} + - component: {fileID: 6697462529236771463} + - component: {fileID: 1347879529693467513} + m_Layer: 5 + m_Name: Cue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6697462529236771462 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6697462529236771461} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5484685534411531537} + m_Father: {fileID: 2996962303814152134} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &6697462529236771480 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6697462529236771461} + m_CullTransparentMesh: 0 +--- !u!114 &6697462529236771463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6697462529236771461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1347879529693467513 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6697462529236771461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 6697462529236771463} + config: {fileID: 11400000, guid: f61575af3474946408f87595370cf4ad, type: 2} +--- !u!1 &6828387984629629754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2996962303814152134} + - component: {fileID: 5483479186961481580} + - component: {fileID: 6828387984629629757} + - component: {fileID: 6828387984629629756} + - component: {fileID: 6828387984629629755} + m_Layer: 5 + m_Name: More options + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2996962303814152134 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6828387984629629754} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2760373121462030376} + - {fileID: 6697462529236771462} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 100, y: -20} + m_SizeDelta: {x: 200, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5483479186961481580 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6828387984629629754} + m_CullTransparentMesh: 0 +--- !u!114 &6828387984629629757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6828387984629629754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6828387984629629756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6828387984629629754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 16 + m_Right: 16 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &6828387984629629755 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6828387984629629754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6828387984629629757} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 6697462529236771463} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 6828387984629629757} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 1020140050670541511} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 5 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] diff --git a/UI/Color Scheme/UI Component Prefabs/More options.prefab.meta b/UI/Color Scheme/UI Component Prefabs/More options.prefab.meta new file mode 100644 index 0000000..cbdee99 --- /dev/null +++ b/UI/Color Scheme/UI Component Prefabs/More options.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 71af8a9a5a69a5648af22465acf51a99 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Editor.meta b/UI/Editor.meta new file mode 100644 index 0000000..5548af3 --- /dev/null +++ b/UI/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1645685fdc9bd1f41b60bb53a2f29cd6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Editor/ButtonAttribute.cs b/UI/Editor/ButtonAttribute.cs new file mode 100644 index 0000000..4c5a06d --- /dev/null +++ b/UI/Editor/ButtonAttribute.cs @@ -0,0 +1,7 @@ +using System; + +namespace ModIOBrowser +{ + [AttributeUsage(AttributeTargets.Method)] + public class ExposeMethodInEditorAttribute : Attribute { } +} diff --git a/UI/Editor/ButtonAttribute.cs.meta b/UI/Editor/ButtonAttribute.cs.meta new file mode 100644 index 0000000..c68206c --- /dev/null +++ b/UI/Editor/ButtonAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8f3cbfe99a5f50488c707b730e3c28d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Editor/ColorSchemeEditor.cs b/UI/Editor/ColorSchemeEditor.cs new file mode 100644 index 0000000..ab658e4 --- /dev/null +++ b/UI/Editor/ColorSchemeEditor.cs @@ -0,0 +1,56 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; + +namespace ModIOBrowser +{ + + + [CustomEditor(typeof(ColorScheme))] + internal class ColorSchemeEditor : Editor + { + public override void OnInspectorGUI() + { + ColorScheme myTarget = (ColorScheme)target; + + if(GUILayout.Button("Restore Default Colors")) + { + myTarget.SetColorsToDefault(); + myTarget.RefreshUI(); + } + + myTarget.Dark1 = EditorGUILayout.ColorField("Dark1", myTarget.Dark1); + myTarget.Dark2 = EditorGUILayout.ColorField("Dark2", myTarget.Dark2); + myTarget.Dark3 = EditorGUILayout.ColorField("Dark3", myTarget.Dark3); + myTarget.White = EditorGUILayout.ColorField("White", myTarget.White); + + myTarget.Highlight = EditorGUILayout.ColorField("Highlight", myTarget.Highlight); + myTarget.Inactive1 = EditorGUILayout.ColorField("Inactive1", myTarget.Inactive1); + myTarget.Inactive2 = EditorGUILayout.ColorField("Inactive2", myTarget.Inactive2); + myTarget.Inactive3 = EditorGUILayout.ColorField("Inactive3", myTarget.Inactive3); + myTarget.PositiveAccent = EditorGUILayout.ColorField("Positive Accent", myTarget.PositiveAccent); + myTarget.NegativeAccent = EditorGUILayout.ColorField("Negative Accent", myTarget.NegativeAccent); + + myTarget.LightMode = EditorGUILayout.Toggle("Light Mode", myTarget.LightMode); + + if(GUILayout.Button("Refresh Layout")) + { + myTarget.RefreshUI(); + EditorSceneManager.MarkSceneDirty(myTarget.gameObject.scene); + EditorUtility.SetDirty(myTarget); + } + EditorGUILayout.Space(); + + if(GUI.changed) + { + myTarget.RefreshUI(); + EditorSceneManager.MarkSceneDirty(myTarget.gameObject.scene); + EditorUtility.SetDirty(myTarget); + } + } + } +} + +#endif diff --git a/UI/Editor/ColorSchemeEditor.cs.meta b/UI/Editor/ColorSchemeEditor.cs.meta new file mode 100644 index 0000000..25009c8 --- /dev/null +++ b/UI/Editor/ColorSchemeEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9d043382c5d487d48b9be24e831f74ec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Editor/ColorSetterEditor.cs b/UI/Editor/ColorSetterEditor.cs new file mode 100644 index 0000000..2256937 --- /dev/null +++ b/UI/Editor/ColorSetterEditor.cs @@ -0,0 +1,26 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEngine; + +namespace ModIOBrowser +{ + [CustomEditor(typeof(ColorSetter))] + public class ColorSetterEditor : Editor + { + public override void OnInspectorGUI() + { + ColorSetter myTarget = (ColorSetter)target; + + if(GUILayout.Button("Refresh")) + { + myTarget.Refresh(); + } + + myTarget.type = (ColorSetterType)EditorGUILayout.EnumPopup("Palette", myTarget.type); + } + } +} + +#endif + diff --git a/UI/Editor/ColorSetterEditor.cs.meta b/UI/Editor/ColorSetterEditor.cs.meta new file mode 100644 index 0000000..a44a970 --- /dev/null +++ b/UI/Editor/ColorSetterEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d6dde68d2fa4cea4da7b187dde3d566c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Editor/MonoBehaviourCustomEditor.cs b/UI/Editor/MonoBehaviourCustomEditor.cs new file mode 100644 index 0000000..17c9fde --- /dev/null +++ b/UI/Editor/MonoBehaviourCustomEditor.cs @@ -0,0 +1,43 @@ +#if UNITY_EDITOR + +using System.Reflection; +using UnityEditor; +using UnityEngine; + +namespace ModIOBrowser +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(MonoBehaviour), true)] + public class MonoBehaviourCustomEditor : Editor + { + public override void OnInspectorGUI() + { + DrawDefaultInspector(); + + foreach(var method in target.GetType().GetMethods(BindingFlags.NonPublic|BindingFlags.Public|BindingFlags.Instance)) + { + var attributes = method.GetCustomAttributes(typeof(ExposeMethodInEditorAttribute), true); + if(attributes.Length > 0) + { + string buttonName = method.Name[0].ToString(); + foreach(var item in method.Name.Substring(1)) + { + if(char.IsUpper(item)) + { + buttonName += " " + item.ToString(); + } + else + buttonName += item.ToString(); + } + + if(GUILayout.Button(buttonName)) + { + ((MonoBehaviour)target).Invoke(method.Name, 0f); + } + } + } + } + } +} + +#endif diff --git a/UI/Editor/MonoBehaviourCustomEditor.cs.meta b/UI/Editor/MonoBehaviourCustomEditor.cs.meta new file mode 100644 index 0000000..165c496 --- /dev/null +++ b/UI/Editor/MonoBehaviourCustomEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c945121050a51174080bf3756ce28792 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Editor/MultiTargetButtonEditor.cs b/UI/Editor/MultiTargetButtonEditor.cs new file mode 100644 index 0000000..1fbd5dd --- /dev/null +++ b/UI/Editor/MultiTargetButtonEditor.cs @@ -0,0 +1,119 @@ +#if UNITY_EDITOR + +using UnityEngine; +using UnityEngine.UI; +using UnityEditor; +using UnityEditor.UI; + +namespace ModIOBrowser +{ + [CustomEditor(typeof(MultiTargetButton))] + public class MultiTargetButtonEditor : ButtonEditor + { + public override void OnInspectorGUI() + { + MultiTargetButton myTarget = (MultiTargetButton)target; + + myTarget.scheme = (ColorScheme)EditorGUILayout.ObjectField("Color Scheme", myTarget.scheme, typeof(ColorScheme), true); + + base.OnInspectorGUI(); + + var property = serializedObject.FindProperty("childButtons"); + serializedObject.Update(); + EditorGUILayout.PropertyField(property, true); + + GUIStyle labelStyle = new GUIStyle(); + labelStyle.alignment = TextAnchor.MiddleCenter; + labelStyle.fontStyle = FontStyle.Bold; + + Target removeTarget = null; + foreach(var t in myTarget.extraTargets) + { + EditorGUILayout.Space(); + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Added Target", labelStyle); + + t.transition = (MultiTargetTransition)EditorGUILayout.EnumPopup("Transition Type", t.transition); + + switch(t.transition) + { + case MultiTargetTransition.None: + break; + case MultiTargetTransition.ColorTint: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + ColorBlock colors = t.colors; + colors.normalColor = EditorGUILayout.ColorField("Normal", colors.normalColor); + colors.highlightedColor = EditorGUILayout.ColorField("Highlighted", colors.highlightedColor); + colors.pressedColor = EditorGUILayout.ColorField("Pressed", colors.pressedColor); + colors.disabledColor = EditorGUILayout.ColorField("Disabled", colors.disabledColor); + colors.colorMultiplier = EditorGUILayout.Slider("Color Multiplier", colors.colorMultiplier, 1f, 5f); + colors.fadeDuration = EditorGUILayout.FloatField("Fade Duration", colors.fadeDuration); + t.colors = colors; + break; + case MultiTargetTransition.SpriteSwap: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + SpriteState sprites = t.spriteState; + sprites.highlightedSprite = (Sprite)EditorGUILayout.ObjectField("Highlighted", sprites.highlightedSprite, typeof(Sprite), true); + sprites.pressedSprite = (Sprite)EditorGUILayout.ObjectField("Pressed", sprites.pressedSprite, typeof(Sprite), true); + sprites.disabledSprite = (Sprite)EditorGUILayout.ObjectField("Disabled", sprites.disabledSprite, typeof(Sprite), true); + t.spriteState = sprites; + break; + case MultiTargetTransition.Animation: + t.animator = (Animator)EditorGUILayout.ObjectField("Animator Controller", t.animator, typeof(Animator), true); + AnimationTriggers triggers = t.animationTriggers; + triggers.normalTrigger = EditorGUILayout.TextField("Normal Trigger", triggers.normalTrigger); + triggers.highlightedTrigger = EditorGUILayout.TextField("Highlighted Trigger", triggers.highlightedTrigger); + triggers.pressedTrigger = EditorGUILayout.TextField("Pressed Trigger", triggers.pressedTrigger); + triggers.disabledTrigger = EditorGUILayout.TextField("Disabled Trigger", triggers.disabledTrigger); + t.animationTriggers = triggers; + break; + case MultiTargetTransition.DisableEnable: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + t.isControllerButtonIcon = EditorGUILayout.Toggle("is Controller only icon", t.isControllerButtonIcon); + t.enableOnNormal = EditorGUILayout.Toggle("Normal", t.enableOnNormal); + t.enableOnHighlight = EditorGUILayout.Toggle("Highlighted", t.enableOnHighlight); + t.enableOnPressed = EditorGUILayout.Toggle("Pressed", t.enableOnPressed); + t.enableOnDisabled = EditorGUILayout.Toggle("Disabled", t.enableOnDisabled); + break; + case MultiTargetTransition.ColorScheme: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + t.colorSchemeBlock.Normal = (ColorSetterType)EditorGUILayout.EnumPopup("Normal", t.colorSchemeBlock.Normal); + t.colorSchemeBlock.NormalColorAlpha = EditorGUILayout.Slider("Normal Alpha", t.colorSchemeBlock.NormalColorAlpha, 0f, 1f); + t.colorSchemeBlock.Highlighted = (ColorSetterType)EditorGUILayout.EnumPopup("Highlighted", t.colorSchemeBlock.Highlighted); + t.colorSchemeBlock.HighlightedColorAlpha = EditorGUILayout.Slider("Highlighted Alpha", t.colorSchemeBlock.HighlightedColorAlpha, 0f, 1f); + t.colorSchemeBlock.Pressed = (ColorSetterType)EditorGUILayout.EnumPopup("Pressed", t.colorSchemeBlock.Pressed); + t.colorSchemeBlock.PressedColorAlpha = EditorGUILayout.Slider("Pressed Alpha", t.colorSchemeBlock.PressedColorAlpha, 0f, 1f); + t.colorSchemeBlock.Disabled = (ColorSetterType)EditorGUILayout.EnumPopup("Disabled", t.colorSchemeBlock.Disabled); + t.colorSchemeBlock.DisabledColorAlpha = EditorGUILayout.Slider("Disabled Alpha", t.colorSchemeBlock.DisabledColorAlpha, 0f, 1f); + t.colorSchemeBlock.ColorMultiplier = EditorGUILayout.Slider("Color Multiplier", t.colorSchemeBlock.ColorMultiplier, 1f, 5f); + t.colorSchemeBlock.FadeDuration = EditorGUILayout.FloatField("Fade Duration", t.colorSchemeBlock.FadeDuration); + break; + } + if(GUILayout.Button("Remove")) + { + removeTarget = t; + } + } + if(removeTarget != null) + { + myTarget.extraTargets.Remove(removeTarget); + } + + EditorGUILayout.Space(); + EditorGUILayout.Space(); + if(GUILayout.Button("Add Target")) + { + myTarget.extraTargets.Add(new Target()); + } + + if(GUI.changed) + { + Debug.Log("GUI Changed"); + serializedObject.ApplyModifiedProperties(); + EditorUtility.SetDirty(myTarget); + } + } + } +} + +#endif diff --git a/UI/Editor/MultiTargetButtonEditor.cs.meta b/UI/Editor/MultiTargetButtonEditor.cs.meta new file mode 100644 index 0000000..0505f2a --- /dev/null +++ b/UI/Editor/MultiTargetButtonEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f2519f0e2f46cdb49961b5619e036e2b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Editor/MultiTargetDropdownEditor.cs b/UI/Editor/MultiTargetDropdownEditor.cs new file mode 100644 index 0000000..9435761 --- /dev/null +++ b/UI/Editor/MultiTargetDropdownEditor.cs @@ -0,0 +1,118 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEditor.UI; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + [CustomEditor(typeof(MultiTargetDropdown))] + public class MultiTargetDropdownEditor : DropdownEditor + { + public override void OnInspectorGUI() + { + MultiTargetDropdown myTarget = (MultiTargetDropdown)target; + + if(myTarget.scheme == null) + { + myTarget.scheme = FindObjectOfType(); + } + myTarget.scheme = (ColorScheme)EditorGUILayout.ObjectField("Color Scheme", myTarget.scheme, typeof(ColorScheme), true); + + base.OnInspectorGUI(); + + GUIStyle labelStyle = new GUIStyle(); + labelStyle.alignment = TextAnchor.MiddleCenter; + labelStyle.fontStyle = UnityEngine.FontStyle.Bold; + + Target removeTarget = null; + foreach(var t in myTarget.extraTargets) + { + EditorGUILayout.Space(); + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Added Target", labelStyle); + + t.transition = (MultiTargetTransition)EditorGUILayout.EnumPopup("Transition Type", t.transition); + + switch(t.transition) + { + case MultiTargetTransition.None: + break; + case MultiTargetTransition.ColorTint: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + ColorBlock colors = t.colors; + colors.normalColor = EditorGUILayout.ColorField("Normal", colors.normalColor); + colors.highlightedColor = EditorGUILayout.ColorField("Highlighted", colors.highlightedColor); + colors.pressedColor = EditorGUILayout.ColorField("Pressed", colors.pressedColor); + colors.disabledColor = EditorGUILayout.ColorField("Disabled", colors.disabledColor); + colors.colorMultiplier = EditorGUILayout.Slider("Color Multiplier", colors.colorMultiplier, 1f, 5f); + ; + colors.fadeDuration = EditorGUILayout.FloatField("Fade Duration", colors.fadeDuration); + t.colors = colors; + break; + case MultiTargetTransition.SpriteSwap: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + SpriteState sprites = t.spriteState; + sprites.highlightedSprite = (Sprite)EditorGUILayout.ObjectField("Highlighted", sprites.highlightedSprite, typeof(Sprite), true); + sprites.pressedSprite = (Sprite)EditorGUILayout.ObjectField("Pressed", sprites.pressedSprite, typeof(Sprite), true); + sprites.disabledSprite = (Sprite)EditorGUILayout.ObjectField("Disabled", sprites.disabledSprite, typeof(Sprite), true); + t.spriteState = sprites; + break; + case MultiTargetTransition.Animation: + t.animator = (Animator)EditorGUILayout.ObjectField("Animator Controller", t.animator, typeof(Animator), true); + AnimationTriggers triggers = t.animationTriggers; + triggers.normalTrigger = EditorGUILayout.TextField("Normal Trigger", triggers.normalTrigger); + triggers.highlightedTrigger = EditorGUILayout.TextField("Highlighted Trigger", triggers.highlightedTrigger); + triggers.pressedTrigger = EditorGUILayout.TextField("Pressed Trigger", triggers.pressedTrigger); + triggers.disabledTrigger = EditorGUILayout.TextField("Disabled Trigger", triggers.disabledTrigger); + t.animationTriggers = triggers; + break; + case MultiTargetTransition.DisableEnable: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + t.enableOnNormal = EditorGUILayout.Toggle("Normal", t.enableOnNormal); + t.enableOnHighlight = EditorGUILayout.Toggle("Highlighted", t.enableOnHighlight); + t.enableOnPressed = EditorGUILayout.Toggle("Pressed", t.enableOnPressed); + t.enableOnDisabled = EditorGUILayout.Toggle("Disabled", t.enableOnDisabled); + break; + case MultiTargetTransition.ColorScheme: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + t.colorSchemeBlock.Normal = (ColorSetterType)EditorGUILayout.EnumPopup("Normal", t.colorSchemeBlock.Normal); + t.colorSchemeBlock.NormalColorAlpha = EditorGUILayout.Slider("Normal Alpha", t.colorSchemeBlock.NormalColorAlpha, 0f, 1f); + t.colorSchemeBlock.Highlighted = (ColorSetterType)EditorGUILayout.EnumPopup("Highlighted", t.colorSchemeBlock.Highlighted); + t.colorSchemeBlock.HighlightedColorAlpha = EditorGUILayout.Slider("Highlighted Alpha", t.colorSchemeBlock.HighlightedColorAlpha, 0f, 1f); + t.colorSchemeBlock.Pressed = (ColorSetterType)EditorGUILayout.EnumPopup("Pressed", t.colorSchemeBlock.Pressed); + t.colorSchemeBlock.PressedColorAlpha = EditorGUILayout.Slider("Pressed Alpha", t.colorSchemeBlock.PressedColorAlpha, 0f, 1f); + t.colorSchemeBlock.Disabled = (ColorSetterType)EditorGUILayout.EnumPopup("Disabled", t.colorSchemeBlock.Disabled); + t.colorSchemeBlock.DisabledColorAlpha = EditorGUILayout.Slider("Disabled Alpha", t.colorSchemeBlock.DisabledColorAlpha, 0f, 1f); + t.colorSchemeBlock.ColorMultiplier = EditorGUILayout.Slider("Color Multiplier", t.colorSchemeBlock.ColorMultiplier, 1f, 5f); + t.colorSchemeBlock.FadeDuration = EditorGUILayout.FloatField("Fade Duration", t.colorSchemeBlock.FadeDuration); + break; + } + if(GUILayout.Button("Remove")) + { + removeTarget = t; + } + } + if(removeTarget != null) + { + myTarget.extraTargets.Remove(removeTarget); + } + + EditorGUILayout.Space(); + EditorGUILayout.Space(); + if(GUILayout.Button("Add Target")) + { + myTarget.extraTargets.Add(new Target()); + } + + if(GUI.changed) + { + serializedObject.ApplyModifiedProperties(); + } + } + + } +} + +#endif \ No newline at end of file diff --git a/UI/Editor/MultiTargetDropdownEditor.cs.meta b/UI/Editor/MultiTargetDropdownEditor.cs.meta new file mode 100644 index 0000000..30eed3f --- /dev/null +++ b/UI/Editor/MultiTargetDropdownEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc6db35517c66e647a63cc7386ce3716 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Editor/MultiTargetToggleEditor.cs b/UI/Editor/MultiTargetToggleEditor.cs new file mode 100644 index 0000000..f707c06 --- /dev/null +++ b/UI/Editor/MultiTargetToggleEditor.cs @@ -0,0 +1,122 @@ +#if UNITY_EDITOR + +using UnityEditor; +using UnityEditor.UI; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + [CustomEditor(typeof(MultiTargetToggle))] + public class MultiTargetToggleEditor : ToggleEditor + { + public override void OnInspectorGUI() + { + + MultiTargetToggle myTarget = (MultiTargetToggle)target; + + if(myTarget.scheme == null) + { + myTarget.scheme = FindObjectOfType(); + } + myTarget.scheme = (ColorScheme)EditorGUILayout.ObjectField("Color Scheme", myTarget.scheme, typeof(ColorScheme), true); + + base.OnInspectorGUI(); + + GUIStyle labelStyle = new GUIStyle(); + labelStyle.alignment = TextAnchor.MiddleCenter; + labelStyle.fontStyle = UnityEngine.FontStyle.Bold; + + myTarget.targetIsOnIndicator = (GameObject)EditorGUILayout.ObjectField("Is On - Enabled Object", myTarget.targetIsOnIndicator, typeof(GameObject), true); + + myTarget.targetIsDisabledIndicator = (GameObject)EditorGUILayout.ObjectField("Is Disabled - Enabled Object", myTarget.targetIsDisabledIndicator, typeof(GameObject), true); + + Target removeTarget = null; + foreach(var t in myTarget.extraTargets) + { + EditorGUILayout.Space(); + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Added Target", labelStyle); + + t.transition = (MultiTargetTransition)EditorGUILayout.EnumPopup("Transition Type", t.transition); + + switch(t.transition) + { + case MultiTargetTransition.None: + break; + case MultiTargetTransition.ColorTint: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + ColorBlock colors = t.colors; + colors.normalColor = EditorGUILayout.ColorField("Normal", colors.normalColor); + colors.highlightedColor = EditorGUILayout.ColorField("Highlighted", colors.highlightedColor); + colors.pressedColor = EditorGUILayout.ColorField("Pressed", colors.pressedColor); + colors.disabledColor = EditorGUILayout.ColorField("Disabled", colors.disabledColor); + colors.colorMultiplier = EditorGUILayout.Slider("Color Multiplier", colors.colorMultiplier, 1f, 5f); + ; + colors.fadeDuration = EditorGUILayout.FloatField("Fade Duration", colors.fadeDuration); + t.colors = colors; + break; + case MultiTargetTransition.SpriteSwap: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + SpriteState sprites = t.spriteState; + sprites.highlightedSprite = (Sprite)EditorGUILayout.ObjectField("Highlighted", sprites.highlightedSprite, typeof(Sprite), true); + sprites.pressedSprite = (Sprite)EditorGUILayout.ObjectField("Pressed", sprites.pressedSprite, typeof(Sprite), true); + sprites.disabledSprite = (Sprite)EditorGUILayout.ObjectField("Disabled", sprites.disabledSprite, typeof(Sprite), true); + t.spriteState = sprites; + break; + case MultiTargetTransition.Animation: + t.animator = (Animator)EditorGUILayout.ObjectField("Animator Controller", t.animator, typeof(Animator), true); + AnimationTriggers triggers = t.animationTriggers; + triggers.normalTrigger = EditorGUILayout.TextField("Normal Trigger", triggers.normalTrigger); + triggers.highlightedTrigger = EditorGUILayout.TextField("Highlighted Trigger", triggers.highlightedTrigger); + triggers.pressedTrigger = EditorGUILayout.TextField("Pressed Trigger", triggers.pressedTrigger); + triggers.disabledTrigger = EditorGUILayout.TextField("Disabled Trigger", triggers.disabledTrigger); + t.animationTriggers = triggers; + break; + case MultiTargetTransition.DisableEnable: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + t.enableOnNormal = EditorGUILayout.Toggle("Normal", t.enableOnNormal); + t.enableOnHighlight = EditorGUILayout.Toggle("Highlighted", t.enableOnHighlight); + t.enableOnPressed = EditorGUILayout.Toggle("Pressed", t.enableOnPressed); + t.enableOnDisabled = EditorGUILayout.Toggle("Disabled", t.enableOnDisabled); + break; + case MultiTargetTransition.ColorScheme: + t.target = (Graphic)EditorGUILayout.ObjectField("Target", t.target, typeof(Graphic), true); + t.colorSchemeBlock.Normal = (ColorSetterType)EditorGUILayout.EnumPopup("Normal", t.colorSchemeBlock.Normal); + t.colorSchemeBlock.NormalColorAlpha = EditorGUILayout.Slider("Normal Alpha", t.colorSchemeBlock.NormalColorAlpha, 0f, 1f); + t.colorSchemeBlock.Highlighted = (ColorSetterType)EditorGUILayout.EnumPopup("Highlighted", t.colorSchemeBlock.Highlighted); + t.colorSchemeBlock.HighlightedColorAlpha = EditorGUILayout.Slider("Highlighted Alpha", t.colorSchemeBlock.HighlightedColorAlpha, 0f, 1f); + t.colorSchemeBlock.Pressed = (ColorSetterType)EditorGUILayout.EnumPopup("Pressed", t.colorSchemeBlock.Pressed); + t.colorSchemeBlock.PressedColorAlpha = EditorGUILayout.Slider("Pressed Alpha", t.colorSchemeBlock.PressedColorAlpha, 0f, 1f); + t.colorSchemeBlock.Disabled = (ColorSetterType)EditorGUILayout.EnumPopup("Disabled", t.colorSchemeBlock.Disabled); + t.colorSchemeBlock.DisabledColorAlpha = EditorGUILayout.Slider("Disabled Alpha", t.colorSchemeBlock.DisabledColorAlpha, 0f, 1f); + t.colorSchemeBlock.ColorMultiplier = EditorGUILayout.Slider("Color Multiplier", t.colorSchemeBlock.ColorMultiplier, 1f, 5f); + t.colorSchemeBlock.FadeDuration = EditorGUILayout.FloatField("Fade Duration", t.colorSchemeBlock.FadeDuration); + break; + } + if(GUILayout.Button("Remove")) + { + removeTarget = t; + } + } + if(removeTarget != null) + { + myTarget.extraTargets.Remove(removeTarget); + } + + EditorGUILayout.Space(); + EditorGUILayout.Space(); + if(GUILayout.Button("Add Target")) + { + myTarget.extraTargets.Add(new Target()); + } + + if(GUI.changed) + { + serializedObject.ApplyModifiedProperties(); + } + } + } +} + +#endif \ No newline at end of file diff --git a/UI/Editor/MultiTargetToggleEditor.cs.meta b/UI/Editor/MultiTargetToggleEditor.cs.meta new file mode 100644 index 0000000..f14353a --- /dev/null +++ b/UI/Editor/MultiTargetToggleEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c9612e1315bc2e4ca56d1d3b94d816f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Examples.meta b/UI/Examples.meta new file mode 100644 index 0000000..6c06001 --- /dev/null +++ b/UI/Examples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ddd8022c81229b4e832c88a28ecf894 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Examples/Example Title Canvas.prefab b/UI/Examples/Example Title Canvas.prefab new file mode 100644 index 0000000..cceae57 --- /dev/null +++ b/UI/Examples/Example Title Canvas.prefab @@ -0,0 +1,5369 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &690550253159443226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3821350690394784548} + - component: {fileID: 8972533858194402224} + - component: {fileID: 2088110108775456844} + - component: {fileID: 9180623244518465093} + - component: {fileID: 7325699367544730875} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3821350690394784548 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 690550253159443226} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7544473027008418495} + - {fileID: 5272754974034447003} + - {fileID: 6493168478525747531} + - {fileID: 110089711008744220} + m_Father: {fileID: 6982984101525869207} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8972533858194402224 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 690550253159443226} + m_CullTransparentMesh: 0 +--- !u!114 &2088110108775456844 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 690550253159443226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Settings + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &9180623244518465093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 690550253159443226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &7325699367544730875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 690550253159443226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Settings + text: {fileID: 2088110108775456844} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &714240331438823907 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 110089711008744220} + - component: {fileID: 314989252032361575} + - component: {fileID: 8230895692331019197} + - component: {fileID: 1544223592} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &110089711008744220 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714240331438823907} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3821350690394784548} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 150, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &314989252032361575 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714240331438823907} + m_CullTransparentMesh: 0 +--- !u!114 &8230895692331019197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714240331438823907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1544223592 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 714240331438823907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 8230895692331019197} +--- !u!1 &5411492534193619289 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7544473027008418495} + - component: {fileID: 7502358501806587869} + - component: {fileID: 1675598491058277390} + - component: {fileID: 2951974581239114025} + m_Layer: 5 + m_Name: Bold font + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7544473027008418495 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5411492534193619289} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3821350690394784548} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7502358501806587869 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5411492534193619289} + m_CullTransparentMesh: 0 +--- !u!114 &1675598491058277390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5411492534193619289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Settings + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2951974581239114025 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5411492534193619289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Settings + text: {fileID: 1675598491058277390} + translatedLanguageFontPairingOverrides: {fileID: 11400000, guid: a09562b54e7c549d7b9df18941d695d5, + type: 2} +--- !u!1 &5949931777047081143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6493168478525747531} + - component: {fileID: 8404510205355057451} + - component: {fileID: 937706583610462185} + - component: {fileID: 583862110} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6493168478525747531 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5949931777047081143} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3821350690394784548} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8404510205355057451 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5949931777047081143} + m_CullTransparentMesh: 0 +--- !u!114 &937706583610462185 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5949931777047081143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &583862110 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5949931777047081143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 937706583610462185} +--- !u!1 &6679432251532783194 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5272754974034447003} + - component: {fileID: 2513281916511753838} + - component: {fileID: 7182150956267803969} + m_Layer: 5 + m_Name: Pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5272754974034447003 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6679432251532783194} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3821350690394784548} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 2} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &2513281916511753838 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6679432251532783194} + m_CullTransparentMesh: 0 +--- !u!114 &7182150956267803969 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6679432251532783194} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6998734621722633863 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6982984101525869207} + - component: {fileID: 2225795389408208152} + - component: {fileID: 897495905145406006} + - component: {fileID: 5117836231553663282} + - component: {fileID: 4639786619346526608} + m_Layer: 5 + m_Name: Settings Title Option + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6982984101525869207 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6998734621722633863} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3821350690394784548} + m_Father: {fileID: 7183562817345107312} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2225795389408208152 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6998734621722633863} + m_CullTransparentMesh: 0 +--- !u!114 &897495905145406006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6998734621722633863} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5117836231553663282 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6998734621722633863} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 897495905145406006} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 7183562815738721469} + m_MethodName: OpenSettings + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 1675598491058277390} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7182150956267803969} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 937706583610462185} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 8230895692331019197} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &4639786619346526608 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6998734621722633863} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5117836231553663282} + m_MethodName: OnDeselect + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 7183562815738721469} + m_MethodName: DeselectOtherTitles + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &7183562815274611392 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815274611399} + - component: {fileID: 7183562815274611397} + - component: {fileID: 7183562815274611398} + - component: {fileID: 7183562815274611396} + m_Layer: 5 + m_Name: Bold font + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562815274611399 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815274611392} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562816092791216} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815274611397 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815274611392} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815274611398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815274611392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Mods + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7183562815274611396 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815274611392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Mods + text: {fileID: 7183562815274611398} + translatedLanguageFontPairingOverrides: {fileID: 11400000, guid: a09562b54e7c549d7b9df18941d695d5, + type: 2} +--- !u!1 &7183562815496087994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815496087993} + - component: {fileID: 7183562815496087999} + - component: {fileID: 7183562815496087992} + - component: {fileID: 7183562815496087998} + - component: {fileID: 7183562815496087997} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562815496087993 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815496087994} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7183562815726400291} + - {fileID: 7183562816525895785} + - {fileID: 7183562816396195269} + - {fileID: 7183562815533826856} + m_Father: {fileID: 7183562816802668702} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815496087999 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815496087994} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815496087992 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815496087994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Play + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7183562815496087998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815496087994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &7183562815496087997 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815496087994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Play + text: {fileID: 7183562815496087992} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7183562815509748484 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815509748491} + - component: {fileID: 7183562815509748489} + - component: {fileID: 7183562815509748490} + m_Layer: 5 + m_Name: Image (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562815509748491 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815509748484} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815888202455} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 78, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815509748489 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815509748484} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815509748490 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815509748484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1abe564f196a7a54381c40c8ef7de55c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7183562815533826859 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815533826856} + - component: {fileID: 7183562815533826857} + - component: {fileID: 7183562815533826858} + - component: {fileID: 1458408124} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562815533826856 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815533826859} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815496087993} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 150, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815533826857 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815533826859} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815533826858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815533826859} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1458408124 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815533826859} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 7183562815533826858} +--- !u!1 &7183562815560642504 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815560642511} + - component: {fileID: 7183562815560642509} + - component: {fileID: 7183562815560642510} + - component: {fileID: 1816003759} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562815560642511 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815560642504} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815840021785} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 150, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815560642509 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815560642504} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815560642510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815560642504} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1816003759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815560642504} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 7183562815560642510} +--- !u!1 &7183562815579565199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815579565198} + - component: {fileID: 7183562815579565203} + - component: {fileID: 7183562815579565196} + - component: {fileID: 7183562815579565197} + - component: {fileID: 4345541296383894950} + m_Layer: 5 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562815579565198 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815579565199} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815888202455} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 130, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815579565203 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815579565199} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815579565196 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815579565199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Mod support by + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7183562815579565197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815579565199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &4345541296383894950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815579565199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Mod support by + text: {fileID: 7183562815579565196} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7183562815602179402 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815602179401} + - component: {fileID: 7183562815602179407} + - component: {fileID: 7183562815602179400} + - component: {fileID: 1000355098} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562815602179401 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815602179402} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562816092791216} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 150, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815602179407 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815602179402} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815602179400 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815602179402} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1000355098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815602179402} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 7183562815602179400} +--- !u!1 &7183562815726400284 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815726400291} + - component: {fileID: 7183562815726400290} + - component: {fileID: 7183562815726400289} + - component: {fileID: 7183562815726400288} + m_Layer: 5 + m_Name: Bold font + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562815726400291 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815726400284} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815496087993} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815726400290 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815726400284} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815726400289 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815726400284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Play + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7183562815726400288 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815726400284} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Play + text: {fileID: 7183562815726400289} + translatedLanguageFontPairingOverrides: {fileID: 11400000, guid: a09562b54e7c549d7b9df18941d695d5, + type: 2} +--- !u!1 &7183562815738721470 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815738721468} + - component: {fileID: 7183562815738721469} + m_Layer: 5 + m_Name: Example Title Scene Script + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562815738721468 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815738721470} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562816615436231} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7183562815738721469 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815738721470} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6311378238ed164439495924f4b3034e, type: 3} + m_Name: + m_EditorClassIdentifier: + DefaultSelection: {fileID: 7183562816802668697} + exampleSettingsPanel: {fileID: 3198406115590832636} + verticalControllerInput: Vertical + mouseInput: + - Mouse X + - Mouse Y + languageSelectionDropdown: {fileID: 1691157567688231595} +--- !u!1 &7183562815749736973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815749736972} + - component: {fileID: 7183562815749736978} + - component: {fileID: 7183562815749736979} + - component: {fileID: 91443809} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562815749736972 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815749736973} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562816092791216} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815749736978 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815749736973} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815749736979 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815749736973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &91443809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815749736973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 7183562815749736979} +--- !u!1 &7183562815840021786 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815840021785} + - component: {fileID: 7183562815840021791} + - component: {fileID: 7183562815840021784} + - component: {fileID: 7183562815840021790} + - component: {fileID: 7183562815840021789} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562815840021785 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815840021786} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7183562816163860837} + - {fileID: 7183562816018508198} + - {fileID: 7183562816102131884} + - {fileID: 7183562815560642511} + m_Father: {fileID: 7183562817131674667} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562815840021791 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815840021786} + m_CullTransparentMesh: 0 +--- !u!114 &7183562815840021784 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815840021786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Quit + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7183562815840021790 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815840021786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &7183562815840021789 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815840021786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Quit + text: {fileID: 7183562815840021784} + translatedLanguageFontPairingOverrides: {fileID: 11400000, guid: a09562b54e7c549d7b9df18941d695d5, + type: 2} +--- !u!1 &7183562815888202448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815888202455} + - component: {fileID: 7183562815888202454} + m_Layer: 5 + m_Name: Mod support by mod.io + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562815888202455 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815888202448} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7183562815579565198} + - {fileID: 7183562817182820739} + - {fileID: 7183562815509748491} + m_Father: {fileID: 7183562816474422964} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 24} + m_SizeDelta: {x: 560, y: 40} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &7183562815888202454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815888202448} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7183562815992702189 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562815992702188} + m_Layer: 5 + m_Name: Empty Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562815992702188 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562815992702189} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562817345107312} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7183562816016592632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816016592639} + - component: {fileID: 7183562816016592636} + - component: {fileID: 7183562816016592637} + - component: {fileID: 7183562816016592638} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562816016592639 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816016592632} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562816474422964} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 32, y: 459} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562816016592636 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816016592632} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816016592637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816016592632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: mod.io Browser + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 64 + m_fontSizeBase: 64 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7183562816016592638 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816016592632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &7183562816018508199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816018508198} + - component: {fileID: 7183562816018508196} + - component: {fileID: 7183562816018508197} + m_Layer: 5 + m_Name: Pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562816018508198 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816018508199} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815840021785} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 2} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &7183562816018508196 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816018508199} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816018508197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816018508199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7183562816072626965 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816072626964} + - component: {fileID: 7183562816072626969} + - component: {fileID: 7183562816072626970} + - component: {fileID: 7183562816072626971} + - component: {fileID: 7183562816072626968} + m_Layer: 5 + m_Name: Mods + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562816072626964 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816072626965} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7183562816092791216} + m_Father: {fileID: 7183562817345107312} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562816072626969 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816072626965} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816072626970 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816072626965} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7183562816072626971 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816072626965} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7183562816072626970} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 7183562815738721469} + m_MethodName: OpenMods + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 7183562815274611398} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7183562817142207786} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7183562815749736979} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7183562815602179400} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &7183562816072626968 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816072626965} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 7183562816072626971} + m_MethodName: OnDeselect + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 7183562815738721469} + m_MethodName: DeselectOtherTitles + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &7183562816092023377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816092023376} + - component: {fileID: 7183562816092023382} + - component: {fileID: 7183562816092023383} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562816092023376 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816092023377} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562816474422964} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -267, y: 500.99997} + m_SizeDelta: {x: 86, y: 86} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &7183562816092023382 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816092023377} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816092023383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816092023377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7183562816092791217 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816092791216} + - component: {fileID: 7183562816092791222} + - component: {fileID: 7183562816092791223} + - component: {fileID: 7183562816092791221} + - component: {fileID: 7183562816092791220} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562816092791216 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816092791217} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7183562815274611399} + - {fileID: 7183562817142207787} + - {fileID: 7183562815749736972} + - {fileID: 7183562815602179401} + m_Father: {fileID: 7183562816072626964} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562816092791222 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816092791217} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816092791223 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816092791217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Mods + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7183562816092791221 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816092791217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &7183562816092791220 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816092791217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Mods + text: {fileID: 7183562816092791223} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7183562816102131885 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816102131884} + - component: {fileID: 7183562816102131890} + - component: {fileID: 7183562816102131891} + - component: {fileID: 1387862288} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562816102131884 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816102131885} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815840021785} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562816102131890 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816102131885} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816102131891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816102131885} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1387862288 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816102131885} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 7183562816102131891} +--- !u!1 &7183562816163860838 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816163860837} + - component: {fileID: 7183562816163860843} + - component: {fileID: 7183562816163860836} + - component: {fileID: 7183562816163860842} + m_Layer: 5 + m_Name: Bold font + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562816163860837 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816163860838} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815840021785} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562816163860843 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816163860838} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816163860836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816163860838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Quit + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7183562816163860842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816163860838} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Quit + text: {fileID: 7183562816163860836} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7183562816396195270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816396195269} + - component: {fileID: 7183562816396195268} + - component: {fileID: 7183562816396195275} + - component: {fileID: 1379483107} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562816396195269 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816396195270} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815496087993} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -150, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562816396195268 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816396195270} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816396195275 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816396195270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1379483107 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816396195270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 7183562816396195275} +--- !u!1 &7183562816474422965 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816474422964} + - component: {fileID: 7183562816474422970} + - component: {fileID: 7183562816474422971} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562816474422964 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816474422965} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7183562816092023376} + - {fileID: 7183562815888202455} + - {fileID: 7183562816016592639} + m_Father: {fileID: 7183562816615436231} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562816474422970 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816474422965} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816474422971 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816474422965} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7647c6aceb09bfe4d8fcddaa0db26989, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7183562816525895780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816525895785} + - component: {fileID: 7183562816525895786} + - component: {fileID: 7183562816525895787} + m_Layer: 5 + m_Name: Pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562816525895785 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816525895780} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815496087993} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 2} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &7183562816525895786 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816525895780} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816525895787 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816525895780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7183562816615436227 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816615436231} + - component: {fileID: 7183562816615436224} + - component: {fileID: 7183562816615436225} + - component: {fileID: 7183562816615436226} + m_Layer: 5 + m_Name: Example Title Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562816615436231 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816615436227} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 7183562815738721468} + - {fileID: 7183562816474422964} + - {fileID: 7183562817345107312} + - {fileID: 9135474910746010258} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &7183562816615436224 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816615436227} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &7183562816615436225 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816615436227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &7183562816615436226 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816615436227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &7183562816802668698 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562816802668702} + - component: {fileID: 7183562816802668703} + - component: {fileID: 7183562816802668696} + - component: {fileID: 7183562816802668697} + - component: {fileID: 7183562816802668701} + m_Layer: 5 + m_Name: Play + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562816802668702 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816802668698} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7183562815496087993} + m_Father: {fileID: 7183562817345107312} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562816802668703 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816802668698} + m_CullTransparentMesh: 0 +--- !u!114 &7183562816802668696 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816802668698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7183562816802668697 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816802668698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7183562816802668696} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 7183562815726400289} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7183562816525895787} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7183562816396195275} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7183562815533826858} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &7183562816802668701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562816802668698} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 7183562816802668697} + m_MethodName: OnDeselect + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 7183562815738721469} + m_MethodName: DeselectOtherTitles + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &7183562817131674660 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562817131674667} + - component: {fileID: 7183562817131674664} + - component: {fileID: 7183562817131674665} + - component: {fileID: 7183562817131674666} + - component: {fileID: 7183562817131674671} + m_Layer: 5 + m_Name: Quit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562817131674667 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817131674660} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7183562815840021785} + m_Father: {fileID: 7183562817345107312} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562817131674664 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817131674660} + m_CullTransparentMesh: 0 +--- !u!114 &7183562817131674665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817131674660} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7183562817131674666 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817131674660} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7183562817131674665} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 7183562815738721469} + m_MethodName: Quit + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 7183562816163860836} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7183562816018508197} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7183562816102131891} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7183562815560642510} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &7183562817131674671 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817131674660} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 7183562817131674666} + m_MethodName: OnDeselect + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 7183562815738721469} + m_MethodName: DeselectOtherTitles + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &7183562817142207780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562817142207787} + - component: {fileID: 7183562817142207785} + - component: {fileID: 7183562817142207786} + m_Layer: 5 + m_Name: Pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7183562817142207787 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817142207780} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562816092791216} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 2} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &7183562817142207785 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817142207780} + m_CullTransparentMesh: 0 +--- !u!114 &7183562817142207786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817142207780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7183562817182820476 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562817182820739} + - component: {fileID: 7183562817182820737} + - component: {fileID: 7183562817182820738} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562817182820739 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817182820476} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7183562815888202455} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7183562817182820737 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817182820476} + m_CullTransparentMesh: 0 +--- !u!114 &7183562817182820738 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817182820476} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7183562817345107313 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7183562817345107312} + - component: {fileID: 7183562817345107318} + - component: {fileID: 7183562817345107319} + m_Layer: 5 + m_Name: Title Options + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7183562817345107312 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817345107313} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7183562816802668702} + - {fileID: 7183562816072626964} + - {fileID: 6982984101525869207} + - {fileID: 7183562817131674667} + - {fileID: 7183562815992702188} + m_Father: {fileID: 7183562816615436231} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -76} + m_SizeDelta: {x: 500, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7183562817345107318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817345107313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &7183562817345107319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7183562817345107313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1001 &7705803230337273301 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7183562816615436231} + m_Modifications: + - target: {fileID: 555869674719868405, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 555869674719868405, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 555869674719868405, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 471.28778 + objectReference: {fileID: 0} + - target: {fileID: 555869674719868405, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.y + value: 48 + objectReference: {fileID: 0} + - target: {fileID: 555869674719868405, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 555869674719868405, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -274.78534 + objectReference: {fileID: 0} + - target: {fileID: 1191003684682622640, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1191003684682622640, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1191003684682622640, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 1191003684682622640, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -572.78534 + objectReference: {fileID: 0} + - target: {fileID: 1263267347193394654, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1263267347193394654, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1263267347193394654, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 1200 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.y + value: 712.78534 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1546160539776775495, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1546160539776775495, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1546160539776775495, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 654.4331 + objectReference: {fileID: 0} + - target: {fileID: 1546160539776775495, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 1546160539776775495, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 327.21655 + objectReference: {fileID: 0} + - target: {fileID: 1546160539776775495, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 1766513106663367805, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1766513106663367805, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1766513106663367805, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 1766513106663367805, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -447.78534 + objectReference: {fileID: 0} + - target: {fileID: 1997008003781636643, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 33.39 + objectReference: {fileID: 0} + - target: {fileID: 2129805991277959548, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2129805991277959548, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2129805991277959548, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 247.64389 + objectReference: {fileID: 0} + - target: {fileID: 2129805991277959548, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2489393702538323156, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2489393702538323156, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2489393702538323156, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 235.64389 + objectReference: {fileID: 0} + - target: {fileID: 3382315304172014273, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3382315304172014273, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3382315304172014273, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 3874361175814237407, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3874361175814237407, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3874361175814237407, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 347.19894 + objectReference: {fileID: 0} + - target: {fileID: 3874361175814237407, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 3874361175814237407, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 3874361175814237407, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -154.78534 + objectReference: {fileID: 0} + - target: {fileID: 3980389374626956708, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3980389374626956708, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3980389374626956708, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 53.59 + objectReference: {fileID: 0} + - target: {fileID: 3980389374626956708, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.y + value: 13.41 + objectReference: {fileID: 0} + - target: {fileID: 3980389374626956708, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 4258957055143786582, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4258957055143786582, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4281969109038385457, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4281969109038385457, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4281969109038385457, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 4281969109038385457, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -407.78534 + objectReference: {fileID: 0} + - target: {fileID: 4298231953040031072, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4298231953040031072, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4298231953040031072, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 4298231953040031072, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -87.39267 + objectReference: {fileID: 0} + - target: {fileID: 4610176667567724196, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4610176667567724196, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4610176667567724196, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 40.57 + objectReference: {fileID: 0} + - target: {fileID: 4610176667567724196, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 4610176667567724196, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 171.51 + objectReference: {fileID: 0} + - target: {fileID: 4610176667567724196, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 4750541563107363769, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_Name + value: Settings Panel + objectReference: {fileID: 0} + - target: {fileID: 4750541563107363769, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4804804652935822685, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4804804652935822685, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4804804652935822685, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 3.6438904 + objectReference: {fileID: 0} + - target: {fileID: 4804804652935822685, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 4999609711819758328, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4999609711819758328, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4999609711819758328, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 4999609711819758328, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -607.78534 + objectReference: {fileID: 0} + - target: {fileID: 5703793217327021981, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5703793217327021981, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5703793217327021981, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5732949744934640615, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5732949744934640615, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5732949744934640615, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 5732949744934640615, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -537.78534 + objectReference: {fileID: 0} + - target: {fileID: 5758293597075800043, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5758293597075800043, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5758293597075800043, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 5758293597075800043, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -357.78534 + objectReference: {fileID: 0} + - target: {fileID: 5844140006999076737, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6362711467495940745, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6597914884127113755, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6597914884127113755, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6597914884127113755, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 347.19894 + objectReference: {fileID: 0} + - target: {fileID: 6597914884127113755, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 6597914884127113755, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 173.59947 + objectReference: {fileID: 0} + - target: {fileID: 6597914884127113755, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 7554060330679086097, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7554060330679086097, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7554060330679086097, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 7837238213205122016, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7837238213205122016, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7837238213205122016, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 214 + objectReference: {fileID: 0} + - target: {fileID: 8011912900381128419, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8011912900381128419, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8011912900381128419, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 8011912900381128419, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -47.39267 + objectReference: {fileID: 0} + - target: {fileID: 8052715670319653616, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8052715670319653616, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8052715670319653616, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 654.4331 + objectReference: {fileID: 0} + - target: {fileID: 8052715670319653616, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8052715670319653616, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 8052715670319653616, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -214.78534 + objectReference: {fileID: 0} + - target: {fileID: 8903868942035009777, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8903868942035009777, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8903868942035009777, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.x + value: 404 + objectReference: {fileID: 0} + - target: {fileID: 8903868942035009777, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8903868942035009777, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 600 + objectReference: {fileID: 0} + - target: {fileID: 8903868942035009777, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -632.78534 + objectReference: {fileID: 0} + - target: {fileID: 9045675482972604282, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9045675482972604282, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9045675482972604282, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 800 + objectReference: {fileID: 0} + - target: {fileID: 9045675482972604282, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -492.78534 + objectReference: {fileID: 0} + - target: {fileID: 9045675482972604286, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7183562815738721469} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5ff21c596baf048e8968771adf6a76f2, type: 3} +--- !u!224 &9135474910746010258 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1456695893281337159, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + m_PrefabInstance: {fileID: 7705803230337273301} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3198406115590832636 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5085556148731710505, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + m_PrefabInstance: {fileID: 7705803230337273301} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6c66c01747fab34f84c70f9ef73080c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1691157567688231595 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 9045675482972604286, guid: 5ff21c596baf048e8968771adf6a76f2, + type: 3} + m_PrefabInstance: {fileID: 7705803230337273301} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7f173c11dfda5a4c9a9860f473a14b7, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Examples/Example Title Canvas.prefab.meta b/UI/Examples/Example Title Canvas.prefab.meta new file mode 100644 index 0000000..9e38d07 --- /dev/null +++ b/UI/Examples/Example Title Canvas.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c80114238dd6fc5488b9336fd65b5c82 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Examples/Example.unity b/UI/Examples/Example.unity new file mode 100644 index 0000000..c7feb58 --- /dev/null +++ b/UI/Examples/Example.unity @@ -0,0 +1,975 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &768429225 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 768429227} + - component: {fileID: 768429226} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &768429226 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 768429225} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &768429227 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 768429225} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1061966328 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1061966331} + - component: {fileID: 1061966330} + - component: {fileID: 1061966329} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1061966329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1061966328} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 1 +--- !u!114 &1061966330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1061966328} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1061966331 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1061966328} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1357097787 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1357097790} + - component: {fileID: 1357097789} + - component: {fileID: 1357097788} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1357097788 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1357097787} + m_Enabled: 1 +--- !u!20 &1357097789 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1357097787} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 4 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1357097790 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1357097787} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1519110690 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1519110692} + - component: {fileID: 1519110691} + m_Layer: 0 + m_Name: SpawnIn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1519110691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519110690} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d9936cf8def756343a493ec5df0d531b, type: 3} + m_Name: + m_EditorClassIdentifier: + browserPrefab: {fileID: 8989088974132902752, guid: 32197dad13832774eab54dd3029f1f7d, + type: 3} +--- !u!4 &1519110692 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519110690} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 795.73627, y: 549.2372, z: 3.6627884} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &7183562815888032899 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 91443809, guid: c80114238dd6fc5488b9336fd65b5c82, type: 3} + propertyPath: colorScheme + value: + objectReference: {fileID: 0} + - target: {fileID: 583862110, guid: c80114238dd6fc5488b9336fd65b5c82, type: 3} + propertyPath: colorScheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1000355098, guid: c80114238dd6fc5488b9336fd65b5c82, type: 3} + propertyPath: colorScheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1379483107, guid: c80114238dd6fc5488b9336fd65b5c82, type: 3} + propertyPath: colorScheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1387862288, guid: c80114238dd6fc5488b9336fd65b5c82, type: 3} + propertyPath: colorScheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1458408124, guid: c80114238dd6fc5488b9336fd65b5c82, type: 3} + propertyPath: colorScheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1544223592, guid: c80114238dd6fc5488b9336fd65b5c82, type: 3} + propertyPath: colorScheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1816003759, guid: c80114238dd6fc5488b9336fd65b5c82, type: 3} + propertyPath: colorScheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1691157567688231595, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1691157567688231595, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 3821350690394784548, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4639786619346526608, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 4640291479517397658, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 4920336952135405017, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 5117836231553663282, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 5117836231553663282, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 6451062522089254006, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_Value + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6451062522089254006, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6451062522089254006, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 6777630509000577125, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6982984101525869207, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6982984101525869207, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6982984101525869207, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6982984101525869207, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6982984101525869207, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815496087993, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815496087997, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7183562815496087997, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.data[0].FontAsset + value: + objectReference: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + - target: {fileID: 7183562815496087997, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.data[0].TranslatedLanguage + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7183562815509748491, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815509748491, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815509748491, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815509748491, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815579565198, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815579565198, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815579565198, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815579565198, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815840021785, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815840021789, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7183562815840021789, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.data[0].FontAsset + value: + objectReference: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + - target: {fileID: 7183562815840021789, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.data[0].TranslatedLanguage + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7183562815992702188, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815992702188, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815992702188, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815992702188, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562815992702188, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816016592639, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816016592639, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816072626964, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816072626964, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816072626964, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816072626964, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816072626964, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816072626968, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1519110691} + - target: {fileID: 7183562816072626968, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: + objectReference: {fileID: 0} + - target: {fileID: 7183562816072626971, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7183562816072626971, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7183562816072626971, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1519110691} + - target: {fileID: 7183562816072626971, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SpawnIn + objectReference: {fileID: 0} + - target: {fileID: 7183562816092791216, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816092791220, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7183562816092791220, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.data[0].FontAsset + value: + objectReference: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + - target: {fileID: 7183562816092791220, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.data[0].TranslatedLanguage + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7183562816163860842, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontPairingOverrides + value: + objectReference: {fileID: 11400000, guid: a09562b54e7c549d7b9df18941d695d5, + type: 2} + - target: {fileID: 7183562816615436227, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_Name + value: Example Title Canvas + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436227, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816615436231, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816802668697, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7183562816802668697, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7183562816802668701, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7183562816802668702, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816802668702, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816802668702, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816802668702, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562816802668702, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817131674666, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7183562817131674666, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7183562817131674667, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817131674667, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817131674667, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817131674667, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817131674667, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817131674671, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7183562817182820739, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817182820739, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817182820739, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817182820739, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7183562817345107312, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7325699367544730875, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7325699367544730875, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.data[0].FontAsset + value: + objectReference: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + - target: {fileID: 7325699367544730875, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: translatedLanguageFontOverrides.Array.data[0].TranslatedLanguage + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8701075072445835999, guid: c80114238dd6fc5488b9336fd65b5c82, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c80114238dd6fc5488b9336fd65b5c82, type: 3} diff --git a/UI/Examples/Example.unity.meta b/UI/Examples/Example.unity.meta new file mode 100644 index 0000000..8ff8157 --- /dev/null +++ b/UI/Examples/Example.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ff332fa4285467d45bb4f3c22cd89307 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Examples/ExampleInputCapture.cs b/UI/Examples/ExampleInputCapture.cs new file mode 100644 index 0000000..0831a97 --- /dev/null +++ b/UI/Examples/ExampleInputCapture.cs @@ -0,0 +1,123 @@ +using System.Collections.Generic; +using System.Linq; +using ModIOBrowser; +using ModIOBrowser.Implementation; +using UnityEngine; +using UnityEngine.EventSystems; + +/// +/// An Example script on how to setup the key/button bindings for the ModIO Browser. Inputs such as +/// Tab left and right, options and alternate-submit. All of these inputs provide extra functionality +/// and ease of navigation for the user. +/// +/// This script makes use of the InputReceiver static class to invoke the correct behaviour on the +/// Browser. +/// For example: when the input is captured for KeyCode.Joystick1Button2, the method on InputReceiver.Alternate() +/// is invoked. You can use InputReceiver.cs to tell the browser when a specific input has been used +/// +public class ExampleInputCapture : MonoBehaviour +{ + // Submit and Horizontal/Vertical directional input is handled by default with Unity's built in + // UI system. You can set those bindings up with the current or new Unity Input system. + // refer to the StandaloneInputModule component on the EventSystem gameObject in scene. + + // The following inputs are for added ergonomic use. + [SerializeField] KeyCode Cancel = KeyCode.JoystickButton1; + [SerializeField] KeyCode Alternate = KeyCode.JoystickButton2; + [SerializeField] KeyCode Options = KeyCode.JoystickButton3; + [SerializeField] KeyCode TabLeft = KeyCode.JoystickButton4; + [SerializeField] KeyCode TabRight = KeyCode.JoystickButton5; + [SerializeField] KeyCode Search = KeyCode.JoystickButton9; + [SerializeField] KeyCode Menu = KeyCode.JoystickButton7; + + // Control mappings for keyboard, controller, and mouse. If the controls for the app + // are changed under: Project Settings -> Input -> Axes, then they must be also be changed here! + // Unfortunately as of developing this, there is no simple way to fetch these values by code. + public List controllerAndKeyboardInput = new List + { + "Horizontal", + "Vertical" + }; + public List mouseInput = new List + { + "Mouse X", + "Mouse Y" + }; + public string verticalControllerInput = "Vertical"; + + void Update() + { + // This is a basic example of one way to capture inputs and inform the UI browser what + // action that that input should perform. + // + // eg. + // if we detect an ESC button press we can inform the browser with InputReceiver.OnCancel() + HandleInputReceiver(); + + // This is a basic example of how we connect the mouse and controller input to the Browser + // + // eg. + // Pressing a controller or keyboard button will turn off mouse navigation, hide the mouse, + // and tell the browser to focus on controller navigation, and vice versa. + HandleControllerInput(); + } + + private void HandleInputReceiver() + { + if(Input.GetKeyDown(Cancel)) + { + InputReceiver.OnCancel(); + } + else if(Input.GetKeyDown(Alternate)) + { + InputReceiver.OnAlternate(); + } + else if(Input.GetKeyDown(Options)) + { + InputReceiver.OnOptions(); + } + else if(Input.GetKeyDown(TabLeft)) + { + InputReceiver.OnTabLeft(); + } + else if(Input.GetKeyDown(TabRight)) + { + InputReceiver.OnTabRight(); + } + else if(Input.GetKeyDown(Search)) + { + InputReceiver.OnSearch(); + } + else if(Input.GetKeyDown(Menu)) + { + InputReceiver.OnMenu(); + } + } + + private void HandleControllerInput() + { + // Handle controller scrolling + // For now, this is only used in the mod details view, and may clash with "regular" navigation + if(Input.GetAxis(verticalControllerInput) != 0f) + { + InputReceiver.OnControllerScroll(Input.GetAxis(verticalControllerInput)); + } + + //Do we have input from the keyboard or controller? If so, switch to controller mode. + if(controllerAndKeyboardInput.Any(x => Input.GetAxis(x) != 0)) + { + if(InputReceiver.currentSelectedInputField != null) + { + return; + } + InputReceiver.OnSetToControllerNavigation(); + } + //If not, do we have input from the mouse? If true, switch to mouse mode. + else if(mouseInput.Any(x => Input.GetAxis(x) != 0)) + { + InputReceiver.OnSetToMouseNavigation(); + } + } + + +} diff --git a/UI/Examples/ExampleInputCapture.cs.meta b/UI/Examples/ExampleInputCapture.cs.meta new file mode 100644 index 0000000..6a66456 --- /dev/null +++ b/UI/Examples/ExampleInputCapture.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f95d137321812dd41a3ac7750adf5684 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Examples/ExampleTitleScene.cs b/UI/Examples/ExampleTitleScene.cs new file mode 100644 index 0000000..4cd2cb3 --- /dev/null +++ b/UI/Examples/ExampleTitleScene.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using ModIOBrowser; +using ModIOBrowser.Implementation; +using TMPro; +using ModIO.Implementation; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace Plugins.mod.io.UI.Examples +{ + + public class ExampleTitleScene : MonoBehaviour + { + [SerializeField] Selectable DefaultSelection; + [SerializeField] private ExampleSettingsPanel exampleSettingsPanel; + public string verticalControllerInput = "Vertical"; + public List mouseInput = new List(); + public MultiTargetDropdown languageSelectionDropdown; + + void Start() + { + OpenTitle(); + + languageSelectionDropdown.gameObject.SetActive(false); + StartCoroutine(SetupTranslationDropDown()); + } + + IEnumerator SetupTranslationDropDown() + { + while(!TranslationManager.SingletonIsInstantiated()) + { + yield return new WaitForSeconds(0.1f); + } + + languageSelectionDropdown.gameObject.SetActive(true); + languageSelectionDropdown.ClearOptions(); + + languageSelectionDropdown.AddOptions(Enum.GetNames(typeof(TranslatedLanguages)) + .Select(x => new TMP_Dropdown.OptionData(x.ToString())) + .ToList()); + + languageSelectionDropdown.value = (int)TranslationManager.Instance.SelectedLanguage; + } + + public void OnTranslationDropdownChange() + { + TranslationManager.Instance.ChangeLanguage((TranslatedLanguages)languageSelectionDropdown.value); + } + + public void OpenMods() + { + //Browser is now opened via BrowserSpawnIn.SpawnIn, also connected to the button which activates this + gameObject.transform.parent.gameObject.SetActive(false); + } + + public void OpenSettings() + { + exampleSettingsPanel.ActivatePanel(true); + } + + public void OpenTitle() + { + //Browser.Instance.gameObject needs to stay on so that translations, glyphsettings etc + //can initialize + gameObject.transform.parent.gameObject.SetActive(true); + DefaultSelection.Select(); + } + + public void Quit() + { + Application.Quit(); + } + + public void DeselectOtherTitles() + { + EventSystem.current.SetSelectedGameObject(null); + } + + private void Update() + { + if(Input.GetAxis(verticalControllerInput) != 0f) + { + //Hide mouse + Cursor.lockState = CursorLockMode.Locked; + + if(EventSystem.current.currentSelectedGameObject == null) + { + DefaultSelection.Select(); + } + } + else if(mouseInput.Any(x => Input.GetAxis(x) != 0)) + { + Cursor.lockState = CursorLockMode.None; + } + } + } +} diff --git a/UI/Examples/ExampleTitleScene.cs.meta b/UI/Examples/ExampleTitleScene.cs.meta new file mode 100644 index 0000000..a7bfae0 --- /dev/null +++ b/UI/Examples/ExampleTitleScene.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6311378238ed164439495924f4b3034e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Examples/ExmapleGlyphSetter.cs b/UI/Examples/ExmapleGlyphSetter.cs new file mode 100644 index 0000000..12a20d5 --- /dev/null +++ b/UI/Examples/ExmapleGlyphSetter.cs @@ -0,0 +1,53 @@ +using System.Collections; +using ModIOBrowser; +using ModIOBrowser.Implementation; +using UnityEngine; + +namespace Plugins.mod.io.UI.Examples +{ + public class ExmapleGlyphSetter : MonoBehaviour + { + private bool connected = false; + + void Awake() + { + this.StartCoroutine(this.CheckForControllers()); + } + + IEnumerator CheckForControllers() + { + while (true) + { + var controllers = Input.GetJoystickNames(); + + if (!this.connected && controllers.Length > 0) + { + this.connected = true; + if(controllers[0].Contains("Microsoft")) + { + Glyphs.Instance.ChangeGlyphs(GlyphPlatforms.XBOX); + } + else if(controllers[0].Contains("Sony")) + { + Glyphs.Instance.ChangeGlyphs(GlyphPlatforms.PLAYSTATION_5); + } + else if(controllers[0].Contains("Nintendo")) + { + Glyphs.Instance.ChangeGlyphs(GlyphPlatforms.NINTENDO_SWITCH); + } + + Debug.Log("Connected"); + + } + else if (this.connected && controllers.Length == 0) + { + this.connected = false; + Glyphs.Instance.ChangeGlyphs(GlyphPlatforms.PC); + Debug.Log("Disconnected"); + } + + yield return new WaitForSeconds(1f); + } + } + } +} diff --git a/UI/Examples/ExmapleGlyphSetter.cs.meta b/UI/Examples/ExmapleGlyphSetter.cs.meta new file mode 100644 index 0000000..3d37d0b --- /dev/null +++ b/UI/Examples/ExmapleGlyphSetter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a9f68958c42874b36b342c2129c39e64 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Examples/ModIOBrowser.prefab b/UI/Examples/ModIOBrowser.prefab new file mode 100644 index 0000000..522c54f --- /dev/null +++ b/UI/Examples/ModIOBrowser.prefab @@ -0,0 +1,4885 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8989088974132902752 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8989088974132902754} + - component: {fileID: 8989088974132902753} + - component: {fileID: 8989088974132902757} + - component: {fileID: 8989088974132902756} + m_Layer: 0 + m_Name: ModIOBrowser + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8989088974132902754 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974132902752} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8989088974461564262} + - {fileID: 1893516736165879165} + - {fileID: 1627815186} + - {fileID: 8409814756638695870} + - {fileID: 3177595258908356968} + - {fileID: 2156061094568982260} + - {fileID: 1278856737106325291} + - {fileID: 1980296656040563514} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8989088974132902753 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974132902752} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9c56733d768700343928256da18908cc, type: 3} + m_Name: + m_EditorClassIdentifier: + autoInitialize: 1 + uiConfig: {fileID: 11400000, guid: 52236b86c7132f1439153fa3910503d3, type: 2} + homePanel: {fileID: 1234396549239151596} + SingletonAwakener: {fileID: 5279305294225125357} + colorScheme: {fileID: 8989088974132902757} + BrowserCanvas: {fileID: 8989088974461564258} + defaultCollectionSelection: {fileID: 1815057015430150696} +--- !u!114 &8989088974132902757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974132902752} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e9a96faf57aa85c499eea788a9dd5a04, type: 3} + m_Name: + m_EditorClassIdentifier: + Dark1: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + Dark2: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + Dark3: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + White: {r: 1, g: 1, b: 1, a: 1} + Highlight: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + Inactive1: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + Inactive2: {r: 0.68235296, g: 0.69411767, b: 0.7607843, a: 1} + Inactive3: {r: 0.4509804, g: 0.4627451, b: 0.5176471, a: 1} + PositiveAccent: {r: 0.49411765, g: 0.9372549, b: 0.54901963, a: 1} + NegativeAccent: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + LightMode: 0 +--- !u!114 &8989088974132902756 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974132902752} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: af298186a46e11d4fa4636adad7e3e50, type: 3} + m_Name: + m_EditorClassIdentifier: + homeModListItemOverlay: {fileID: 1345671315508899556} + SearchResultListItemOverlay: {fileID: 4612648473570860654} + CollectionListItemOverlay: {fileID: 0} + SearchModListItemOverlay: {fileID: 0} +--- !u!1 &8989088974295756914 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8989088974295756915} + - component: {fileID: 8989088974295756918} + - component: {fileID: 8989088974295756917} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8989088974295756915 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974295756914} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8989088974461564262} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8989088974295756918 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974295756914} + m_CullTransparentMesh: 0 +--- !u!114 &8989088974295756917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974295756914} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7647c6aceb09bfe4d8fcddaa0db26989, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8989088974461564258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8989088974461564262} + - component: {fileID: 8989088974461564261} + - component: {fileID: 8989088974461564260} + - component: {fileID: 8989088974461564259} + - component: {fileID: 2021324066} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8989088974461564262 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974461564258} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 8989088974295756915} + - {fileID: 8989088974670517171} + - {fileID: 8989088974680782486} + - {fileID: 8989088974283087999} + - {fileID: 8989088974029530189} + - {fileID: 8989088974764450388} + - {fileID: 8989088973446767647} + - {fileID: 8989088974781053212} + - {fileID: 1893516735634251278} + - {fileID: 8989088974637467835} + - {fileID: 8989088973629451876} + - {fileID: 8989088974330128611} + - {fileID: 8989088973532279179} + - {fileID: 8989088974196407083} + - {fileID: 8473402708461312073} + - {fileID: 3248977626930042377} + m_Father: {fileID: 8989088974132902754} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &8989088974461564261 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974461564258} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 10 + m_TargetDisplay: 0 +--- !u!114 &8989088974461564260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974461564258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &8989088974461564259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974461564258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2021324066 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974461564258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d11270c61e1f1794594a2f365c733a22, type: 3} + m_Name: + m_EditorClassIdentifier: + canvas: {fileID: 8989088974461564261} +--- !u!1001 &437648027396171941 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 278573619633673813, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.b + value: 0.84705883 + objectReference: {fileID: 0} + - target: {fileID: 278573619633673813, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.g + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 278573619633673813, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.r + value: 0.02745098 + objectReference: {fileID: 0} + - target: {fileID: 793622887796036333, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.b + value: 0.84705883 + objectReference: {fileID: 0} + - target: {fileID: 793622887796036333, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.g + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 793622887796036333, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.r + value: 0.02745098 + objectReference: {fileID: 0} + - target: {fileID: 1281414733949405647, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.b + value: 0.84705883 + objectReference: {fileID: 0} + - target: {fileID: 1281414733949405647, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.g + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 1281414733949405647, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.r + value: 0.02745098 + objectReference: {fileID: 0} + - target: {fileID: 2914680749562353562, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 2914680749562353562, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2914680749562353562, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2914680749562353562, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5224539521068155025} + - target: {fileID: 2914680749562353562, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2914680749562353562, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CancelButton + objectReference: {fileID: 0} + - target: {fileID: 2914680749562353562, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 3099736032738202514, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3099736032738202514, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3099736032738202514, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_SizeDelta.x + value: 720 + objectReference: {fileID: 0} + - target: {fileID: 3099736032738202514, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_SizeDelta.y + value: 104 + objectReference: {fileID: 0} + - target: {fileID: 3099736032738202514, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 440 + objectReference: {fileID: 0} + - target: {fileID: 3099736032738202514, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -92 + objectReference: {fileID: 0} + - target: {fileID: 3099736033898908252, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3099736033898908252, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3099736033898908252, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 360 + objectReference: {fileID: 0} + - target: {fileID: 3099736033898908252, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590443, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Name + value: 5DigitInput + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590443, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_RootOrder + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3099736034188945143, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3099736034188945143, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3099736034188945143, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 360 + objectReference: {fileID: 0} + - target: {fileID: 3099736034188945143, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -72 + objectReference: {fileID: 0} + - target: {fileID: 5268754813597789465, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.b + value: 0.84705883 + objectReference: {fileID: 0} + - target: {fileID: 5268754813597789465, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.g + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 5268754813597789465, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.r + value: 0.02745098 + objectReference: {fileID: 0} + - target: {fileID: 5619593777038678719, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5619593777038678719, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5619593777038678719, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_SizeDelta.y + value: 22.83 + objectReference: {fileID: 0} + - target: {fileID: 5619593777038678719, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 440 + objectReference: {fileID: 0} + - target: {fileID: 5619593777038678719, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -195.415 + objectReference: {fileID: 0} + - target: {fileID: 5619593777148905370, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_SizeDelta.y + value: 334.83 + objectReference: {fileID: 0} + - target: {fileID: 5619593778049157054, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5619593778049157054, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5619593778049157054, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 440 + objectReference: {fileID: 0} + - target: {fileID: 5619593778049157054, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -246.83 + objectReference: {fileID: 0} + - target: {fileID: 5648169853191178097, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.b + value: 0.84705883 + objectReference: {fileID: 0} + - target: {fileID: 5648169853191178097, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.g + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 5648169853191178097, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_Color.r + value: 0.02745098 + objectReference: {fileID: 0} + - target: {fileID: 5659812009272655937, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 5659812009272655937, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: ContinueButton + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 54d3625bf28508944853cce5c940c30c, type: 3} +--- !u!114 &5224539521068155025 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5662042383669831732, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + m_PrefabInstance: {fileID: 437648027396171941} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3248977626930042382} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3261082e64b114043b4bc3643e221a44, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3248977626930042382 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3099736033961590443, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + m_PrefabInstance: {fileID: 437648027396171941} + m_PrefabAsset: {fileID: 0} +--- !u!224 &3248977626930042377 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3099736033961590444, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + m_PrefabInstance: {fileID: 437648027396171941} + m_PrefabAsset: {fileID: 0} +--- !u!1 &523472227001641726 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 94973307852309083, guid: 54d3625bf28508944853cce5c940c30c, + type: 3} + m_PrefabInstance: {fileID: 437648027396171941} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &486699777932171572 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974132902754} + m_Modifications: + - target: {fileID: 1646481318575676102, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_Name + value: GlyphSettings + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 19b91031327fd4840aecddf27ac33eec, type: 3} +--- !u!4 &8409814756638695870 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8247413803136923786, guid: 19b91031327fd4840aecddf27ac33eec, + type: 3} + m_PrefabInstance: {fileID: 486699777932171572} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &694989052950491610 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974132902754} + m_Modifications: + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalPosition.x + value: 400.79144 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalPosition.y + value: 252.08183 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalPosition.z + value: 3.0401669 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.size + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[0] + value: + objectReference: {fileID: 8989088974330128610} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[1] + value: + objectReference: {fileID: 8989088974196407082} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[2] + value: + objectReference: {fileID: 8989088973629451875} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[3] + value: + objectReference: {fileID: 1893516735634251279} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[4] + value: + objectReference: {fileID: 8989088973532279178} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[5] + value: + objectReference: {fileID: 8989088974781053211} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[6] + value: + objectReference: {fileID: 8989088974029530188} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[7] + value: + objectReference: {fileID: 8989088974670517170} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[8] + value: + objectReference: {fileID: 4863312031803210161} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[9] + value: + objectReference: {fileID: 3248977626930042382} + - target: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: singletons.Array.data[10] + value: + objectReference: {fileID: 8989088974680782485} + - target: {fileID: 4778570498850984549, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + propertyPath: m_Name + value: SingletonSetup + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d2543bf02915aa745bef70de010359c2, type: 3} +--- !u!114 &5279305294225125357 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4676641786142563895, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + m_PrefabInstance: {fileID: 694989052950491610} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47405576e9171c7448ffd9a3ef83beed, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1278856737106325291 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1736825614451629809, guid: d2543bf02915aa745bef70de010359c2, + type: 3} + m_PrefabInstance: {fileID: 694989052950491610} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1430773410708193049 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974132902754} + m_Modifications: + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalPosition.x + value: 715.8291 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalPosition.y + value: 509.27173 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalPosition.z + value: -5.029846 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4149718850367148094, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: m_Name + value: SoundPlayer + objectReference: {fileID: 0} + - target: {fileID: 8468188248645416979, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + propertyPath: audioSlider + value: + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 65c74c8b969a6574f919233163cda9d9, type: 3} +--- !u!4 &2156061094568982260 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1022597431898343917, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + m_PrefabInstance: {fileID: 1430773410708193049} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7376382230776530698 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8468188248645416979, guid: 65c74c8b969a6574f919233163cda9d9, + type: 3} + m_PrefabInstance: {fileID: 1430773410708193049} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: abcfba95a5a23e141b14a3ae260ab189, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1877921627258965659 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 20451693953041972, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 20451693953041972, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5576515969151178355} + - target: {fileID: 1655163093905552322, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 1655163093905552322, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5576515969151178355} + - target: {fileID: 3894719203394835852, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 5294099438039336629, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 5294099438830531783, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7333936912765465224, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7333936912765465224, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1234396549239151596} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7399448335370840791, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_Name + value: Search Results Panel + objectReference: {fileID: 0} + - target: {fileID: 7399448336322547781, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7399448336322547781, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5576515969151178355} + - target: {fileID: 7878984401419080991, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a358e4ee54a35874e85a5115d9b91b58, type: 3} +--- !u!1 &1893516734505421756 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 20451694282229031, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + m_PrefabInstance: {fileID: 1877921627258965659} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3328724869292898985 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3764365408090289202, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + m_PrefabInstance: {fileID: 1877921627258965659} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1893516734520461365 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 20451694296090286, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + m_PrefabInstance: {fileID: 1877921627258965659} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1893516736350351233 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 20451694917722394, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + m_PrefabInstance: {fileID: 1877921627258965659} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8989088974029530188 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7399448335370840791, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + m_PrefabInstance: {fileID: 1877921627258965659} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8989088974029530189 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7399448335370840790, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + m_PrefabInstance: {fileID: 1877921627258965659} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4840592677501763395 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6422848446705840600, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + m_PrefabInstance: {fileID: 1877921627258965659} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4612648473570860654 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6488803726650446069, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + m_PrefabInstance: {fileID: 1877921627258965659} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b55ab1eaffd41c24da914363d6dc169b, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &7055042685535865180 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8928170981636048839, guid: a358e4ee54a35874e85a5115d9b91b58, + type: 3} + m_PrefabInstance: {fileID: 1877921627258965659} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2860124194257464133 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974132902754} + m_Modifications: + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1375868373587918581, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + propertyPath: m_Name + value: Translations + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, type: 3} +--- !u!4 &3177595258908356968 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 839962838998309421, guid: ce4f233ac71f0ec4cb6bcdf3b0a37791, + type: 3} + m_PrefabInstance: {fileID: 2860124194257464133} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3351761392141205643 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 3802382007037501060, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_Name + value: Downloads + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4013755683702418064, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 5857791394639645937, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 5857791395288022546, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 5925736493732419183, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7104864379071619004, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7640225906634053797, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d745b8f4ef0816244ba1585f4f34293b, type: 3} +--- !u!114 &445053123 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3351761392250452040, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + m_PrefabInstance: {fileID: 3351761392141205643} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1893516735634251279 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3802382007037501060, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + m_PrefabInstance: {fileID: 3351761392141205643} + m_PrefabAsset: {fileID: 0} +--- !u!224 &1893516735634251278 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3802382007037501061, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + m_PrefabInstance: {fileID: 3351761392141205643} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5095037789043063184 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7509449899451644187, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + m_PrefabInstance: {fileID: 3351761392141205643} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3463848345469516931 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2202777596087434248, guid: d745b8f4ef0816244ba1585f4f34293b, + type: 3} + m_PrefabInstance: {fileID: 3351761392141205643} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3697592250992239959 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 126841961219918621, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.x + value: 128 + objectReference: {fileID: 0} + - target: {fileID: 126850650622171940, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 327911496839598646, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 936357247105290562, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 1230197134381729914, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1230197134381729914, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1230197134381729914, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 1230197134381729914, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -1093.5 + objectReference: {fileID: 0} + - target: {fileID: 1247282491650438843, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 1587016007410289970, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1587016007410289970, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1587016007410289970, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 236 + objectReference: {fileID: 0} + - target: {fileID: 1587016007410289970, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 1712571296287095243, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 1712571296581473621, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 1712571297289990801, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 2023597310369919779, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 2023597310369919779, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 2257175534051030449, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 2481775387260960443, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: BrowserPanelHeaderBackground + value: + objectReference: {fileID: 1893516735231219151} + - target: {fileID: 2710601352341768161, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 2808773147583204528, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.x + value: 128 + objectReference: {fileID: 0} + - target: {fileID: 2863812867318801946, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 2863812867318801946, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 2902040373895889027, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 2902040373895889027, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 3109181258600622993, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 3789781511054597007, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 3904946412240464002, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 3904946412240464002, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 4056221102521404262, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4056221102521404262, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4380556625283861586, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4601365486572797855, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 4601365486572797855, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 4664961308672960731, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 4664961308672960731, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 4937648187081177985, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 4937648187081177985, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 5346609901548097610, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 5404838525870154722, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 5404838525870154722, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 5641179401900381504, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5641179401900381504, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5641179401900381504, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 5641179401900381504, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -2362.5 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5760055837242226405, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Name + value: Home + objectReference: {fileID: 0} + - target: {fileID: 5760055837487575704, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.x + value: 314 + objectReference: {fileID: 0} + - target: {fileID: 5760055838030722348, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055838030722348, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055838030722348, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5979151 + objectReference: {fileID: 0} + - target: {fileID: 5760055838370208910, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Size + value: 0.4020849 + objectReference: {fileID: 0} + - target: {fileID: 5760055838395833916, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.y + value: 2686 + objectReference: {fileID: 0} + - target: {fileID: 5760055838864409643, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055838864409643, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055838864409643, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 5760055838864409643, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -2646 + objectReference: {fileID: 0} + - target: {fileID: 5760055839024060862, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055839024060862, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5760055839024060862, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 5760055839024060862, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -164 + objectReference: {fileID: 0} + - target: {fileID: 5862014079134537912, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 6029081759169378434, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6029081759169378434, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6029081759169378434, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.x + value: 74.78 + objectReference: {fileID: 0} + - target: {fileID: 6029081759169378434, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 6029081759169378434, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 73.5 + objectReference: {fileID: 0} + - target: {fileID: 6029081759169378434, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 6156996697744449740, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 6388068492771513046, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 6388068492771513046, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 6661404417012533100, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6661404417012533100, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6661404417012533100, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 240.5 + objectReference: {fileID: 0} + - target: {fileID: 6661404417012533100, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 6677660644696604223, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6677660644696604223, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6677660644696604223, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 6677660644696604223, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -1939.5 + objectReference: {fileID: 0} + - target: {fileID: 6745736109228068663, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.x + value: 128 + objectReference: {fileID: 0} + - target: {fileID: 6758813166262263795, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 6758813166262263795, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_TargetGraphic + value: + objectReference: {fileID: 7136981664223330426} + - target: {fileID: 6820534038293358429, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7320064122044428091, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7320064122044428091, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7320064122044428091, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 176 + objectReference: {fileID: 0} + - target: {fileID: 7320064122044428091, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 7400556031270052247, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7400556031270052247, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7400556031270052247, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 7400556031270052247, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 7549938266315537458, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7549938266315537458, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7549938266315537458, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.x + value: 55.83 + objectReference: {fileID: 0} + - target: {fileID: 7549938266315537458, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 7549938266315537458, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 73.5 + objectReference: {fileID: 0} + - target: {fileID: 7549938266315537458, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 7844501160337624107, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_SizeDelta.x + value: 128 + objectReference: {fileID: 0} + - target: {fileID: 7927652363544414619, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7927652363544414619, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7927652363544414619, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 7927652363544414619, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -1516.5 + objectReference: {fileID: 0} + - target: {fileID: 8159661877114048582, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 8804625801360902364, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 8804625801360902364, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e7c972a3b0c92ba4f8be9938d0c63a43, type: 3} +--- !u!224 &8989088974670517171 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5760055837242226404, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1234396549239151596 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2481775387260960443, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974670517170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9a181712313aa74597d2fd0cad977f4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1893516736281489272 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2960945230090701359, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8659479706839099516 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5439462582072642859, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7136981664223330426 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5790463146231801133, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8746700689914033435 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5346609901548097612, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3328724868697026904 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2117392413437776911, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8111701777903851331 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4882730228293317140, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1345671315508899556 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2449030627395505075, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 811030f917147504589eb74c563a0d3a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8989088974670517170 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5760055837242226405, guid: e7c972a3b0c92ba4f8be9938d0c63a43, + type: 3} + m_PrefabInstance: {fileID: 3697592250992239959} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3983697154900495466 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 5473922759698932872, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_Name + value: ContextMenu + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_RootOrder + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_SizeDelta.x + value: 260 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_SizeDelta.y + value: 48 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -125 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, type: 3} +--- !u!1 &8989088974330128610 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5473922759698932872, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + m_PrefabInstance: {fileID: 3983697154900495466} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8989088974330128611 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5473922759698932873, guid: b6b79b4f8e6f7204caf690ec4a93fdfc, + type: 3} + m_PrefabInstance: {fileID: 3983697154900495466} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4046368501472503916 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974132902754} + m_Modifications: + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalPosition.x + value: 289.61996 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalPosition.y + value: 246.03793 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalPosition.z + value: -13.464658 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[0].defaultSelectedObject + value: + objectReference: {fileID: 8746700689914033435} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[1].defaultSelectedObject + value: + objectReference: {fileID: 8989088973366545821} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[2].defaultSelectedObject + value: + objectReference: {fileID: 6263020593954170217} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[3].defaultSelectedObject + value: + objectReference: {fileID: 6263020594179064106} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[4].defaultSelectedObject + value: + objectReference: {fileID: 3463848346240956164} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[5].defaultSelectedObject + value: + objectReference: {fileID: 3463848345821676872} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[6].defaultSelectedObject + value: + objectReference: {fileID: 6263020595490939020} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[7].defaultSelectedObject + value: + objectReference: {fileID: 1893516734596061666} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[8].defaultSelectedObject + value: + objectReference: {fileID: 1893516736268411314} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[9].defaultSelectedObject + value: + objectReference: {fileID: 6263020594268687145} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[10].defaultSelectedObject + value: + objectReference: {fileID: 6263020595006076978} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[11].defaultSelectedObject + value: + objectReference: {fileID: 8989088974647900553} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[12].defaultSelectedObject + value: + objectReference: {fileID: 6263020593924991564} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[13].defaultSelectedObject + value: + objectReference: {fileID: 4840592677501763395} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[14].defaultSelectedObject + value: + objectReference: {fileID: 6263020594378363610} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[16].defaultSelectedObject + value: + objectReference: {fileID: 3463848345469516931} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[17].defaultSelectedObject + value: + objectReference: {fileID: 5471285212197136237} + - target: {fileID: 2477131282240615710, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: defaultViews.Array.data[18].defaultSelectedObject + value: + objectReference: {fileID: 523472227001641726} + - target: {fileID: 2477131282240615711, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + propertyPath: m_Name + value: SelectionManager + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ea21e48f38da76543b756b26384f53b2, type: 3} +--- !u!4 &1893516736165879165 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2477131282240615697, guid: ea21e48f38da76543b756b26384f53b2, + type: 3} + m_PrefabInstance: {fileID: 4046368501472503916} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5896202355328681047 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 3273039434364840428, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 3273039434376076631, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 3273039434782283549, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -5 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273039434983351812, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: m_Name + value: ModDetails Panel + objectReference: {fileID: 0} + - target: {fileID: 5252292763153535024, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 5252292763611017344, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d54a705255921934c9d7e49fdc181f47, type: 3} +--- !u!1 &763285129751173082 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6576450648925541261, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + m_PrefabInstance: {fileID: 5896202355328681047} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8989088974266968825 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3273039434490064558, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + m_PrefabInstance: {fileID: 5896202355328681047} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8989088974764450388 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3273039434983351811, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + m_PrefabInstance: {fileID: 5896202355328681047} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2456183382524538244 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8342242146084432339, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + m_PrefabInstance: {fileID: 5896202355328681047} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8989088974647900553 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3273039434906648030, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + m_PrefabInstance: {fileID: 5896202355328681047} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8989088973867553284 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3273039434092746323, guid: d54a705255921934c9d7e49fdc181f47, + type: 3} + m_PrefabInstance: {fileID: 5896202355328681047} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6016196942305301805 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974132902754} + m_Modifications: + - target: {fileID: 1152965179246734492, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_Name + value: Input Navigation + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalPosition.x + value: 400.79144 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalPosition.y + value: 252.08183 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalPosition.z + value: 3.0401669 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: MouseButtonIcons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: MouseButtonIcons.Array.data[0] + value: + objectReference: {fileID: 5051438322736751593} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: MouseButtonIcons.Array.data[1] + value: + objectReference: {fileID: 8989088973867553284} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: MouseButtonIcons.Array.data[2] + value: + objectReference: {fileID: 8989088974266968825} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[0] + value: + objectReference: {fileID: 6753836796470259977} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[1] + value: + objectReference: {fileID: 8989088974207088660} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[2] + value: + objectReference: {fileID: 1893516735102037498} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[3] + value: + objectReference: {fileID: 8111701777903851331} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[4] + value: + objectReference: {fileID: 3328724868697026904} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[5] + value: + objectReference: {fileID: 1893516736350351233} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[6] + value: + objectReference: {fileID: 7055042685535865180} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[7] + value: + objectReference: {fileID: 3328724869292898985} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[8] + value: + objectReference: {fileID: 1893516735354700757} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[9] + value: + objectReference: {fileID: 2327659950358824763} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[10] + value: + objectReference: {fileID: 4937160983271311031} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[11] + value: + objectReference: {fileID: 1893516734520461365} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[12] + value: + objectReference: {fileID: 1893516734505421756} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[13] + value: + objectReference: {fileID: 8989088973867553284} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[14] + value: + objectReference: {fileID: 8989088974266968825} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[15] + value: + objectReference: {fileID: 8659479706839099516} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[16] + value: + objectReference: {fileID: 1893516736281489272} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[17] + value: + objectReference: {fileID: 5095037789043063184} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[18] + value: + objectReference: {fileID: 2456183382524538244} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[19] + value: + objectReference: {fileID: 763285129751173082} + - target: {fileID: 6163454308962251714, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + propertyPath: ControllerButtonIcons.Array.data[20] + value: + objectReference: {fileID: 8989088974003534252} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, type: 3} +--- !u!4 &1980296656040563514 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5190045006183204375, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + m_PrefabInstance: {fileID: 6016196942305301805} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4863312031803210161 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1152965179246734492, guid: 8c6ca06ea3133cd4f8c7798a423b65f8, + type: 3} + m_PrefabInstance: {fileID: 6016196942305301805} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6269981554021496266 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3151635505209770847, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: m_Name + value: Mod Collection + objectReference: {fileID: 0} + - target: {fileID: 4940903284276904462, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: uninstallConfirmationPanel + value: + objectReference: {fileID: 8989088974637467834} + - target: {fileID: 4940903284276904462, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: uninstallConfirmationPanelModName + value: + objectReference: {fileID: 1893516735381758481} + - target: {fileID: 4940903284276904462, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: uninstallConfirmationPanelFileSize + value: + objectReference: {fileID: 8989088974966039233} + - target: {fileID: 5634869264469495778, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 6878629680744723261, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 6878629681347413742, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 6878629682095833423, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 6878629682700579996, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 984b45bb8f473594a90406837fcc03f6, type: 3} +--- !u!1 &8989088974680782485 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3151635505209770847, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + m_PrefabInstance: {fileID: 6269981554021496266} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1410451707985475524 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4940903284276904462, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + m_PrefabInstance: {fileID: 6269981554021496266} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974680782485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 25058e2ef49af6545a955cef5bced6cb, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6263020595006076978 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 137864518997446136, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + m_PrefabInstance: {fileID: 6269981554021496266} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1815057015430150696 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5634869264469495778, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + m_PrefabInstance: {fileID: 6269981554021496266} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6263020595006076978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &8989088974680782486 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3151635505209770844, guid: 984b45bb8f473594a90406837fcc03f6, + type: 3} + m_PrefabInstance: {fileID: 6269981554021496266} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6353855248690981509 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 2635385768219430501, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8989088974132902753} + - target: {fileID: 2635385768219430501, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 7376382230776530698} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_SizeDelta.x + value: 48 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_SizeDelta.y + value: 48 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -80 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2635385768219430555, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_Name + value: Log in & settings + objectReference: {fileID: 0} + - target: {fileID: 7422655373767724808, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7376382230776530698} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4e3560bff46556f4b8dcdd3e31f54a32, type: 3} +--- !u!114 &8989088974616621303 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2635385769247464050, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + m_PrefabInstance: {fileID: 6353855248690981509} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &8989088973446767647 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2635385768219430554, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + m_PrefabInstance: {fileID: 6353855248690981509} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1893516735333817471 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4785763858246432506, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + m_PrefabInstance: {fileID: 6353855248690981509} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &7700590130810735432 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3670592316288033229, guid: 4e3560bff46556f4b8dcdd3e31f54a32, + type: 3} + m_PrefabInstance: {fileID: 6353855248690981509} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &6741842186263786144 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 2391549340146156330, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_Name + value: Report Panel + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2469945915458081697, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 2469945915816321701, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877137672268503, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877137789660210, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877138224295407, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877138647350548, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877138650017351, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877138741667721, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877138742024950, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877138971413719, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877139165070154, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877139179699086, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 4953877139423009379, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b453efa2342c8cd42bacda122d59b301, type: 3} +--- !u!1 &8989088973532279178 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2391549340146156330, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + m_PrefabInstance: {fileID: 6741842186263786144} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8989088973532279179 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2391549340146156331, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + m_PrefabInstance: {fileID: 6741842186263786144} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6263020593924991564 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 821183125754484972, guid: b453efa2342c8cd42bacda122d59b301, + type: 3} + m_PrefabInstance: {fileID: 6741842186263786144} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8018839883092652917 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 586084122694290036, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_Name + value: NotificationPopup + objectReference: {fileID: 0} + - target: {fileID: 586084122694290036, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 790639211219929612, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 790639211219929612, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 790639211219929612, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 302.91867 + objectReference: {fileID: 0} + - target: {fileID: 790639211219929612, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -57.59073 + objectReference: {fileID: 0} + - target: {fileID: 1078932491597906583, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1078932491597906583, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1078932491597906583, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 100.97289 + objectReference: {fileID: 0} + - target: {fileID: 1078932491597906583, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -57.59073 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3351924033330984503, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3351924033330984503, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3351924033330984503, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 504.86447 + objectReference: {fileID: 0} + - target: {fileID: 3351924033330984503, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -57.59073 + objectReference: {fileID: 0} + - target: {fileID: 5405122745631072930, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7746072868280260098, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 8033961545559088793, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8d555f103a7dc374c9fe923c5a06f8d3, type: 3} +--- !u!1 &5471285212197136237 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2640600915461231640, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + m_PrefabInstance: {fileID: 8018839883092652917} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8473402708461312073 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1936326553840626492, guid: 8d555f103a7dc374c9fe923c5a06f8d3, + type: 3} + m_PrefabInstance: {fileID: 8018839883092652917} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8116026125585663092 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 873207984212787038, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_Name + value: Toast Notifications + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 873207985097786796, guid: 4ebcda84dcabb7c478414af24f21764b, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 4ebcda84dcabb7c478414af24f21764b, type: 3} +--- !u!1 &8989088974196407082 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 873207984212787038, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + m_PrefabInstance: {fileID: 8116026125585663092} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8989088974196407083 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 873207984212787039, guid: 4ebcda84dcabb7c478414af24f21764b, + type: 3} + m_PrefabInstance: {fileID: 8116026125585663092} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8893324566044400241 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974132902754} + m_Modifications: + - target: {fileID: 8893324564416866145, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_Name + value: ExampleInputCapture + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalPosition.x + value: 1019.75134 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalPosition.y + value: 521.43976 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalPosition.z + value: 15.910962 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0b306d249f4833444b11dd61db95dcad, type: 3} +--- !u!4 &1627815186 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8893324564416866147, guid: 0b306d249f4833444b11dd61db95dcad, + type: 3} + m_PrefabInstance: {fileID: 8893324566044400241} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8896866077704013097 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 560606089335302676, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606089335302676, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606089335302676, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 256 + objectReference: {fileID: 0} + - target: {fileID: 560606089335302676, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 560606089335302679, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 560606089335302679, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1410451707985475524} + - target: {fileID: 560606089867562704, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_SizeDelta.x + value: 380 + objectReference: {fileID: 0} + - target: {fileID: 560606089867562704, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_SizeDelta.y + value: 76 + objectReference: {fileID: 0} + - target: {fileID: 560606090239388176, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 560606090239388176, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1234396549239151596} + - target: {fileID: 560606090239388177, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606090239388177, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606090239388177, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 104 + objectReference: {fileID: 0} + - target: {fileID: 560606090239388177, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 560606090467960151, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_Name + value: Top Nav Bar + objectReference: {fileID: 0} + - target: {fileID: 560606090551311676, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606090551311676, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 560606090551311676, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 348 + objectReference: {fileID: 0} + - target: {fileID: 560606090551311676, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 4730910680235919201, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4730910680235919201, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4730910680235919201, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 6287728955139665166, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6287728955139665166, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6287728955139665166, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 64.682495 + objectReference: {fileID: 0} + - target: {fileID: 6287728955139665166, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 7007350329050589388, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7007350329050589388, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7007350329050589388, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 136.6825 + objectReference: {fileID: 0} + - target: {fileID: 7007350329050589388, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 7082020580288164991, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7082020580288164991, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8989088974132902753} + - target: {fileID: 7082020582075633359, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7082020582075633359, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5576515969151178355} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, type: 3} +--- !u!114 &1893516735231219151 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7007350328927686886, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + m_PrefabInstance: {fileID: 8896866077704013097} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1893516735102037498 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7007350329050589395, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + m_PrefabInstance: {fileID: 8896866077704013097} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8989088974207088660 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 560606090551311677, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + m_PrefabInstance: {fileID: 8896866077704013097} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6753836796470259977 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2792924766965019680, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + m_PrefabInstance: {fileID: 8896866077704013097} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8989088974283087999 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 560606090467960150, guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7, + type: 3} + m_PrefabInstance: {fileID: 8896866077704013097} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &9002323654564509994 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 22805387498254736, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_Name + value: Uninstall Confirmation Menu + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7340529943912688106, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7340529943912688106, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1410451707985475524} + - target: {fileID: 7340529944583222863, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7340529944583222863, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1410451707985475524} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0a464bb150d6dbe46b938abf56a57201, type: 3} +--- !u!114 &1893516735381758481 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7397640514918816571, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + m_PrefabInstance: {fileID: 9002323654564509994} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8989088974966039233 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 22805388228484075, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + m_PrefabInstance: {fileID: 9002323654564509994} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6263020594378363610 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3027568656160205808, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + m_PrefabInstance: {fileID: 9002323654564509994} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8989088974637467834 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 22805387498254736, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + m_PrefabInstance: {fileID: 9002323654564509994} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8989088974637467835 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 22805387498254737, guid: 0a464bb150d6dbe46b938abf56a57201, + type: 3} + m_PrefabInstance: {fileID: 9002323654564509994} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &9002439468039494841 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 22727128957527458, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_Name + value: Search Panel + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4065421421365254671, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 6815055118060845628, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7340715946915157203, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 8191048433040003289, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 767ce36082d6519459c23650a28a5f29, type: 3} +--- !u!1 &5051438322736751593 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4248379458315599696, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + m_PrefabInstance: {fileID: 9002439468039494841} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8989088974781053211 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 22727128957527458, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + m_PrefabInstance: {fileID: 9002439468039494841} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8989088973366545821 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 22727129952653604, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + m_PrefabInstance: {fileID: 9002439468039494841} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8989088974003534252 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 22727130323297557, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + m_PrefabInstance: {fileID: 9002439468039494841} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4937160983271311031 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4065421421365254670, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + m_PrefabInstance: {fileID: 9002439468039494841} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2327659950358824763 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6675060994369772418, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + m_PrefabInstance: {fileID: 9002439468039494841} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1893516735354700757 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7397172900146470764, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + m_PrefabInstance: {fileID: 9002439468039494841} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5576515969151178355 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3570463100115077834, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + m_PrefabInstance: {fileID: 9002439468039494841} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8989088974781053211} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f256e83bf0cc2d2429e619e70800b638, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &8989088974781053212 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 22727128957527461, guid: 767ce36082d6519459c23650a28a5f29, + type: 3} + m_PrefabInstance: {fileID: 9002439468039494841} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &9111109284383726520 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8989088974461564262} + m_Modifications: + - target: {fileID: 124410400035020010, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 124410400454291110, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 202241233251530203, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_Name + value: Authentication Popup + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_RootOrder + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 202241233593690200, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 202241233843684505, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 582567568040103326, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 925376273754343133, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7272181641407465854, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: Avatar_Main + value: + objectReference: {fileID: 8989088974616621303} + - target: {fileID: 7272181641407465854, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: AvatarDownloadBar + value: + objectReference: {fileID: 1893516735333817471} + - target: {fileID: 7272181641407465854, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: PlatformIcon_Main + value: + objectReference: {fileID: 7700590130810735432} + - target: {fileID: 7272181641407465854, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: PlatformIcon_DownloadQueue + value: + objectReference: {fileID: 445053123} + - target: {fileID: 7436085604402578084, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7440308469998411781, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7440308470102128942, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7440308471022637707, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7440308471022637707, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 1234396549239151596} + - target: {fileID: 7440308471046264968, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7440308471499131697, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7440308471569427063, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 7440308471908351179, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + - target: {fileID: 8197357445277052599, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 8989088974132902757} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e504c2c7b46822f4a9fd6549967f71b8, type: 3} +--- !u!1 &8989088973629451875 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 202241233251530203, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1893516734596061666 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7221019452671754842, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3463848345821676872 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5648400315019566832, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6263020593954170217 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2926092443703885521, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6263020595490939020 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2926092445102242612, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1893516736268411314 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7221019454488820234, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6263020594179064106 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2926092444486032018, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3463848346240956164 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5648400314868477116, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6263020594268687145 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2926092444445692049, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} +--- !u!224 &8989088973629451876 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 202241233251530204, guid: e504c2c7b46822f4a9fd6549967f71b8, + type: 3} + m_PrefabInstance: {fileID: 9111109284383726520} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Examples/ModIOBrowser.prefab.meta b/UI/Examples/ModIOBrowser.prefab.meta new file mode 100644 index 0000000..06071a0 --- /dev/null +++ b/UI/Examples/ModIOBrowser.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 32197dad13832774eab54dd3029f1f7d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Examples/Settings Panel.prefab b/UI/Examples/Settings Panel.prefab new file mode 100644 index 0000000..5bbb12e --- /dev/null +++ b/UI/Examples/Settings Panel.prefab @@ -0,0 +1,7048 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &238949084907773313 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1263267347193394654} + - component: {fileID: 670017134182583477} + - component: {fileID: 5552602314111296280} + - component: {fileID: 6175510146537269925} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1263267347193394654 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238949084907773313} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7911435717276395072} + m_Father: {fileID: 1546160539776775495} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 554.4331, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &670017134182583477 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238949084907773313} + m_CullTransparentMesh: 0 +--- !u!114 &5552602314111296280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238949084907773313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6175510146537269925 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238949084907773313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5552602314111296280} + m_TextViewport: {fileID: 7911435717276395072} + m_TextComponent: {fileID: 5408043321188160026} + m_Placeholder: {fileID: 5300820425371804859} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!1 &463512721635661847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1623238468656926362} + - component: {fileID: 379549577450891659} + - component: {fileID: 5408043321188160026} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1623238468656926362 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463512721635661847} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7911435717276395072} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &379549577450891659 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463512721635661847} + m_CullTransparentMesh: 0 +--- !u!114 &5408043321188160026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463512721635661847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &972320106380727144 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1914447502490299816} + - component: {fileID: 4224232483656476909} + - component: {fileID: 8551304432238053590} + - component: {fileID: 3603840790787205346} + - component: {fileID: 500535527241114921} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1914447502490299816 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 972320106380727144} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7837238213205122016} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4224232483656476909 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 972320106380727144} + m_CullTransparentMesh: 0 +--- !u!114 &8551304432238053590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 972320106380727144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!114 &3603840790787205346 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 972320106380727144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Save + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &500535527241114921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 972320106380727144} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Save + text: {fileID: 3603840790787205346} +--- !u!1 &1371959926254573078 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2685313515351336427} + - component: {fileID: 8334040782174389418} + - component: {fileID: 715109261636769278} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2685313515351336427 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371959926254573078} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4309401710817639165} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8334040782174389418 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371959926254573078} + m_CullTransparentMesh: 0 +--- !u!114 &715109261636769278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371959926254573078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1425800524907681578 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7991576320757651860} + - component: {fileID: 5336744163682139046} + - component: {fileID: 8438709968468363087} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7991576320757651860 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1425800524907681578} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1191003684682622640} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5336744163682139046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1425800524907681578} + m_CullTransparentMesh: 0 +--- !u!114 &8438709968468363087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1425800524907681578} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1546294616549436100 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4231187728204623833} + - component: {fileID: 7983327622175817134} + - component: {fileID: 4971904084361273496} + m_Layer: 5 + m_Name: Gradient + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4231187728204623833 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546294616549436100} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4804804652935822685} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7983327622175817134 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546294616549436100} + m_CullTransparentMesh: 0 +--- !u!114 &4971904084361273496 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546294616549436100} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1635267132671081954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1546160539776775495} + - component: {fileID: 3468542564723114718} + - component: {fileID: 6911536427327211444} + m_Layer: 5 + m_Name: API Key Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1546160539776775495 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635267132671081954} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7554060330679086097} + - {fileID: 1263267347193394654} + m_Father: {fileID: 8052715670319653616} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 327.21655, y: -20} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3468542564723114718 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635267132671081954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &6911536427327211444 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1635267132671081954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &1728059803053198794 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8011912900381128419} + - component: {fileID: 5312329708236393100} + - component: {fileID: 5783389130814483861} + - component: {fileID: 3366859995535435959} + - component: {fileID: 62225167553686969} + m_Layer: 5 + m_Name: Settings + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8011912900381128419 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1728059803053198794} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4298231953040031072} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 720, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5312329708236393100 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1728059803053198794} + m_CullTransparentMesh: 0 +--- !u!114 &5783389130814483861 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1728059803053198794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Settings + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3366859995535435959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1728059803053198794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &62225167553686969 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1728059803053198794} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Settings + text: {fileID: 5783389130814483861} +--- !u!1 &1744693725485625371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5844140006999076737} + - component: {fileID: 5000337083781257226} + - component: {fileID: 3896616831602137400} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5844140006999076737 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744693725485625371} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6594384927249425063} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5000337083781257226 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744693725485625371} + m_CullTransparentMesh: 0 +--- !u!114 &3896616831602137400 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1744693725485625371} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1932939720919800823 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8615721913579555709} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8615721913579555709 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1932939720919800823} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6362711467495940745} + m_Father: {fileID: 1191003684682622640} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2229368009569246713 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2489393702538323156} + - component: {fileID: 8614228283486398771} + m_Layer: 5 + m_Name: Server Url Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2489393702538323156 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2229368009569246713} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4804804652935822685} + - {fileID: 2129805991277959548} + m_Father: {fileID: 555869674719868405} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 471.28778, y: 48} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &8614228283486398771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2229368009569246713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 24 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &2239556262950952142 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3570737505105526238} + - component: {fileID: 1896377868095533367} + - component: {fileID: 8978955966565056225} + - component: {fileID: 1762688460236980064} + m_Layer: 5 + m_Name: Initialize For User + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3570737505105526238 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2239556262950952142} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2197264644879044061} + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 600, y: -154.78534} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &1896377868095533367 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2239556262950952142} + m_CullTransparentMesh: 0 +--- !u!114 &8978955966565056225 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2239556262950952142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &1762688460236980064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2239556262950952142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &2278137537223970128 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8616258079147074453} + - component: {fileID: 565231159376906840} + - component: {fileID: 5300820425371804859} + - component: {fileID: 5737888165571962628} + - component: {fileID: 2275299881121921383} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8616258079147074453 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2278137537223970128} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7911435717276395072} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &565231159376906840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2278137537223970128} + m_CullTransparentMesh: 0 +--- !u!114 &5300820425371804859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2278137537223970128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Api Key + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2150773298 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5737888165571962628 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2278137537223970128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &2275299881121921383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2278137537223970128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Api Key + text: {fileID: 5300820425371804859} +--- !u!1 &2410508579377774099 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9107137501011038281} + - component: {fileID: 823309449906465677} + - component: {fileID: 4866943150061301666} + - component: {fileID: 3256177613688875937} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9107137501011038281 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2410508579377774099} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4309401710817639165} + m_Father: {fileID: 2197264644879044061} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 247.19894, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &823309449906465677 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2410508579377774099} + m_CullTransparentMesh: 0 +--- !u!114 &4866943150061301666 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2410508579377774099} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3256177613688875937 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2410508579377774099} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4866943150061301666} + m_TextViewport: {fileID: 4309401710817639165} + m_TextComponent: {fileID: 715109261636769278} + m_Placeholder: {fileID: 7931019291210319869} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!1 &2560447376726648334 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5198704961129613327} + - component: {fileID: 6441540392311767418} + - component: {fileID: 3798714601402230961} + m_Layer: 5 + m_Name: Gradient + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5198704961129613327 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2560447376726648334} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7837238213205122016} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6441540392311767418 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2560447376726648334} + m_CullTransparentMesh: 0 +--- !u!114 &3798714601402230961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2560447376726648334} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2591113026678185072 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 833622840495966018} + - component: {fileID: 8555683381674315354} + - component: {fileID: 6517748589514865729} + - component: {fileID: 1590270955685724625} + - component: {fileID: 5716190600369299356} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &833622840495966018 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2591113026678185072} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2129805991277959548} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8555683381674315354 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2591113026678185072} + m_CullTransparentMesh: 0 +--- !u!114 &6517748589514865729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2591113026678185072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!114 &1590270955685724625 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2591113026678185072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Test Server Url + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5716190600369299356 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2591113026678185072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Test Server Url + text: {fileID: 1590270955685724625} +--- !u!1 &2635887046338906308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1766513106663367805} + m_Layer: 5 + m_Name: Whitespace (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1766513106663367805 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635887046338906308} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2649245069803534831 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6594384927249425063} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6594384927249425063 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2649245069803534831} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5844140006999076737} + m_Father: {fileID: 1191003684682622640} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2801441522873119598 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7240276341074746271} + - component: {fileID: 1940653360259804930} + - component: {fileID: 5420132540437997327} + - component: {fileID: 8825051350131793152} + m_Layer: 5 + m_Name: Bold font + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7240276341074746271 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2801441522873119598} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1997008003781636643} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1940653360259804930 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2801441522873119598} + m_CullTransparentMesh: 0 +--- !u!114 &5420132540437997327 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2801441522873119598} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Quit + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8825051350131793152 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2801441522873119598} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Quit + text: {fileID: 5420132540437997327} +--- !u!1 &2804925445535669477 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7554060330679086097} + - component: {fileID: 3718461199811641056} + - component: {fileID: 8626479583384763867} + - component: {fileID: 8916057063219323605} + m_Layer: 5 + m_Name: Api Key Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7554060330679086097 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2804925445535669477} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1546160539776775495} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 40} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3718461199811641056 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2804925445535669477} + m_CullTransparentMesh: 0 +--- !u!114 &8626479583384763867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2804925445535669477} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Api Key:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8916057063219323605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2804925445535669477} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Api Key:' + text: {fileID: 8626479583384763867} +--- !u!1 &2926822929235955524 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5703793217327021981} + - component: {fileID: 6235047006319499852} + - component: {fileID: 4707290249763920874} + - component: {fileID: 6596741876507488206} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5703793217327021981 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2926822929235955524} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5084086939558959970} + m_Father: {fileID: 6597914884127113755} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 247.19894, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &6235047006319499852 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2926822929235955524} + m_CullTransparentMesh: 0 +--- !u!114 &4707290249763920874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2926822929235955524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6596741876507488206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2926822929235955524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4707290249763920874} + m_TextViewport: {fileID: 5084086939558959970} + m_TextComponent: {fileID: 3632058022168458475} + m_Placeholder: {fileID: 1988501046616898682} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!1 &2985157531545318412 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8625502454365915219} + - component: {fileID: 816676904288508259} + - component: {fileID: 2358853862206910019} + - component: {fileID: 2722780349865471318} + m_Layer: 5 + m_Name: Init User text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8625502454365915219 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2985157531545318412} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2197264644879044061} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 40} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &816676904288508259 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2985157531545318412} + m_CullTransparentMesh: 0 +--- !u!114 &2358853862206910019 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2985157531545318412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Initialize for User:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2722780349865471318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2985157531545318412} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Initialize for User:' + text: {fileID: 2358853862206910019} +--- !u!1 &3130848899744774082 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4574431916109052069} + - component: {fileID: 5994350649390956580} + - component: {fileID: 2207279679020884173} + m_Layer: 5 + m_Name: Pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4574431916109052069 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3130848899744774082} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1997008003781636643} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 2} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5994350649390956580 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3130848899744774082} + m_CullTransparentMesh: 0 +--- !u!114 &2207279679020884173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3130848899744774082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3198026976416539218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2129805991277959548} + - component: {fileID: 1534381900157069161} + - component: {fileID: 9190501209067768777} + - component: {fileID: 3818621733797879216} + - component: {fileID: 8829239082030729509} + m_Layer: 5 + m_Name: Test Server Url + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2129805991277959548 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3198026976416539218} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4716755396740286901} + - {fileID: 7634567278091821710} + - {fileID: 833622840495966018} + m_Father: {fileID: 2489393702538323156} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 220, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &1534381900157069161 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3198026976416539218} + m_CullTransparentMesh: 0 +--- !u!114 &9190501209067768777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3198026976416539218} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3818621733797879216 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3198026976416539218} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 1310809829852079882} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1702238139892900707} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5085556148731710505} + m_MethodName: SetServerUrl + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: https://api.test.mod.io/v1 + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 1702238139892900707} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 6421035511974801005} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 1e4c985c68da6a94396934b493a1ccad, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 1e4c985c68da6a94396934b493a1ccad, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 9190501209067768777} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &8829239082030729509 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3198026976416539218} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!1 &3266983891003030452 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6362711467495940745} + - component: {fileID: 4966489039016981829} + - component: {fileID: 1741516333942984774} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6362711467495940745 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3266983891003030452} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8615721913579555709} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4966489039016981829 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3266983891003030452} + m_CullTransparentMesh: 0 +--- !u!114 &1741516333942984774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3266983891003030452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3512382025716173663 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3382315304172014273} + - component: {fileID: 869721546606682253} + - component: {fileID: 3733236609856419454} + - component: {fileID: 2257244100381527370} + m_Layer: 5 + m_Name: Game Id Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3382315304172014273 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3512382025716173663} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6597914884127113755} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 40} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &869721546606682253 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3512382025716173663} + m_CullTransparentMesh: 0 +--- !u!114 &3733236609856419454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3512382025716173663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Game Id:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2257244100381527370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3512382025716173663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Game Id:' + text: {fileID: 3733236609856419454} +--- !u!1 &3514680008351358685 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4309401710817639165} + - component: {fileID: 1354297834991685574} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4309401710817639165 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3514680008351358685} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8982983331320691538} + - {fileID: 2685313515351336427} + m_Father: {fileID: 9107137501011038281} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1354297834991685574 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3514680008351358685} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} +--- !u!1 &3542612838531223610 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8754118683861719909} + - component: {fileID: 3997803267560406966} + - component: {fileID: 7076140431151551531} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8754118683861719909 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3542612838531223610} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1997008003781636643} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -100, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3997803267560406966 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3542612838531223610} + m_CullTransparentMesh: 0 +--- !u!114 &7076140431151551531 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3542612838531223610} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3550245652626807923 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 555869674719868405} + - component: {fileID: 4951268481463544967} + - component: {fileID: 1315106187806441875} + - component: {fileID: 6173312570045682500} + m_Layer: 5 + m_Name: Server Url + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &555869674719868405 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3550245652626807923} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2489393702538323156} + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &4951268481463544967 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3550245652626807923} + m_CullTransparentMesh: 0 +--- !u!114 &1315106187806441875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3550245652626807923} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &6173312570045682500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3550245652626807923} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &3740452838272706637 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1970278701842127504} + - component: {fileID: 6677724926204845053} + - component: {fileID: 7567249891734931025} + m_Layer: 5 + m_Name: Gradient + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1970278701842127504 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3740452838272706637} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4258957055143786582} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6677724926204845053 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3740452838272706637} + m_CullTransparentMesh: 0 +--- !u!114 &7567249891734931025 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3740452838272706637} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3991555709490125321 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8903868942035009777} + - component: {fileID: 2590186387742093371} + - component: {fileID: 5316670738069707947} + m_Layer: 5 + m_Name: Save/Cancel Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8903868942035009777 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3991555709490125321} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4258957055143786582} + - {fileID: 7837238213205122016} + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &2590186387742093371 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3991555709490125321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 24 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &5316670738069707947 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3991555709490125321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &3997534231987579223 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5758293597075800043} + - component: {fileID: 7622322183002422810} + - component: {fileID: 732163342894521533} + m_Layer: 5 + m_Name: Current Game Id Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5758293597075800043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3997534231987579223} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7622322183002422810 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3997534231987579223} + m_CullTransparentMesh: 0 +--- !u!114 &732163342894521533 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3997534231987579223} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Game Id: 12345' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &4023842212299362344 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3741336940848099225} + - component: {fileID: 6996699682117274308} + - component: {fileID: 7419206556108344120} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3741336940848099225 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4023842212299362344} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7837238213205122016} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6996699682117274308 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4023842212299362344} + m_CullTransparentMesh: 0 +--- !u!114 &7419206556108344120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4023842212299362344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4024051385204396935 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4095490384893318621} + - component: {fileID: 1287668002043450478} + - component: {fileID: 3632058022168458475} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4095490384893318621 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4024051385204396935} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5084086939558959970} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1287668002043450478 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4024051385204396935} + m_CullTransparentMesh: 0 +--- !u!114 &3632058022168458475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4024051385204396935} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &4120422154170565842 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4258957055143786582} + - component: {fileID: 5124849126219384976} + - component: {fileID: 4041737997422547458} + - component: {fileID: 3366457585414553612} + - component: {fileID: 680484880197648927} + m_Layer: 5 + m_Name: Cancel Changes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4258957055143786582 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4120422154170565842} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1970278701842127504} + - {fileID: 4692464304044484421} + - {fileID: 3641990060751197311} + m_Father: {fileID: 8903868942035009777} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 190, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5124849126219384976 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4120422154170565842} + m_CullTransparentMesh: 0 +--- !u!114 &4041737997422547458 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4120422154170565842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3366457585414553612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4120422154170565842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 3068397986110738255} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7567249891734931025} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5085556148731710505} + m_MethodName: Close + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 7567249891734931025} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 9008148750145413488} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 1e4c985c68da6a94396934b493a1ccad, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 1e4c985c68da6a94396934b493a1ccad, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 4041737997422547458} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 9 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &680484880197648927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4120422154170565842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!1 &4128510476058577907 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7634567278091821710} + - component: {fileID: 8714902529468414982} + - component: {fileID: 6421035511974801005} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7634567278091821710 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4128510476058577907} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2129805991277959548} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8714902529468414982 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4128510476058577907} + m_CullTransparentMesh: 0 +--- !u!114 &6421035511974801005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4128510476058577907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4414104725688729839 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4692464304044484421} + - component: {fileID: 7835209006695067201} + - component: {fileID: 9008148750145413488} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4692464304044484421 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4414104725688729839} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4258957055143786582} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7835209006695067201 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4414104725688729839} + m_CullTransparentMesh: 0 +--- !u!114 &9008148750145413488 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4414104725688729839} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4595725100649171337 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4999609711819758328} + m_Layer: 5 + m_Name: Whitespace + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4999609711819758328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4595725100649171337} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &4678375401972874066 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5732949744934640615} + m_Layer: 5 + m_Name: Whitespace + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5732949744934640615 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4678375401972874066} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &4750541563107363769 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1456695893281337159} + - component: {fileID: 2447986215931038702} + - component: {fileID: 1746337410388954781} + - component: {fileID: 5812083826016164647} + - component: {fileID: 3255446852395157601} + - component: {fileID: 7582841264806388674} + - component: {fileID: 5085556148731710505} + m_Layer: 5 + m_Name: Settings Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1456695893281337159 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4750541563107363769} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4298231953040031072} + - {fileID: 3570737505105526238} + - {fileID: 3874361175814237407} + - {fileID: 8052715670319653616} + - {fileID: 555869674719868405} + - {fileID: 5758293597075800043} + - {fileID: 4281969109038385457} + - {fileID: 1766513106663367805} + - {fileID: 9045675482972604282} + - {fileID: 5732949744934640615} + - {fileID: 1191003684682622640} + - {fileID: 4999609711819758328} + - {fileID: 8903868942035009777} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1200, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2447986215931038702 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4750541563107363769} + m_CullTransparentMesh: 0 +--- !u!114 &1746337410388954781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4750541563107363769} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f12eeb8dd0927a249aeec61fdfc3eba7, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5812083826016164647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4750541563107363769} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3255446852395157601 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4750541563107363769} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &7582841264806388674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4750541563107363769} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 40 + m_Bottom: 40 + m_ChildAlignment: 1 + m_Spacing: 20 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &5085556148731710505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4750541563107363769} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6c66c01747fab34f84c70f9ef73080c, type: 3} + m_Name: + m_EditorClassIdentifier: + gameIdInputField: {fileID: 6596741876507488206} + apiKeyInputField: {fileID: 6175510146537269925} + initUserInputField: {fileID: 3256177613688875937} + currentServerUrlText: {fileID: 4085204414925621438} + currentGameIdText: {fileID: 732163342894521533} + buttons: [] +--- !u!1 &4895975177222567904 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1191003684682622640} + - component: {fileID: 3708226224761905571} + m_Layer: 5 + m_Name: Audio Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1191003684682622640 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4895975177222567904} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7991576320757651860} + - {fileID: 6594384927249425063} + - {fileID: 8615721913579555709} + - {fileID: 1997008003781636643} + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3708226224761905571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4895975177222567904} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1741516333942984774} + m_FillRect: {fileID: 5844140006999076737} + m_HandleRect: {fileID: 6362711467495940745} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: VolumeSliderChange + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &4963628343503992395 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7877321706958815190} + - component: {fileID: 1925835065588724283} + - component: {fileID: 551844799223556743} + m_Layer: 5 + m_Name: Cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7877321706958815190 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4963628343503992395} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1997008003781636643} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 100, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1925835065588724283 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4963628343503992395} + m_CullTransparentMesh: 0 +--- !u!114 &551844799223556743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4963628343503992395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5546334358028642897 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4716755396740286901} + - component: {fileID: 707402966548714588} + - component: {fileID: 1702238139892900707} + m_Layer: 5 + m_Name: Gradient + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4716755396740286901 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546334358028642897} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2129805991277959548} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &707402966548714588 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546334358028642897} + m_CullTransparentMesh: 0 +--- !u!114 &1702238139892900707 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546334358028642897} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5844358780093230248 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8052715670319653616} + - component: {fileID: 2676778572789902030} + - component: {fileID: 7916700719921767029} + - component: {fileID: 3978152609336091146} + m_Layer: 5 + m_Name: API Key + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8052715670319653616 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5844358780093230248} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1546160539776775495} + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 600, y: -274.78534} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &2676778572789902030 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5844358780093230248} + m_CullTransparentMesh: 0 +--- !u!114 &7916700719921767029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5844358780093230248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &3978152609336091146 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5844358780093230248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &5923865825023240550 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4298231953040031072} + - component: {fileID: 3851193288632188064} + m_Layer: 5 + m_Name: Title and Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4298231953040031072 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5923865825023240550} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8011912900381128419} + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 800, y: 94.78534} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3851193288632188064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5923865825023240550} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &6053270648009131751 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3641990060751197311} + - component: {fileID: 2661997916548919250} + - component: {fileID: 5706326621284262452} + - component: {fileID: 8550056663514682192} + - component: {fileID: 5137368082180221805} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3641990060751197311 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053270648009131751} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4258957055143786582} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2661997916548919250 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053270648009131751} + m_CullTransparentMesh: 0 +--- !u!114 &5706326621284262452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053270648009131751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!114 &8550056663514682192 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053270648009131751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Back + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5137368082180221805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053270648009131751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Back + text: {fileID: 8550056663514682192} +--- !u!1 &6053660312078620900 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1997008003781636643} + - component: {fileID: 2601470911760462045} + - component: {fileID: 8720342358653616389} + - component: {fileID: 5294901332931816927} + - component: {fileID: 3528337994155887812} + m_Layer: 5 + m_Name: Text (TMP) (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1997008003781636643 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053660312078620900} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7240276341074746271} + - {fileID: 4574431916109052069} + - {fileID: 8754118683861719909} + - {fileID: 7877321706958815190} + m_Father: {fileID: 1191003684682622640} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 37, y: 31} + m_SizeDelta: {x: 0, y: 35} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2601470911760462045 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053660312078620900} + m_CullTransparentMesh: 0 +--- !u!114 &8720342358653616389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053660312078620900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Audio + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.054901965, g: 0.0627451, b: 0.10588236, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5294901332931816927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053660312078620900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &3528337994155887812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6053660312078620900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Audio + text: {fileID: 8720342358653616389} +--- !u!1 &6149630358961688959 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8982983331320691538} + - component: {fileID: 2027608891834481689} + - component: {fileID: 7931019291210319869} + - component: {fileID: 7449920557309804743} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8982983331320691538 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6149630358961688959} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4309401710817639165} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2027608891834481689 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6149630358961688959} + m_CullTransparentMesh: 0 +--- !u!114 &7931019291210319869 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6149630358961688959} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: User + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2150773298 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7449920557309804743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6149630358961688959} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &6434346811728700473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7837238213205122016} + - component: {fileID: 6786576807077905827} + - component: {fileID: 4555850880812766709} + - component: {fileID: 3068397986110738255} + - component: {fileID: 2273700832706015280} + m_Layer: 5 + m_Name: Save Changes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7837238213205122016 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6434346811728700473} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5198704961129613327} + - {fileID: 3741336940848099225} + - {fileID: 1914447502490299816} + m_Father: {fileID: 8903868942035009777} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 190, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &6786576807077905827 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6434346811728700473} + m_CullTransparentMesh: 0 +--- !u!114 &4555850880812766709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6434346811728700473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3068397986110738255 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6434346811728700473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 3366457585414553612} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3798714601402230961} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5085556148731710505} + m_MethodName: SaveSettings + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 5085556148731710505} + m_MethodName: Close + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 3798714601402230961} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7419206556108344120} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 1e4c985c68da6a94396934b493a1ccad, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 1e4c985c68da6a94396934b493a1ccad, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 4555850880812766709} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 8 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &2273700832706015280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6434346811728700473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!1 &6525124563815215571 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3874361175814237407} + - component: {fileID: 36405001188233560} + - component: {fileID: 357942140357226424} + - component: {fileID: 5703442721534862322} + m_Layer: 5 + m_Name: Game Id + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3874361175814237407 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6525124563815215571} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6597914884127113755} + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &36405001188233560 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6525124563815215571} + m_CullTransparentMesh: 0 +--- !u!114 &357942140357226424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6525124563815215571} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &5703442721534862322 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6525124563815215571} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7132800219883547499 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9208411264642423189} + - component: {fileID: 4098249842399341202} + - component: {fileID: 8852536706289242961} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9208411264642423189 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7132800219883547499} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4804804652935822685} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4098249842399341202 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7132800219883547499} + m_CullTransparentMesh: 0 +--- !u!114 &8852536706289242961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7132800219883547499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7162864580597411097 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2197264644879044061} + - component: {fileID: 6082510718050631796} + - component: {fileID: 8069397939761520171} + m_Layer: 5 + m_Name: Init User field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2197264644879044061 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7162864580597411097} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8625502454365915219} + - {fileID: 9107137501011038281} + m_Father: {fileID: 3570737505105526238} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 223.59947, y: -20} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6082510718050631796 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7162864580597411097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &8069397939761520171 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7162864580597411097} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &7414132336516615137 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8930760477684485900} + - component: {fileID: 1336191664920382158} + - component: {fileID: 1988501046616898682} + - component: {fileID: 6705595236112306819} + - component: {fileID: 7811267413360400166} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8930760477684485900 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7414132336516615137} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5084086939558959970} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1336191664920382158 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7414132336516615137} + m_CullTransparentMesh: 0 +--- !u!114 &1988501046616898682 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7414132336516615137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Game Id + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2150773298 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &6705595236112306819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7414132336516615137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &7811267413360400166 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7414132336516615137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Game Id + text: {fileID: 1988501046616898682} +--- !u!1 &7724410961152080415 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4281969109038385457} + - component: {fileID: 4383748107588988074} + - component: {fileID: 4085204414925621438} + m_Layer: 5 + m_Name: Current Server Url + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4281969109038385457 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7724410961152080415} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1456695893281337159} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4383748107588988074 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7724410961152080415} + m_CullTransparentMesh: 0 +--- !u!114 &4085204414925621438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7724410961152080415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Server Url: mod.io' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7762252097506678170 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4804804652935822685} + - component: {fileID: 2337794882343686731} + - component: {fileID: 7457101264770130661} + - component: {fileID: 1310809829852079882} + - component: {fileID: 2229533345918015015} + m_Layer: 5 + m_Name: Production Server Url + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4804804652935822685 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7762252097506678170} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4231187728204623833} + - {fileID: 9208411264642423189} + - {fileID: 6570636145820248057} + m_Father: {fileID: 2489393702538323156} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 220, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &2337794882343686731 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7762252097506678170} + m_CullTransparentMesh: 0 +--- !u!114 &7457101264770130661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7762252097506678170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1310809829852079882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7762252097506678170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 3818621733797879216} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4971904084361273496} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5085556148731710505} + m_MethodName: SetServerUrl + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: https://api.mod.io/v1 + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 4971904084361273496} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 8852536706289242961} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 1e4c985c68da6a94396934b493a1ccad, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 1e4c985c68da6a94396934b493a1ccad, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7457101264770130661} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 5 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &2229533345918015015 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7762252097506678170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &1912564371781873657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7947345996345629186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Language + text: {fileID: 7578326722718555710} +--- !u!1 &8388518338912708618 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7911435717276395072} + - component: {fileID: 7192639686024964711} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7911435717276395072 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8388518338912708618} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8616258079147074453} + - {fileID: 1623238468656926362} + m_Father: {fileID: 1263267347193394654} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7192639686024964711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8388518338912708618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} +--- !u!1 &8527108957403218524 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6570636145820248057} + - component: {fileID: 3789043297879283572} + - component: {fileID: 4460099880033748490} + - component: {fileID: 3548902828184112239} + - component: {fileID: 554618303278017251} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6570636145820248057 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8527108957403218524} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4804804652935822685} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3789043297879283572 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8527108957403218524} + m_CullTransparentMesh: 0 +--- !u!114 &4460099880033748490 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8527108957403218524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!114 &3548902828184112239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8527108957403218524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Production Server Url + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &554618303278017251 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8527108957403218524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Production Server Url + text: {fileID: 3548902828184112239} +--- !u!1 &8944064981378629140 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5084086939558959970} + - component: {fileID: 477040870050230589} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5084086939558959970 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8944064981378629140} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8930760477684485900} + - {fileID: 4095490384893318621} + m_Father: {fileID: 5703793217327021981} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &477040870050230589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8944064981378629140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} +--- !u!1 &8956667942965599250 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6597914884127113755} + - component: {fileID: 6582955299535371095} + - component: {fileID: 3219684805487622212} + m_Layer: 5 + m_Name: Game Id Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6597914884127113755 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8956667942965599250} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3382315304172014273} + - {fileID: 5703793217327021981} + m_Father: {fileID: 3874361175814237407} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 173.59947, y: -20} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6582955299535371095 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8956667942965599250} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &3219684805487622212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8956667942965599250} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1001 &666998284809360982 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1456695893281337159} + m_Modifications: + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor32.rgba + value: 4278190080 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor32.rgba + value: 4278190080 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031210, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031210, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031210, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031213, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Name + value: Dropdown + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, type: 3} +--- !u!1 &7947345996345629186 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7425031109443226708, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 666998284809360982} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7578326722718555710 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 666998284809360982} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7947345996345629186} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &9045675482972604282 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 666998284809360982} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Examples/Settings Panel.prefab.meta b/UI/Examples/Settings Panel.prefab.meta new file mode 100644 index 0000000..bf3aca2 --- /dev/null +++ b/UI/Examples/Settings Panel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5ff21c596baf048e8968771adf6a76f2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts.meta b/UI/Fonts.meta new file mode 100644 index 0000000..119a4bc --- /dev/null +++ b/UI/Fonts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cdeb8dfb0b9285b4a9da143dcf951f40 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/EuclidCircularB-Bold.otf b/UI/Fonts/EuclidCircularB-Bold.otf new file mode 100644 index 0000000000000000000000000000000000000000..6d6297a83d1fb65ce11b8ae27b211d3d27d79854 GIT binary patch literal 115104 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 pxhPH?$^ANl+lYHUHV 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�-VfQ;6+wsK#{7)hxS~{ll-eKd_eZJy(SCoF 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 literal 0 HcmV?d00001 diff --git a/UI/Fonts/EuclidCircularB-LightItalic.otf.meta b/UI/Fonts/EuclidCircularB-LightItalic.otf.meta new file mode 100644 index 0000000..e372d76 --- /dev/null +++ b/UI/Fonts/EuclidCircularB-LightItalic.otf.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: a4d67c6bcb327e042ad6e7a2c316b181 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontName: Euclid Circular B + fontNames: + - Euclid Circular B + fallbackFontReferences: + - {fileID: 12800000, guid: 0526f5407dc9f0e46a5d3d5442ae8399, type: 3} + - {fileID: 12800000, guid: 83d2d1a3bf476424ab801476bb0f4664, type: 3} + - {fileID: 12800000, guid: 45e963d45433f094a8634b334e9ede98, type: 3} + - {fileID: 12800000, guid: 313daa1a98f6ab5429c067e7dd5e8827, type: 3} + - {fileID: 12800000, guid: 0774b14b39d939b4f80ff528506c94ba, type: 3} + - {fileID: 12800000, guid: 07b0aa7e74149a94cb7ce0ec8ce6da47, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/EuclidCircularB-Medium.otf b/UI/Fonts/EuclidCircularB-Medium.otf new file mode 100644 index 0000000000000000000000000000000000000000..9f7c453210a50ad02849e5436307a2bd896b8dfa GIT binary patch literal 116808 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[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 Xmwb{gc^@MPjvVP`KyxCq(WCw!bCq;t literal 0 HcmV?d00001 diff --git a/UI/Fonts/EuclidCircularB-Medium.otf.meta b/UI/Fonts/EuclidCircularB-Medium.otf.meta new file mode 100644 index 0000000..e75f886 --- /dev/null +++ b/UI/Fonts/EuclidCircularB-Medium.otf.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 0526f5407dc9f0e46a5d3d5442ae8399 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontName: Euclid Circular B + fontNames: + - Euclid Circular B + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/EuclidCircularB-MediumItalic.otf b/UI/Fonts/EuclidCircularB-MediumItalic.otf new file mode 100644 index 0000000000000000000000000000000000000000..c249a488feeedb6c31ab370c3f2d220904ee30f1 GIT binary patch literal 119648 zcmbrm2S5}_(=gn#yE6;3uqf+t$~x>C!GvT)MI@LolFVe5pd^WAM9(va(=(kpixI_~ zbB=cg%wjrEF^3-PMgN+a1@-QEpZEX14-Yz5bys&+SDNb?9^MmKp)p8~+6VZDbufBI z9zbZ@K!i}oz>Xaa*1P9yM#$!8gjU?>)T?LMD#hwM(7p;$io>14A_9tcuIh@YT?q)) z4DK1$(rwU<2?m5H7Z@KCpB9_x@Z2Q~A&cV(F-ww-u?e;j(SqF^ctB~Y~ylBpPBE#i+% z35hT#@h2=ld>Azb8NPg#H~!j=vXVcetPBXv6B?-xvXhV)U?&i&Pc5k)g{Nc_kVsA7IW~AP4y_bKdg1yb86JUo+QReV4aJSqd9- zy&6qc6q@rjP<>iu&euftbPFjD>vEzyne!BCNM{6QWDd(pNlMN!IK?+HxVgBtGKA%) zWM><~hh-WQW8;n4hOpSIRA+;KYN|o(m~F^1W*f8ej0w&ia^q7|5)6SUS@F54u~~+I z?#6_a+%!X%oY>Tq_yii|GHCPQ8s;*(n+626tx{7gwoo75ab{5;zIF z8BR*JA=Z$S6`Np8i_IEr$VmLp%lpS%lXG%1TeobPpP%oXEl?w;iWtuE8EL&zjj`EA zphBWC%aD^{$VoODV7bP0s2rA&Ylw}HH)iG-6Abyu#&knwZdQD9Y<5a|lJkFs+EM}m z{aQB2GUmjlq_#-RNY81JospQ6ADd-tA-2aG19DT7VzW|W(_u$)j9KZiImYZTV^-Xc zH7F2epiDFjWuX+5gpyGXTtz1okD5U0hFp*&9tdd`lyjj*fMq}d@Y`MN zn*z0IQ0fA+ixo%2qflr`s_y;Y=hqs>{=Z=pAXHJKH(<_!Ri^;u(xKiR*5V>k>U$jj zTu%UM@xyAqU(5I73?iKkuucQ4HVe`Oz?UY{WH8ia0Nwvj_T#@(M%eEh*v;0cCH%`5 z|2f0js&+f)UwiEgdz1n5=>_{>gjr?7Uuky}MY;&H&JgFGEVc;yE1Z&abI)PWnhWj1 z*%9h9p}%k*41iM@Ay70EdI)DBS%jYgbxAmKBQ0kgh;u5QFNY(P$;w0Po^<^a*{X zTq$p=Gc}r;A=Am+W!|!Wvi-7Cvbzc^g^i-NqK=}aqLso&(Ni%{5v_<<<|!5` zRw_yqyA=BrhZUC;Hx-W*e=A-)jCWY#aKYh;!+V3JL1n0Aus1ju>KhsxTnw!ZL53JZ zreT<2jA4>tqhY&Yx8Xp&pX$}G7hP|5y#@73>f3%g_UX!}t3>hT>({R^R|8sxR-;X5 z8`_C@3Q-=E4;2h^tSxgB=eSRHQdX*<6lz5cn4`VI1?JdV5u%7v#3`~AGZk|czbjTK zHY;{2_KI^XRXkKYQ@nB*19Lp<@Yvym zdUNX)SI-d%bNu?~>(Q@Az8?O1=ra6D2>|EK7hqh&_%U+f}DtlITuWUe>SD8y$bA%q; zhTqK(KrXxgO4Uzgr?Q1(P$kiP1N$57wuu6{lNv+)B2`mksh_Fo)T(ctp!IjEnA%2d zr}k2ZsiV|!>LhiU`a|d;q|{aFI#mk!2h>walq(_sn0iK)e-GowJarxVz%Tr*UM2NP z>~oN^LLLQr74grA9|6D|DQ)K_{ph=rpB4C#jm~ETu(fs9NY0WsA;J zKcRCVon55rpbH>zUZ!;D60GeSWk7#Y4(JNSp{tZ0{Xx}5H>d`vlxm1>QjO4U$`Re7 z8lyWPOW&iKq6buS^pJ8!WmF4vpK6AlQf}xm$n8%kSM-Q#iJnm&=sD$u{-!+93(6b4 zqFSSuln*MWTA_DTJM@bpn9U$R2%f3@}p!_ciB%eJDC18_Dk)hOhDvKIIWm6NV94e2>r-o7E zs9&gD>IAiiI!%>`yR(nlLG7Y;!!Dhq&QLq40_q4gkvdBar}o31o}wmG=V50rQ!}V5 z)J)j75!3-{3Uz_{mHLyK1-m$sItX|EFg2CBNKK;7QPZeP=nEB$2-OKyQeDt>svi0a zTbZw{wXBWILdMF}GAmgP#85o!yd}aSrxFfYo_P(#!RHAapg(lkL$ zQ8UyWn7K1Nb%J2y22ZyK@&qly8-yGmcm&&^wxDUWLw=||Fy#OcN`ipdcSM~~XAnMu zQCHLrSbGoD6P~{i5JAE~7>Yo>Q6JF6`l0@yjSNJQC<;ZR7+~87jYZ?ocr*dcK)<2i z(NeSo_}dD!960f6v=*&F>rfH!w5vSG3U*?8F$*(})t*-BZFY`g5R z?5ymf?56C#?5XUf?7i%>Tqd`c*OBYxjpVL!Pk9G$fwB{ z$d}63%D2f6%8$xV%P+}q%gf}iG||hdNaL)-cKK+&(c@uQu;pqlzvHnpa~;m zESVb2PmBZ8h-uEaGp!karZdx%>CHqk3Cv(7iy6j@VJ0xsnK{fNW+k(p*~;u@4lyU0 z3(QsKHuI4An|Z@v=8KY6S}8S3du2VPld`4KOX;f&Qg&5_D*Gv8lu62TWv=pP2BHD(%-VPWr$^O%Sg)v%fXgemcuN^SpIA| z#d5mkua@&I7h5i~Tx+?}a*O3Q%N>@7EiYJ>T0XXXZ&}G&vNhPBSOe?Cy0G4Cd$tQ3 z!uDfR*i1H`9m7s!XR`CyWo!|epXQ`3zZGL_?)Vts+r17 z<)dn^>ZIzSick$y#j7$^qg0br^Hi%<+f;{CS5*&G<*LtCN~>B{1}kT)wpLxNdRq;) z%C;I|HQs8v)jX@ERz+4NR{O0^SY5ZeXZ6(Tja7xU%$l{XW$j??XzgO{Z{5whuXVh2 zx^;o|bn9i-CDtdbORb+;e^k?IJ9R^~ySk0Ki+Z5isLoK2RR5x$pv23NzmMjPk!+|<;-(A@MC z7Z-mQDGBnA%QEH}{nKLOvog~CGmjY9(yGI9iU zIz1;yYzl%Qu{j+?03F1d4icCS5||Fv{X2<$I(-Ax2{iY#SP59C>TaFmVzWAb>(oUY z)up<*iv+!k1ied6N@{`;R^i$q&_DRwsIK3E?j|mzn>e>_-`4}oZqb>>tdxudVLiqy zV?u}Yq#k1T9%A<%-*xXPPNZjYZaOIYxoN4fxj8+hxk%^(L&bri;=s`F28N0CVew#y zNllFn`!>n2?>dFUs>8*h!j`ytxrKk%7$KsL_#SnHggQbZLqrxBDI&hnqJu{t5ow=q z$oeFtzyh;Vvil@u#pW6NeQW6_RtRX_+}-+%w3Oy#pn zN|9iuNH9~rQ6w+`2BsRbvj+|OHfHd5fK$a~q>3|3{k~op_m5LzOixM|yQhoY)4%JU zAxo25<|I-wFepnLm?aL(`fgyhSf6b^CE4F5nf+a-99VOXI8@vaFZZ198goU| zx!{%+;24L;F&KX&Hsihzv`6ai-%&^x0Yewof7xq;<(|}dm+rm&C^Fn zJX}Sl;^FElmE5GnT}nKp#8XPVq{LfFT1kn&lmtjgpp*njiFgh@Tsw*-HwlrOgvd=o z=_1Y0M;hoNE!RZ? zY98P%f$1Ot^^r;e(tr-;Hfey5v(&XJG^14ftaF=N3AtCaR5P3+5JS0RO5+V-?k%xrHLqg;sA@Y!@ z)=3O-ptS*}AWJV>e-qXCv=8_qJG<|QW)Il2HBb5TAo*m3>5`G_P ziaye${LMYhiJ5p_&Z!yksR5lr#S`b=@yDX~4@HkwKNQ{Fe=Ppk>e1oHR<|FE9zPa+ zek{6*#jwz-UHqZdcb3AwufCz3b0m6 z#Pi`M?W|jXurY3~uHLbUDJfpA?w)S3nVG55IPvzmxriJA5@CNJ5tiWQ;w2pJjvYF7 z?2wz4A!GwwToR)b6Qfh4f;$wVQxc<7rJ{#WOihf=$%)PZCR@#Com0QdX5@dz{KZGX zIXg8YFZTOa%{eC{vx=oVrwlh{Wk8?U>|}Ut(~ZuVf+HhCOp>#VVmUD*H%q8UOvw|= z*(pPXVm63}=|aXRIHrV5dWr-D6;X_7( z4;c|Yq$1p^)I4`#1Q5#2H9)wMkO*fQ5`oB&2zSBFRpgM6m`hSm@wz~zaN8jfE&(Ls zhP(QRJLW3#1vgjmHG@Qg=_x@GSpZZ@!^N8nC26?GC7{$%Tw->vC|G8R>#QmWi>=O! zE3PU@%dRSkYp*Iugf)Zvfyz}q1X8D@gX=3LBTLxN>bywws**UZ>ViQ2s)8`B>by9u zs**IVs#3bJuri5UTvkP%RcsfbF*NvMRJh)T$asH!tnsDz5- zVVU4Vtl}1+Lj{R>V|oHyD=C{+ogI>E%+3MdXhKH5G{iVGJ~cM2x|o!kk}CKiQ&WwJ zIpW~z8qu*^U6pD~6U5i=I*B#kI%R@CGQGNkSo+o&2SVpyWeXs1`G#U@hi=tAHH*;}ho^@Z-BwT?DuJ|CwX_TYNzL|8sP} zkM4f+JOcl7@Bn%s81^(^#G8pug1KG?rnsSCB;QAU1!J4NEKX*WWy;pe9>|``8M#W{ zN**llDbJNpk}sCulHZemQP?W#gCogP5vT}L^iyOihAXCm6KOS=y((#nW@wgHgQ2S_ z?M+9}S@bVp#=1oRNk3ugGC9l{rj)tEd{)Yptg^AvS=mb2R@qD08w^gF$`Q&!gH_+|$^qxs{8RhgFbOxK)Bxx>c^#Fst9Jez#f%2A{)L=d8-Co`JdN zgVkqi8*5u@&bq0!v$eam4;XyHt&^9iIXNxoH%XL^y$;4O`kq#+C;rd+mFRvi3U57 zcruGLBV9=*>56TM6Hd_2!?cz(^?iZsU>D3{8|;dk+-^qd5Eo)aY={et#^}J6$A1hs z88mF@#PK8a8%k;1j9GMtCPNq}GT~}AypGpK~MT zs!pYS$_LSeWm=j#(ZnLFV~C^9vBwE)y;}d24+v&mO>Jq?!H8wV8vE*Sujemuc!^%M zl_j2pCbbT6F4$7Pp7Qwf*{ai??px zG(2g!!<|F)*}d~s2lohCrTuO0 z?B5sLZ;9oSvghY5DR2mPrVlad)Zgjg4XG;*+8;i=;q<9JS$)sw0h@ zJqW9x>U^-*^T^_1wa*V;liuGxG%_hDxYOnh#|~v(nv?<5l0e229Ykj}qSNj^eA@_I>u=e}C)Rvm1v7dh6>?_6=yEQ?~>Z?;CTiH{VXY5BrNP zZX7J#t8aOV?w2_rxr@$B_rEXfPYPS2f3=r>klOkzp>@QM$cctHlbUyl1@?mNdw%9p z*^RKnU8d`?j3Y7z*3yiQ2+K?CX5aZ(*S{U6-qIS=*KXOqZvD>UwHZlq>8WvgbzjcT zz^Sw^Pn>?aRKM&U{b_l~jYhgAA>Etg>+>4XhTIc=Z*{6dts|>)=aTS7?eTd@$_yUa^FTVH?Gxp`}?huUw8O9tT`?V#w7maP0a~l%}=(|sjjPnFad%?P~ z?Bcagv-BOAg4WT4dr!6qiz+T%2t`BAP5);)mA=h+IzA;Kvxm+j^vK<*dcGl}(%xhK z67C?)`1;UK8CAtx?PCTzVON^eW>mOYFHXfD*FI$M031pa10&45Q1NX=s$>>wR9jXo z-?GF0*rb7ne08mQ4)h!HTh`*Cz#cv@75b@ceMVJWw7$4Fttc@uH7zl5eQGh>V!TqD zG;-C_O{aSIRJPm|X4y-cG-$|bp7D`5UR$zp<95BKv}Dl6_&BijIcT26Z5*`SK~uVc z(>7yO`NCuwe@+GCRTce%Sykeo-66WrzJodr(~r-kuQBWAEn2Wrr|K~UD{wgc24jVa zU!B8|N`{Z;7cRO*o8~Y%L_yN<9WjHQ|WTw3QAiNXw19!;aId zfLeg^fIzjXUlmqNfz=Fni^DKQ@nu*gFWJR*C5P!iCbtoNmAOU+Xm{WNu=mXJw=`+Y zY{y}R>^$xchvR2+rZp1!I7ZcuoulGUX>reIt6r0+Mx@T$JTF?6Kjs}~OR@D^itml- z<=h6|TYKYBl;3Z9vYWZGj!e#<8RUqe?GI zGNz@ew8Qhq4b8P5xGjF)zO5yD*A%SIT;@=Yo6{W`RRN~?nHUIJsFe=7$_^MtK0lKt zR?LRV{xn7mUcmd&>d_*<;qPm=tSj159Lpsp6{T&}t9o+Sy<%(=PBmj}x%(r0{dHl! zaBteN!m)#68^ft2M(3`giKQyO@Quq;zC}J93>ugdZuSybdTngy^o%h2$qb&20kacB zR+7bZd;jzlmv z@&bJoV=WZ6uBzb8sl2&DRgv9fpu2MJZAWa-VV_TuaL^WngXTov#En>G=00_2nw&DP?T0I zh#-j3l;Vd|S)ye~q3JhTv)hedM*c7@qBW(79MEpvrgeIi(CzXM-HNNbT~6d$vT7U~ z4^wy27KG6SYl|nY(cQaLa;134+L$o~Q+^qySMfb&bL1v-ha;AZ3V5Z@>z3Ci-TB?iVFx2gDy>?0LtBr5qgN9o zaa_RQUKl;W%|5pOi`3Ptim<*3mqzroswkhH_4}gf^L49!SG^W)%g1~bvjB)u#zf+} z`B*mw64EPG2gXFxinn=+;}Q_rDpG%o`- zsU>L)UWtFD)fh-HlVrTaHD2N~!p&PDob^?BHUMKtK1tb)Q<`v5AQw5|LBfs3ZOB-1 zn*0uHCM_89lAJn^Pk}hfs3vmzuq*YEmBWqRgVS&~l1Ae?42i?j@OnIhCVGYxki^|M z@rb|(gqJ*CwNyNMp@aMN4Y!XhPCl}wXx_ZV4x0T7uhE60a(*7B%O5>wana`Ox3=k3 z@)a<(O=JFxtO`5WLsg=i$!MkyAvNjOjHdZsoK43wnPcV@&C-|RFTiFh`f5`PhL6nF zsi=~VcpsL@ReSLekOY|lLH!fg*QzLvQjL4jIS=oA(ftLEdND5F_Hj8L zSdJULzyn{Zv~T}B#HyGT7=idqqF%F~7}B!oh?^%O|eWVXIRIvF9fJ10KTsO(=@{gmu(GtUG~qauq3~ zFfQs@2P<&jc8@hvAvg4rW#F-u$fRM>9l~+Q5t0>C{AHdQPk69-#@v z;2@K;sN%quy}+PeRi0LesoHiMmcv>zUUtf>=%26Z%-)9Msv3VMA`cs{so)V=ifO=} z`^zhQ`lYI%b;96&lPy&8BD;A4_vZlv@TcYPgF$%8Z2*NU92vTaQ@sK4gdZcwCO1Gf zfrTO*{ThdVvgKp3g{quWS1E`Nf`X{R^J$k&BIoHvifAlnPU0e3&7=}1;h|L7{R+>X zMnFc6X?Nmi8rNeqZ&c(IOqs%}7jmppIp?Qm_R)t zGphjrZF>f@sl@@B5E+~Xm>_C{5T?asZqW~-X=l5d<(Er;#>$WH_~jvxT2NX2c+s$shy`f}0^Q4dTuqmM_0$T49wBOq0b;hOjdC;{QN>Dh7*V@z!5BoHlc7_Hx@aeS z8T7;o;?<~ka)`vEJ}J>%M19es$4FM|cL;HZcyEYpLxU-Z2ZInX*%nF&vCBsg{swV( zD3e0Nkqj2N0Livd5E&-hZUG_ivI8=R$detWA!ZE1;~=gM0{&ztDF~92okkG$2QhjO zG$%XL2!capuVqwwBzs3e(5UPK1)-v{PZSkE$sjT^9?2@gWg7)UmJmkUf@tl)*WcJIMP(oYxfjLir~7UimrsP5E>AXNZROR&-MIRU|9+ z(>e4g`ZSoS?!wDt$24F(86SwNieO@xDa?FkEptWbuk4|WP{x6oYNm39a+mU$@{+Pl zS!q!N%u}5p_Gz$1iNzs{a~4-E-dZXxYgsy3_OcvcnF=PVv6izfkFyHanzaMtRC_jt zO@pYVk?aI^5xbT>z&>K1suZdW)pM(!RuR?+OiR73*H|C0KBQ*VwbdaICp1buS$#-- zMg0kkK>-jEG}C574T~C%HCor`StGi}$Qr-ZI8xKT=8T$aYaXh3wdQMEx$RH3PPXlB z18n=-Cfa7({$jga(@^84*{8Xzd7{C!YSwB{E4kK{TCcQL+NRnNZH~6suBY90yW@7( z?4JJA`={iehW|A4r{%Tl*7mF2wRYdygKGa$o75RzXL+47b>7+=>^Rzn-sBR^v;o5WITsk+5Tf~)c z_qmT8<|-T-IgEDr)nTQ>L47BEtUgU&s9&kytG}p!WRMxuhHyhP#F!s3Ts6F`$JFEM zxz+1ZZ-2e=`c(Y}_1o4DuRp8)hWh*KU#tID{Vxq_HE?X;-(XUMSq(}W{L#?9p>so@ zh8-FXY?#^bT*Jo=KQv+*6*M~A=y_vhW2eSl8jo!}xADrxdm3MAj2*R(K90Q|M>)=R z+~auJvD``NRNtwq(?+M0P7j>EHksLELz7)i&Ng}3RMzyTrcIl+Y1*~v%%;nm?rU1n ztZB1$%|e@vYPPD`h34w!y_y#`-_iVZ^ZU&!T3EF(wD4#V+#V;<0l} zXFumD&U2mjw`|hVqh;roBU-L$xx3}5mQP&NF11}6xeRi7;_}(GuB)eOxa-fZM_m7O zz3bM_ZKu23opn!hAL2gDeX)nqBg*4XPe;#O&qB{Lo)rEo=MO*TPrt+s=2e?^fRLVHfV0pmk!N4Oz*I%!}X349nW|C+9|u!s!q2$-RW%6IkfYH&PzLQ z>|EBRW0!MXUIbIYwS%34eS*6L4+tI{JSuojaB=XF;M>8KU4QD@qwBt|q?>QIr6GkO zb3*2Y{2sD6WJ$>KkQJdGp#h=2LPJBtLo-4rhi(kL82T{uQt@WJ6@!e@kU4mU*@BNj(|=pEQQq4!^XT>2#RS={GhpZk4Y z_oe!(`|A6)=-aMukG_-pF6euz@7sR*er@~3_nXphX}?qbp7&SxckLh6e{}za{SWjn z9bh$}`G8RaE)A#{*mB^ofg1+ih}1@gM8-wtM^1`d7+D;7B=V2QXOVmq8)YBm9Mv(Z zPgF|O=%^V{%c8bN9gn&m^(g9nv@*JGbkpd7=&L_j-SY2iZxAS_}HOZvXxvTj`$jl?a5;;*+Fj8p!n!3>eJYd+}7e< z_%_j3)~AU#KBvWwhJX>nv_emRx7mw?T4@c!Zlj!Xf$8){2&L{M_yZa|%b$Sog@l z?1P6N|MaNATb6jiuf6+6W*}(}il_T~rYDJ@%cZW~j0gT%i@l^qZ$|B2_}(v%-+)8w zf3RJL78BVi9?^s^_>n*Na_g^vF{ee(f(Smw_SuJ}IB zw$RL7$FJ4y-?{bFG=~Jzm5yGOzjC)dZbqJHLt_%UPj=Xj`_a3GEKQBESM%XJIL*St zcpENFVl{mZHz%c9T#GrwLgmq2dyX9geZT?gK_>`v&}=x&Z!xt`VqYlMacZnAeAzj# z!s2fbQ>ouR;5L}jY{%0JwNFp1zjjBj8F^D68bj(ri$4w&%!AFE81PT@^F!D6KC{2m z>w0W|flK zF>n^z5S^0L*_quA*N*lfa#~GTJiZ)zfvB2TF5ipC?_&uMXZQlO2#z84S?tZKw{XM+ zXOsFJYTk?!&fsVPQyf1+9!F%_HwxBVja=Wry{12aR9_=vgm8D8G-3Ug=QG9Ag1%v0X9Dng#KR!vB@7;z70k`Sgv`4w}rFQ;0APj%Ln9BQ}`!xd}l7#2P-(f zC6>$aG9%l!@FQOG0?*8+HkWdE!w}99@V)*-P2fMuCmiOC1@G~!G93Eac3TTVAW;?b)2SW2y_^r?OZIWOSoZ>3mQ&C8*79fg%~_T(LWc)JhYY-PFWXe$ z1>vw-Yz0TJjVR>Cyhrr^yIG1IkWYQ z?&Q{#{sZF^0;BYi8NvOBx3gGEX2A?`Na2;2*8*?hk+)y}VSA~x>>-Z2i0fY0+#kbx z7HW@OnzQV2~j=z zga3y3KjZ$~64$?LME@pw^*xraThJ5)uA*J+7}HDb2YyT;8_H2d{B=+tc|WEF>jekk zIF`dkDxmuEZSEXCPUD|Jk(bkC9J38~rSS-9|q*aG|mtbqX@@Q$>_?`Q*~#(vOsj=Z9-ov&a(d(ZMyv89|h6x8F? zsgGD}ahp4YCky&2j`|z+(17LM@1bfE{ffD_sb9EnaQ7BqP0a)QR%2}0ERX*PO6W&c zvj{+FAKh5K^|W5ob`MzT9U09)BFC2W*{hphe6atgH`PJ2=ppx?yr`XWx+e_KH^h{m ze|bYXFCnU6fKI)aqxf+^t0KELoO&{g7Zfz(dK}~)@CW4B+pZ6%p2bnuU>y~8@cIUv zx@-jdvZALPPqur@@DX5W)G_3#X)}@Wn*|G&8kcouH{{!5I}BzU{;u6G+>sG%Sj7oB zKh6$o7}6iVO9!|6@e%BYibisrW7nD;a+;%ZDm>&lc3~VjLp&Z-tbYJpps9QU@z~8? z6nUr&SR4O0@HUgg*?7Ck)4(dLdUu1~_(jF`-5eRuPsEATJG@Q)j-Ln?r;FI?B3LAE zFvJok(tQ|pBlkyCHXka_cGvRlnZ=K2Q+oyst~ivsg!OV9AIYi*abRp-hbN64&uRJ= zM9|Gx&ANu%^upI2^LUqXJU(C4_Q4!|u~0jjJ&(Z)qZvxvE6373!AQOEHXXP0RR1zv z;p_kCD1OCKC0HTH#baE!8K7T`&mYQdC?CeAvTHcJv9LZ%#!lg={k*^YKX{$g^EulR z;IPkdHp$q=X-ZwemePXT$_ciK#_R=r1`KFlqc{xW427FuM>)>!$!_4VT&%JMr>>)B zC?3|61v~lP%FE#}^ZaIDC!Vli*`(zyaiC-=Zd%a~Nc(Jf>mQ8#hd40rOKt#C zW79DBj>dL5Z$F+@A7J;hIChLPcax*afy7-{bq04)K$=pR!D=!KdcjtPlX|f+Cja_@T)hPA=N6q8^ zlFuW?4(v^q8qNPIA8ps4B?sZ$;>riO96qE43zHY|7|8t%Ze;C?iqp*)H90`sg+}N? zVQ=Wrt769hmMp@xj1M4yCilP}_n zwYQHhN}C^Jfi0L3PkP*Fv`iEOhx^i#CQX^7tBO|8YcdU|8)J5eLuWie``7vFPi8oD zCKu@NC4&zBX|E0!Y;(ECa4tr+SdZl(d*V1O)4UmP$LH;Wts*;^Jx6DsJY~OV@}fzL z9Iy{F?-;H5K)Ny$S5I0~WM8`H{H;GWgociT#}Uitw#Rbvla9E15Q;Rqjx4Z+pI?muBdB?5o9zjAnNd@fEnLX6P0S znM7vZQJN$%3$N2SiJ1%eKn9<{JWc8`WI8!aYT&~(smb7$1nPpAf^ebVi1xx5_1_%E ze{x{K&A4B&;J)p?@{AX2%ZHTrdI6`>lVk`E@5@+zD0g4NR=wuxtu2So-?2ZLez4yb zhkje=xOGD|Y`5PrdG-1|I?b)s+X}*_>R&L};^($o0(A{L1-XW=8c=M61^TA+=|0)Z zqI*%_y~z#-66un()q~^h!&3(j%#2xZWTHbehR7$qi@TuHJTB(d+Vthw>q_ho?c8*E zmBX~jbWz@l)HwSAF~-hW4r=~Bu0zF4<>agQ`wigPi7zO9c@2-bUS3LFDt%STI|j1T zUTSZg+jeS$zH>2c%uUW7pzGTA$hmU|kDS}LIor5gf3cW8HMnbupRS&#M?FKC*GIjY zB=OD{ajVN6uiL)52S+N6Z=&5^w0PkH{rGhH9ypKA0S#LLhaVe9FDV?nw!h9bs9lrR z`@=8m*ZrxD%UQkiXmQE@?JI`FgeS)L2YA*S`Hs{key|)5!PDbd6HC(K1UXiiFP?wl z)*tVM`Qo;v?@MuuK$cj)*Op?JB@9U6F7z{o*kd1h|H8E!_S>I{+SkDW{Hmp-srJ@! z<=Q2qva*Jb%+RYVEbdZ+@mu-e3X6`wycY67H?Z9e>g{!GS1QL7_#kcRxwAKKc0Jq9 zw_7(~-?QCr>Tf6#)7Nd;3=Xx;>(Y{w($kY+s!Mt2J9yn)3O~9pKg&CVPf|_h@{XU_ zzaO)BBJY^OYCbr#8a{xPUX5Sisre;**@BzFwq_i=_==i-Urrhx<94z;4%6M4 zj&8qlg~KzF3zG5%&zzeBx`?h~D$G!Z!{peOclLu}BYDSC>|RQ}x`&Xy#zInj@4$t+oO0_Xr>vrwiv~}-}RT!s6&D zIMD9~-|w#N(u&!d;vhDZ?OE9$yxp2i(ci5p{?6mA$^7Q?))Y_YaN-n!dN|}RRgrRE zE(|8=FdC?ccZh&rl(RqQ+g>PPHTzI8tJymSh`A31un>>462dn$yO0#Y(M!TP0!c{s zq3^MdK;NO=ho*DDKQci^3kPE6f{bV<5cC9o(v~B&Oh<;Y*@CA6q*i`nBxg#ioU3(` zs;G#H6gl6qJ!g9I#a*m~PWYr3YqF|*Eta4C#YR+QY0B}Q8L;sotfqV>OFmTY78@VK z<-;f7_VJb#OB=A24J((5^=FS^?NN$X9>aFW<@}h6@qO7Oh#i8Hwq=WW(lV0trk#}s zpfi2|ew}OY7f6vGwyi&3)PMyH>lh6Wp=3R1Je!FpJ!sw!9Ij`9*=+|Y8c&Dtkm(@t z2GjU#4reNa&Sa3Ol@>hrr|GFoFahBR*A|Y_p$(XJ&*Lj!ayaR}<`teei7P6m!L|H< z7uu!Q+#{{t5IqjacIe^zD>rUfM$+g+z2;SR`ph|bdUYsw3OquB(9U;^?`TXy2NxjBY?GV#^{$FDz)y*IBO{nug4s8E$9t$iN9O!ZRMft}h{bIkM zU-V-y4nI5ikpAtXkV}o->4Tx|idyKZ;xjuf>b9|u-qGVkr&nck|Kp`;&vYaeKi6V& zkfwv?&Y1(l)3@qPjmR5Xvwy_Kaocv<k=XG3%{lp4w`L@wXX{0bO6Od z@E!`f1^;s-hliWSfPV2^Wk7ol%PKjsQtXD0da?Mn>84mCY$uGxGU4{o!j|qeO@fx= z*EvD6;2XexZG^+nn#}?AuLg)MlYn2^+ap;TcS< zhd6-laT|w%6ugmliDX-tE`SO$P*OoQHsq=s@v{I>btUe%@+MvnB*`xhyHKjD>FfB^2ug6rXUNtK7M%oMsE&EC>~3iRl@1iI%!- z5xR){?J9>g$Fbcp&6Y8IeZHhGn=G-o&BYRnOVpDVrVql%G3KFT8gh79;bXVgxbAH% ze`dQ7D=XmttD+f+!wa?dt`?sz(f261lK52j?vFz(?zo=FKN5qkP3O$$e)>IwLRSUr z+IS`Qiq&85NpIi0bNN2qi9HD+1^S7jk|(E5iknb}xQ+7a)xzHULI{>Q@SS)+?d5}s z{xkHXn7O&?&y8on0BCY2PqopBOLlDAvi9s8{pOjwW^A82wqNZ|qq?T`)v0@mJo7{z z@BU6u(y#+Or4594c>Ojkn|}4c?(22_|A&?;F4V_%`T8Dh|M7aKvIlVJ8jj~8*?7~% z`k?rUWqb|xv}fg1p#o3NhYpQk8<$i%3KgZmL`ps$n96~9P^PKGiy%zk-#p~Yzj#Q> zW)^yPEFv<2lpy6ZAbxo2HD8GRqei&7gQjw;nM~95WQ&~BYOwpsgm9{@<96ik1x`s$XuYHe>%Z?Gfhej@5Mix8&t8QS z4;t%se(Gwt7I5OX=dz~5m3=|G1pW2uW^NVBH;QBjnl6Ffx{AejU~v(Z)1a_X*n(~F zhQPvBRXT|^SN~$y19umJ-2q_baD5I`#*1y@{$RyH*dPX&!)LtmKW@;!nS6%nIWT#! z#{H+*ap3f6oP*}`e+nR14;Lv*ZHHqjD&L#Gh4t(ivny|_{_e%Z-EF$iC2=9E+gB@i z1Ls99H|pDU-5Pb{3~ekqo^@46w0OE!2u|O&u^?xq1DQl3>2XUYtXO4_9Uw*}aq!$_ zIeI(+52R-en~|GiFT}4qfMyMh3Y6>JeCqToE}JiyVCK0><9emBDWIw(?L8};7?%4SY!J8f9QTdn5C$)d*0ypHjqQ&79-cfC>I19!_Ar_`arPF`3;v5k8B!vS7iDH5<4O2{IaR-np z&tIf)*=0FDv@L7eTsc9M2Qj)U$d%_RwsmApwqF!b`H5sa?v#gr&ci+4^R2+56bi>? zWP}~WVS|Yox(hrtwoHt(x>srAQkEv`UhSV1XK3}}x1X)0< zkFgLrhArSNjDm;H?~7kk?jBna9L$kzl`n)mzURg6sU%IgV=M?H&=W6$;7Wcr$RgcX zqN>~=7+)(af;rQz%KO?ZuG$FOn+xT3!cw4C=5Cu-7FNrJzz z8!rk*UfdSuHL)#QuW~lndd-GkeBFyZR!OQWz;X^C1Z(gj;_Jx$CXhfJJX@%rBGG`V z+#pzsT?K0~mVbEQg+pvhD%L=3H-s;p$0um~9wh4%^gJ+J@Qdj`8O<|@GY-7Vk@t5w ze+Xow>O_Es>qS!Yar*I0*UkofZq($MdImUF3a)a zwk#_`nI0~kUmrGL}Ckd}bEF3JLwu}6kK;;v z{H_<9R#_kH=ABvFqKaOoNw|*Y!T09#g&cTdT79u`|VYJqNhf z03gfbOZ#6h)8p0^%Ys>=FfAk7`DNfYn*y=#u*b`Ak!doRhr$c8bK`VFGH1^j3USA| z^}$+Nu(G&thYkRP>H#)?KA}B#3sxr>{>@&1p21u)Tne#9B-I?#0bvoMdjL$I-ANZm zj-M$S`>U@+;j$NeBt zRZHu7@MLxcm!uOO=&-o@gDSlywMtxt>BDe9Pz!O3*gP05gxp4eyR?e1G zpY3BTL%JIOz1^#giNF~)_BLHY&c1R?e{&M8H7hoAb2g`xMQSeH#*bQ3oOE^#= zU;LVJlUcqL*xa$o7tOftqWE?^kN=A0V&CoeHwvAtC9Svqj3>9Tt-bgyl7kbs(eGZ! z-=pe$(__s_EO-5L}jnG~>jS2)z7~GfEnhrWwDQG$dAg@lrbz$H7ipB(-71yP_AJc z@io&c==)mY&+%e#wJkJ5s3!>KR|V#=Vcz^Ddd+_L6s2(F&|ik?@<+{Hy!+Cw3!C)! zb{zX-J#GwN)z$v5U)7}$uO}d81pQnmJRu`)pglll*jbVuAx=C?(PscJtfYb6vl< z|7>ok@>O|&a@hh{^DpLlL824fSh$@aYVdiY)xZ`QuMj6T&+oPwZga|W``R85zdqe&XiasKBYu>@7hUEX$0U3<5mdVxZo4T zXJTt`bJpTt)3`SSpImwj^QLz)7x%?=bN27&tdABy0)mglx?+o$xb2OoYhLgLk{b>a zK2VAUM@d)|OPsr22JP_r#jD)2E1J!`oc@X>{e#QbyX6<*HJkb{i5dIbAzIoxlqujwIme-Jb#qI~mPxQ12 zl4pm?X)fG-7Jux=U9W5>WO+f*{H@Z-1-jkApYipSjqM`d6r>=$AA`E-? z3^o)#)zFlRJNgWEv@;Z7LoYDutsI^NQr$SX($yYV6a4>Bf!~7Lv>6M^bQCO&I(2+d2ZX1Rt*Osf2bivy7YS zCc%977rT`I37(@eP;N^>AAJVOt+ukS2t^R!(pb?8JQUa2Z1w{SFuHMVD#OQue8bri zH80l`2a}9&PLnBkfs4&vV8L4q#D?~n;4B{R2RfFiPbClC{^=|R&+86TQ-SF&0!Q?V zFW!!@2GMUU=v~YCOgT=jIQZT7oaFJBky>yjlg|+Db02#{p8(Ol{GNChaX>6_ux%_Z zBWH#8Pw+fzE_(}r$uM|q4}y5`Cj>_o!%Y?1a641qvFv|q+9kQM*Z+U4y$4(rN%KEE z%Q6GZ!lJB;$~r726wCpMD(0LqfT)-i6)|GY>CSlGsi$WE<@8iQ%$RdH6?5QJ5ET;w zq9Q%m>+SpP*+sq6=Xrkb=kq_W*xi{9)z#hA)zwwi zne2SRCsuoMnAeV?qu!EodnMNWB#DmFKfQMHb*%9ofjIBHwaq)~XlU1S?C?lv?p7c5 zlFFMFvE%-<8{`pxVB3jZrw#YE_6V9{Y)k*-JI)wAzK>zbq~$B78R640che5Ict9Tk zJr7DxA?etPhCckTsEg^g_v)~x@5IP~@Wl1$aw>hP zQLZRh^=n2$twzJTgc{EbYMWf^vzEZ9JIE9dyX05`&fkt@uW!i&`_V)`DDD2H`NKMls~7$!$vV9Fxaj@4*$ zZAc*F6`KN`sWUw~M>-^)CS5V&eqx@0AR+&0&LW)tljSjZI0_GUfqD*~>am9|{pBzd zn8AG5Zj5B4I>x9E`+((G3_?CFt%(O9Iv(r~l`ed0R8xX-j2)OHylyd34t(iyo2cR* zEdWnTKYK>fW^@QFQ>@rC>e8(zbH#-|0*Bi2sVb|5mE=## z9z#(tVVzJ5V`epNgy9?sHyQ8y_j6VGuvOSb7U`b}vwHk4rb?S~`GwP`O21y@Np0b` z`#h~JtiK;2SzU*w1o3rn94;MxQ41R=*g0Uh-jEM&m#FqrKfN_~IA-H%30{BEwA9Vk z?|-yM29_3MNtf9Mwipv>^D3~D`1aXoFsrN5i5t43vY@c5I;KCNT$%Pow{!Fx-HxoE zEmi(+s-3FoOtnM$GDbK5)1d#LtQlxs#`58tdR4mp4vdc(ZlLB^sg7c}VX3)&!wl1F_+2{2Lp6cie~z%^jJ|$pO78Cua~ZG`T!JWereK)FHK@vav-}; zp7BLzNZ)@NfDGfmWY|}nVIUi}7cKs@S0y;EqBj(4law!s(=3T=LFKrT_5km#eMe+Q zC2~Cs;l6MOiCslGOX1Cu9MN8bRUFtNAv*)H%G=59U=M=lMqEs{sD z-Czm1i5>7@1tpG>MXwx_rCw2F{IhVi7baAV)lPQe`q zK##jRQ}QJCikTrS0@^EPhQo`^43n*9hHmb(zhY*{4oKe#mlG8;!v;ng{8GBf%nW-l zGeeK#I4XoO+S8&iy{YCFkyM1N+_@-GE$@W4YoTxozGZb2CDU>t$mGb=mP2~?3o*

K(R5mEjxuq&>IH9jJ*)zK%X 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 RIQ4*TZYkKOU6 zxX=IS^oPTOpp%85a~DA;3qj{Df==Kn3ypxY9JuIi$${hiQ?F~OhBMwxyWH3YkO>(qDCe7n)n_)?APmS6{1;&9!YS%;6_cIh`P z*5tm=)#}<8%~`y9<=mmehNceb*LUQS#SrDQ$K=r{>W9-UW1N3q!z@jm+@Q;;!GDHY z^C;e4MhnITY4X6=Oe*}Px#Lt7LaiV%td}N_EWgR)wBO`$%75vDDC)O3aHE7Yk_5MQ zTHC7nmf9jroD$4u$*E}H+Ivl>F1>npmKDg-bY2X)bndkjL+mHM-*M!~_Z@22Y1O`A z!&cuNcUf1yWt=ke>(6F57R`G9t)cxt9P-AX$uqcz+dgB?)OquwxhcDCo9=hjrK4T- zv@*uiT!}3&=&p_uva%?M!M>R&!YOmxeU9nuG>OP-mxcOA^7qY_;@Pue>AVfQxc$8R zRn6kkhzTDjZSs|~&D&S>P43>mUq^Rw?pPMp-d1!Q+^&s=XH%PZK-;Lz8$<%;nIGw+vRXcg@6WooBS#XZpv4Q0Q&D-Bp*3cGdNd z30tt+#`D?_Wkfr(_L`Py)M>qlYKbcDw5(FCSUO+V&Apa^^LO?;;t+-IAOjW^MdM(j zg&MZ&H}FljMc#DekNzo3S5=uhMFKMiH)-Mn6I98g2j$PvzYfYbDQ47yLaoec$bSi$G8z)X@v4U{2>RsT-LS#8^t*)!a)t;k41TA-V+5DSx%y!kBzND#^RGgjpIawm;XE!nM&=9*X5 zxo}G@Zk+wh^L_B&-Cjk4i4$_4{Ci(ldG(IyC)OEv9$mWOH_p7rKO}ly>G&9YB4b2w z^?T!8wZ+@^AGU1!@u$t5nl?sV zy_Yef8T~hvx6b`;kwL1tcE{q4_(Ziha@QJ*=o>XvwY=KBevgvT1I13WMZ|rsT5>v# z`POc<*sq`TuhhgHR2kd0=laU)(#JAdA1_8-m4x1F&ESw@E`p!zH1qTm)VheF{ z_`_BHa-_whM;(<%Buy6S@$}rkY5#a)`DaK1c3#iLB9PjTi+T71>*ij$7`%ZMv75&$(&*0#K zMTE&Cw1IfGmRX-{Q!SDE7r~GduUyNlk&S4X>zyuMHfbMJ6mE$^1Oo38J^73)(OQ)S2 zCEyNjWQvcm^@Z!UPJ$a*KKvSKoQt^i6EYUJ_jofC5?f_ftKRV6s+?W!&IRfpYpv|k zQE=1BzTLa`>)TB_2!gDvtbi`!gqQTk46?9$kMYZ14_y}Xe5Zw2CvlcODT9d(ZCUE4 z#p;|{72FjFvll;^#S(5Fuq;+3?Jl(tvyCg@iO11U-T^MJy0Yjlin;EIe#n8dGoloS z{x~(mqLL^qT&ZW#h8!54`p`lo+2WQ+4l`QjpHMCOxr7f)XEy9OIB)jHu(rXl_)OoA5Q3ahIB>iq^+1 zTTKTR&9}hXO&0wU4=qB5HwqScEF$XRqA+mPDIE6DTUetQgs(J_mz#T%7n z`F1f*8tt1e`uFZLWcZN5DN4x84V$)A zqIXy#{|hs`8Z~^lxR0>t&nkWjjfK zDn;@6^b$CV)qACNj8d>o>v}QLhf04AHu@*7QTk`_Gi5@QC?&Xl-L^4`t67VtF-q~) zEt5;jZ`5p6I^I7v%^Fy;Yv}kC{(Al9Gp<ahrJV)7B)L<8`=!78m%U9p+yF_ zaW}QjwjRhcJWqOFSKhgK59iB>jE#jT0UC!Os{f>LCdzpKkdx!geOi;}Dn8h&}MXW_86?s^+ANOf1v5~QbV;jZ} zihVzJeC%hjn__pw?k%Pkd#l)lVsneFEVeB!J}x1yUR=w#ZgGR+hR3B9SBv-KM(u(n zCX|?2Vr7YK+^BuN#N`tAOFSy6lr)vhU$SS(^Cd5rYFer__iC>!l~w9)d`x`t_%iX8 z;*;WA$B&BtD1K7>miV3V`^v{!jBa^6-^cMSFBXAOT`~6o~UHvzU{$%JeGVRGD8Ty~>&@+p6rVa-?d}s^hDks+Lr3N;OZlzp95+cU4cQ-mZGT>K|2K zSbcZ(^VR=Kh)JlI&?O-?VRFKLQfDy0p>e8TW1??&@{qA$ZRmCuE~JBAG3UBkCP+Ua{>IPS|a zoFv~F-evmk1bwcA1T9x={}1u4t%UiGD;D2faK5DE!Id)#d<*cspznrK$ah|G_^v92 zdEZPaNn0)`lay-8r%EDixkS&jrf0(FnNZqwN%@6#{-%^sjw9Q{(5KP#84~lM#Ba1-W90A9vR`T0ZASVIt&*d>l@|TV=-#DOKhvsnwB`?5 zbBLA{q$LGuNo87bo>rWq6~8j7*BQkdwB#}^*-A^!(vpL;;vTKI3f4QpdXr)Vo5x_| zW8U3UM)!%;-ik&WXM|jNWZV?KZ8xMXPVo>RXI!IAa~bTbV0APwdnY&F{j# zY)YMB-0xEI7A0>f1L>Ke%!jvpSE%J0wcMnZn@~tNbw~K{kkf0)p>&SKgj{zNmA8^7 zNEq3`xIz6g$31d9pw3&=d6PP?LqR6~N=meXRirP2R_%up@6oa!nTdZXF+fkGuWJIc zx9@~95J_MtX@u{v@|IFSnFdCR?@-VbsC+8lzwn)7euh&@!cGKEO<)Jw19mr`v>^|< zGJ&mbOcB*O;Z8Ve{=JPbPI_Qb#77E0Nx-3C81mC!n0G@Wz|)#fO18aS5uq%ZMLk z#81QNWSx=pYJTvGCdoc8%4eeQPii@@)S=&!7_oZf>FDz)o#}yOevk8c4Ud@_{t>(i z>?>fMp~Nvii!(nRdTXxnO`$iIA?Yn=oHCRm%x#CEF!R%?L^Gdb$zRe?l;5#RA*DE+ zfNN0gm5lCg2 zN2lSU5131L;UX%Kj{><=c672^_X}QK^;N=<*n=mGq~NQd^orTfy-U$2&Rru>c|H!cc~|YdAN*q zVg(eu-gha`PX+!AD{LSkBcE zK8@bpPS0k6bpd+w2ECaBwoYn`pw}dax@O2>ZF;1rP{S1{@iNqKS-BwB09u+~!l5mZ z{ELUq?l41Zfk#zVg;>Q29xf6Tz?x7%Db8m+sS>FQsk-l^lAvSvt5QSGJWAB^ZB}0L zJ%ToGa2&$HI@w-%ncoeV+YO=LSNPtD&sU+>COm6OYDQ{KYC&pAYDH>Io;G~8CI4%D zwxfUA^SvYRI??jZid*Tz_pUteu9Q%c!T5DP2f!r<@;rslx4`jj=xj8&k0GUz#**GA zeLxz=j^ab|OeXz{G=(&k^aW`;_0FK4nWQgCUy;71ZL`2-Hh9b-%_Yqv%_l7&E#%!I z@Lo(>LP{qsB`xFma#99q1!*PER`I!-&u>XIoGN}sBtCFgbs#9kIDUnozRFhN-JfT@bZBiZ5E3EI0NR3IalA6%grle-1 z=HzcdYDv1GL>g`@WegAbWMwquz<0bzE%aZI&G#tiBcCVeV_$aAcs@VjbD~l-=u@RS zl59fIWTkk}zu>7x=B^4qk(|a%i}UE*DnE2~6WYmu+f;&f4w9=TxvD}ZOQDmM@XP%4 z*IGDG6-vHD$-4B@T1r=@tykfdr{R@<(6-Hn7Vuul;lijXo0{@alZn#Vln$kIIHmJb zI-Am=@PRO-q)6XNB!ve^%lF~+ds!>5!in~>M&D)~dI-<|Q>g>jNTLPxsJ|mzs56`^ z8Lhzx*7R|{FKNSN=ENExHvsYxAeRDiW$6D9w0Z*?y1>|b!DKg>)Bux2Few8jyTK#| z4t9pNT%j#zXv@#EI2WQlMVWW8tZg;nignX3=zJ&gb-44sBcn0JE`f0TFJiYci?cGeTt%Cyg>ied`K$9zdEYPB<~)DlgJ zbM$GL?-ads5o)nO1-I#~OsL=%J@zM5a0@BT$et;dp1R1MsUmx(D)iQE+SC&WP9T(^ zw{Eg$van~0W6zXCuid5BGJz^byRyN}N*klt4MmYP*!0tLmyxE=vv0~`-*gv=`U3l= zO!iF$k*qHvSzk3QBu@ru6%zM)%50|HTS!}#66_JKuy4w%?-9vU z?_t`YrR&Hwe^Rg9Ssh}g7NAeEkZJZJ(_DmuoI$3!h~#Kv*0FLk9~L5wt)$KI^hYaX znH=D%V znDKs=zQdt{Z0P%9fWDG zyi|b3^F2r7&(gPnoGSA(kzGPFv+ou=eC7l^U^y$32@1RpwLON?9@DO?NW)k3y^(CqUfQ(| z`iWqzm3*KkD`7MGprh|sjlrB z&-uSRk$aD)JDkAo20SMyE#Sa0y4LDNIjm4IU8>Qs z91fO!z%Cr@!oe;a?81TG5$G*|-Vx|6fZh@4Eeu}DJHVhI7&Hch#?%!G2F>*KA_;k- z0Z^Nenlhpizvg^zK}v=f&*IasuaywZKr{o<3`8>!V}aNhh_OIy48&LM)x|Sdxz1z1btj#e|dwwLxf&5zp`VOaO z^6=Y5OOn8+89U5m;6H@-3#Aw{C6C@Ol0GD7c=qrA!U3MoBgZN)(Ep~xp%4H0B#eG^ z(vOkA4Wn;tx$~30G1D(*`o!$#F1c^?_DBg|j&Out?&*v#&Wv|3;|sr_Oj*hlr%Z`| zlu4jW8OoIXM;Y{ojC&HRb~3Ah)ZiRd8s=g_pH-w>amtnWM>#k;+KMDN6Wob>b;wtl zd{tQEkXz^lqc2@iNr}F-N-f`VT5n`*RZ@iS0AqbdUk^H>Md{+(Cf5Z+w(keS9i;BN zeBR^pKA#VKD}vH|Yl6m--Y0#)p62g7?tlOF{Ky2+VikP-y{~^m0>8l;oBRAl-%^!e zC{b$T^0Hz%kz`$@;!tWlsS>FQ>1A5hke0o|XCpovljl|64zw)0(6a18%d!nE%PzDm z+tIS@Qrh{xL(6hX=>X5{h(@myvRY@Jb)mPqQf>e{zd^n|%3xro@cnJ%+7E#DUxLKor02nhLV1Ul75Dgenv}h8ZAK% zT7uJP338y?Ku@rPJFV~CgL0oh6S=+g?0Ra2%RawG{{Qv#e_N6Nzt1K6?g8_xxZaEZ z{1(AVki$xl1!wq+mEZ>4;SPL5+7s@u0$gK0++;3f!u|h(`%4M(4qPCdr%9AdM*mlY zv1`ZL)tj}eH@s;$^Rq5Iw+cM!1J!*V5Pa=hyNu z>aPtZVZf*jCSky-jYJT_8fc`&sxC7`0ih*WxqwmyC}BJe19m~6EXWi`^8-CU{nsB1@&m~Yq~<_!1F1QX+(2s1 z`WM2wYUGjX3@A$0NWL0wTmjH0e6 z-h?9qN;~j+a)g7op99>31Kek~d7qu;1KvJhxA}49&{dSfOZ^x zz-b_!C!x`Y=SZ8ZZqWnUZJ^ypYp_`Gdf1bQAu&U9%gS2lwR4iA82xu#k^+a-Fzdiak+Nr-7e;+!{99nQ2 zXjg&u0BC0V!%PpJr{=uuI!%Gz)9vr{o|oDm>f;R$l$u#+Iud^bskg328sXbW`z}zs z)Shaz@fsRb>1DG3Xy<9`0@`|*wl1KpOQ7Kl#%>jDUI7*vV6hA=%7H~W#-l1)rX|qQ z3NV^W`JfW`~#Y!)Q z&`WQ2Q2ioBoZ7V!J*`Tm<>;9@b9$t;`#F;n)5$<_V3?ok~aK1@DUN1 z^@27&4A5MTPIC)sdj_-IKjU)@>vewe3+;TQ(^)3|2mX=2$9m$YD;qs|6S_i6r_a`V z^kyz?<@E!s0QD9c#+XN0u#|_JmKB4Z06tEWI*HF>L2_o#E{0i`7Do? z`(l+fD~L5Kn74H(RT!Gqxjg&b2==={?01879_r`)60`LZGq`#Z9Ecq?CA(0vE_FYl z_`t4O+NX;D4YPLaCwH))JkEadID5Sf?DclA&pT-7PJ4QihLc8<#*;oFP0(p=ieZ{> zsbM;4hVLuGOy6X~m)M=Y^35`Q&9iSvvv@w6&pD*Iyr0MCe9{8GFGQ!ih@JN0|I^-i zz*|vV4SZ(q9-dA`Jg$OwFo1NL&sb|idbLPzKF5ws1{To93OTcp| z{>!*mI9c^i{8w@R2Nik^e;9jVBk)J!1SbC?|NFsHb~N{JLHjZOC%8{>pYiMq{4w}n z;*Z52NBhPTo`9Q3os*$*UlA6HH)&YorOOK3ON^l9%&YkcOh+F#+qo1p(w(TOGgycw+;)Y&pU;`Gi*VhckGK%+{L?$pA6BvyN z%)&un;V4EUpV7!?G@fEKUSKpvFd9!Y8u^SyKBMt0qmj>Oc=Ap^U&VX5f5AVGyG* z3`#MZkr>8E3}Ynn8Ho{$#7Mi8@G@5O%W(z3Yz44ePuvFdHMemN>vr57xI1xo1*2GT zFJWXxvEp6=g&XCD25&G*f6aX$rVb0$=VGpI;pO_0c%Fb69#gRRV9cJ8X6!%PXM z#8zWgHiC1Whzu-qzY|h&XH%J)>r-=znrkxp3#q-aeUR{D)ciO#KEX=m8K}Wv=+{5E zf06iM#QE0DQK*mQ**M}R@@xv_%|zl^!2No5fj6LMyPGpYf5xG!q;)A;mqY9F+)&OC zy{uAvQPQR8Y%Q2=X?p|OF0!_z?UpvzNki&EAoc{DdoUw94F4nQ{*3Tg_IJi{A46#$ z+S7pcG*BqLguGKUS5Db(oHf1}X|4ylsC}4U8=%Vbm|q1@_F|OT-5J~=D|(blVGGzgiDB~;R5`AP}R8Ya-6F)|w3D}Sv-og3*JCxL;B zNDfF1^he;aPWuzVLin2WWlf?l!fi#y*h;hcM zOnHO0yv2(7ZQMKN68kQa^?SGvOgGxt%}ysgA6MM2K#F#)A$56DmuJ>VdBefnw@eqx z>_VB{5@l+?qcY2w+JU`-x$h}{=h25eLPvoOa-N|vZD>dv8q(4ObxPw;mFcSQI25-Y%==De`ft0=XHc>{_& z7TwHB@V*}VlMS@=b1D5wO1~j2{ZdM=OX*c@d(z!YO~Y9$zr|ULw{h>79`KWS%plRU z{n+kZ1#gd4{wilI=0m~10bh|I^!&V>eP571eWC9e@MIOMu@yX70bZ7L5(N#PoSYO* zlBt0#Qj_#~yq8fMT2K$(+<>)RGqfWu@Hy?l)1j=aN;=GVhz?ti4^*PXeO9;KB>%w`VvykY{24gLE>ygaQCrx)rLue&wE+S1g z(p;=*E}{?Cb(Xz+u60O%1?kbhaDN5qb6jWMJGzoQ?3cQ$$m58aMa%|5{YZP0rtPO? zUr)LlfZ2^&_VrRfr;WxzxBZ!`l0sEEC)JLbA#e3<(tOj%H>%LRyk!ub?5q}^d|Moz ze4Ee7x8-nn$2p&NoDe$2jAtb>k<&wyfca!}_OsxOa>A{<>g-m8r!*IqG zHkiu1eI=(XeND6Bw2oQ3n%a`*Naty7{h8API45x*^2>O5z(md=PBzDfXXzGDlYft{ zH?;n0G|ks=hVE9@3wQHw3h<#er?rWmQTipd$va-iNm`q{=@*?^m3I_!IL}p!8rx9g zJHOd=((lm-A7Rsh9KJ=;S*9tA6Ovx}!VpfzG!Vvc|)}X&`aD3r9WE z&;e{h?%0g1wFcQ^5%QMkY2_`w0_t3aytS5kCsE&AHmO~Yv~QSQYJ#`LlN7;nWKjvP!YvIr zeJi-RcbMSo;7jo3oe%;ZPMdhM3g`(0fZ=kk>tblYq0~Sf{C6bcM|*H67#4L7IyKJ2 zC-@-X4dvjIU>O*MJ~@~V_Pid<4)TLh!BpnpCtQaGF9-90S=9(`Q8|0MAI#u&jpvkeWbf85F7lR1A#U<4x`0jbJ+O_n2TU@?F{>uNdI9 zg6n$tAiR*!Ho+ZaS&ZJxjC>b230SU0W58Q*l=dO3pk;))l6-Q6IUaJEC} zHWCuB@CI3{4xs}$17d=q5~mPag=9fIa-M5dQ01ExKtb?IK8{%|m zd|Ah!HCW}fb+P^_Uf=ljno6QuSwoj_?&SL&%YuWq2aJlP{Dsr*{xQs&k?c$k36?|>wd~db1>|cq zE?dJ>E3yNeC2e^2FdFG4 zqoP{KcYcb*9Znu*7)m0B(mo9SlY|AQ0>d*29!AM$83pV%H``y!%3kl@YJ%5-kAtTe zYt9RBy2M+)CCyx!q-O)Bvr6VHDNk4O4qj*?n$LHC*(D~W?u|!Ji}PcBUvVjZxbbK+ z=llKL9a+ojzW5BFn~(^8xP9I6mhrB$BX(9_A;)hvuDTYs}9hO*_}dr~KNi}%!CtJWlk_qh{>)t#ISlbvum zGyab1nlvt=*(b7JWj-XK=Il?jr{Txa5hPZXiKiMHzuQH~b3QHJ0{gl2} zJwYAL^-iU3#p(pHiXDKt?RRX;KSSBM{bUk^`8CT}+TG4@+!I)d+s$EBRPQr~GU~O&X6xxP^-(ep zHI?EM?{x^J)4eVH#7<#m`Mbwm>G8?;N6uZUMnQZJk1c4jzT%D;uA&>?825d5$D^nx z+sCIUW$X)9Dc#u$eG)pp28nDfG)nMixoEVII1}2?kZSGLRDDO_lz>=)>R1+|xtasC z5||Sal18z3fM&{*~r;xxZMn|uT$PXikOdZACr@R#s(w!2aDlP zC?Y9L<@#apd{pjt8;6oxwkw~Oz8^)U1czjQZZ)#g0_e7CAi$$78p~-ko(V1qUTyZ& zY*+Se*Vg5=mR>)=d(`Y-#s=;17jnle1CQ{bQ0mLOL=*LFzQD+z`&6p$pYMLxGRT>k zbXawnoM2J7AwLP-PV>14Ub`PWifggbnBpE9{ySlUS2!KKF?dt=nnq+wlaA(CVz-9T<7qAM8g+Q4J$w7r#*e%2@s>zZ1iqo1lVAfob&-AV+G!!1O=7iePKC+ zFrBNcWMoaqSDd3U-IDdo5_sDZBym{_ zujidJfuHcWn6C5Q_MUDEuV4$UhF|6{Y(kG#GZWV_7ehG3kSSb7{A^DN6(wJ0_Kok0 zyaSv<*(vjxzuOz;U12z>t|UCIqcojA5wN>5SLfY2=AH03`9cDC6~bvZ*Q!MQD9Mjx zf;f%RYnfXL2WHwJ{$_6UJo+Yup{!S;lXxl(>=pb@zkwmRB1UoMbNq=oWCE^VAzi+R z|1=J+$CYtwq_95e(%< z;U=hZ_$H(1;`pkVz(TMJ3Oxay zR*^4y8@>v?7Z}xpyq($63>k5WNY(mo*nIze5#4E0h=sZ8Wai#8@8rvSx+a?y?MF&K zk)T(y4=1a$b-X>cT-PV)C%NYxGWkX_A$c!vG;Suq4NENR!=g?n+TFG{aN3Q0qmZDB_^Q~K6@ zsmwInzYDd&9v7=e>BExC^F_C9ge#=uH%SP{7BDW$xh^-k_$v}`b4N*ciVsfAWgJJ# zx|MdYQ>#vPZgJW&IgOLpABi-$N~_9AnjJG>>842Il6BrVK^=YBdImc zylcuGZ-|0>OS~Rp$68VLT;Tm8#!Ia5I!>7oqi^Nu+Fwo<6sX3Huh$ZK>|a-{qKOE~mz$5uCw47C1gWck1J$>;Mlo6$+Y27w3`_3y| z%1FY=>-6-R-EWy z=-yRb??Nc*8lFuDx``e~rIh6B99oa$FH5Rekn2+T!WBaF&l4?J;s{g77RqlE6e(yzAhO z&nrb=z&ra-BPBeG|9sh611A_vS*s~&F?(5}Wfy$e1T;1wyFG&)$1^nV#6F9gPyDc0 zPSE&WNSDAGX~D;W*|dfe5^4ofO22^|tx2x&BC7G7}H<}L%y#nt&; z;-Le=-DG!UiEtF~=UZtVcbkx*<`f=VsV%~(?^Ls{0ZJ-C_)79Q6m)Y^hEnNEuzhwi z)y@g~zq3f$!KchVFBiNX3}yFZIPa>1ib`-V(0-!oN%C3{3oKLipTwZ58z-%J5XCXt_+Okzh`=6Q)(uhBY#KcZEs5 zlNs%?fj={7lgj8&58*(vhF^)Bq>{`WXxbF;tBkThvOg;APtkh#t0}c@Lq=HbG1R96 zheSI;OL$LhKGYLTE37dn{6<`|mhUet8WnGlnDQB)ZMea~gGfj(;6??{!JR*bivAI4 z;I`m#WQRrk`R2{w7M{pgRLTnkqcTeG3%3mZjD)nF^X8Q)egA~W-;?+;d{YY|8 z(I?!i%|zWLhcW)kX8jDEIf} z!?#vuf6J-3vVGhAil*o^l$OP*iz_>p4*f1pc6r6sq9X%l0j)*xjFfNY?M#C_jtryH zUFD2=WF?TRyH3S?rRKX*hxFPmquOF`%JYOjpMzWS-<|o&FInFu(pT8|fBz^Q6$hT% z675O^GuIc12U)@Fbfv8~tC;`6E%MtC*4%%BVy9`fG(+xKO>CD7>iR<@i8M7SsT0XM zM4LoDp-+>t^MEy8%Jq6(`Rl#3Nu-E{Dt)S^T=x=0W?==rvkjVpN`>pl=+9g7T>BI4 z2Max2%~?$TPR$>-4Sx(a>Py1Xn_TGP8q2+73R%)H)LqX~<Nmn&W zo%A~gJY9l+K%t{`aCV`|SxBnlX!$BikzMX3nR~R#nOOZ~8>KdpJ~R7ap?fdiGNPgz z6itlkoZ=Sy(TuaP>e;Gm)fKU196v34h+h2@Ex_Z@3ehD+-#Zjd{x)6VspdmvJEhc# zmTBL0e_;Wm_zfk^q=bL6MxKE-VKQMow?Wx_`AOyWZH%;cGAg48%bzSuFqx7Sb04YIeiJQD+wC1i)?twQqV z7v?!pN`-{-7atQr%C9WKIGKrK^^MMtgMV?ZBC)%~mjd;)y`+@670$11dhTvkao8D_ zn?mrL z7MOZOFYNJ0u}bO*WplwH;n#ACWgPxU>_pYLkU}~4ON`yr2)cMFiw-|f^y1MJZ zm=GF^LnenBX>0tNQJ>60VNj4=tUr@S$ehu!nd@hSQY<-F6U~`ia5+JdGRrFN4n62vkyMdbmzaGh zO(}XLO_*{CS|b|GiG?WscQ{j2T${ERUs{Q+SbWM@^AulOHh(Fp-sEm#@g@E+pCsXg zZhLXKx@bUaYwSpi(->KX%*q@5d0ORVU}8v-%TUM;B;|C#EOrIfW$NTqC#L7Pl0_D7 zk#fSV@S8LrOs3BcC-Fz=JEyPcXCeLuSJK@CFR@0PJJb>@ca@Sojn1xP=iEab2C<^O z89vI&Br>v>Ksz=eUHDZCciyDwM>vYIb|CfIOsOJDo$bfD$u$hOK_yt_UCFefW0HH1 zZz5mno#+N8D1Y<#G=uw)b|!Q0oG>!MXTft)V}|4?bb4keryz+5CLzBle?{8(m&YvR zkpbNO5y|4u+LQT|26hB@Yid?{NH@>9Q}dviyG3|gY;Ao*1DRVFr+hY zRGvp}q(oV{;JD6>r81=Z0@XPBc1Du=EK;dtAnCnf^)aomRL#y3-x3f>DoU5>^VO8< zXs7E-tfr|JhJ>3`(l5}ypfRGAUP-&5Lpp{9!Hp6h8%h!#OLbG*2)z>7w2E@~`tY>5 zS=!Hifb#*YS`xCb?tIS3Zf9Btz7@=?ij>sAG%>Bs0j3pIl+#ssIjzOF`vt{M-qK4t6x;I_bDltr*$c*3cH`%!ZZ2XL{9{qW`eI$j@Kg9L5`@!j&EYD zwTB<*^8?Z)SMpzwC*Nva*A1iW6i>xrRA;3SqF%XwR%BG#34P-|iyFW|PIIc%17(>_ zEbAUkxs};G6|LVm?fD?$_E!y{$owDBUfD@3Paefw${elPfKt*(k1#oC$W8D!32GT~ zs!sN}XW|wI10+5+l#~b3>iY67n9$D<~~ig32Pb3*H-xP7b%E7enOi(e5*utl*MPvVKP^BHkMNf;R{W$3oh*6O_%+hEwV$rlj3eR8HBu6w&qo@NqFO(9;6^N-1AKcl7QI)q>pcCO-3oG=k z5$YSYa(gYIBuOp0on_2xutV=9ywu}LW(o27v-lNpR*of5l#pITPolh`906Swqtc3( z9TZD_tUeLS6-sAuY-vKgkF(xWx{^|>b|ri-S}B2!dz52G*1>vCXOmLVHF7>Rl+@Bv zT+DMq?8&H6YW6cRYQwJcxBt$QQb~PZO4}(i7JNXp8)G$Q9_N1GD7v;@rIM6<_kObP zLvk*KG3ocE{C)BY9`e3a7y}nB*?2z2h_A-3&{I>;I?>W8?-r?Svo8VN%mhv{^F5*P zK4aE;`K9Dly?lYLc%%BU!JJRp!k=;8rT)j0+=~05xOq{2-V?qSY4mORdkOy3;IH`4 z6=J02O{fZY=D}T z3;ASP?*r`SA*ZD0ce)4-c%1h%AoEFlmz4VA*knlir0+{5W8-kLUyLhSX@#1u&Ik)_ zr@dfgg!AzF!fR_^9;uY8#if@f1mtB8M0aB-o0`L(r~h0F6<>upN>k$i$1$GnFr-gCiN5 zxzQ?bOO|FC`9xl;oDq}0Vf8kP_Q~w2NEt#O{*7A-mjf~~KCC9b4BlWq$}E64MA+_& z2-lWhrwc41kd$tUcuZ93q$Ho$>kw29lh%oBD!3$aSxldp$Hf^W%WcIyD?XlD#TLRu z;)KR;f*Q!FTzQ|K*KsJ*St~mIoMQ_nLCo0 zcW_I=+%WmUTkvqTk596V8nI_UXWX2}%RJXAb82Hklgepm=sZ6N< zg0@rF1pO{~KA~_nYVIJTyoI!XHt%kHlZ^FYw5>R~Z$Rdbt-| zmN8w9g=Q%heG2^FMKYlEO2>s8rAC=qKYfBAnx9%Lv}J*=Nax4!%{&Df^Uowj4(az& zW`xo`XnC3ETpAE12EyHXmC=|N(MUj}fy8i;jX9k+N=_6IO5ih?QHX|Xnq_D|#iVDi z-sweqh%_N4xkIcwi3^CVs5I|GO`t0!O)2lg300hkdmo21;0?2I9;2o+A&gm3?C2p8 ze-|U`aO#%%78;c$X^W3zoCnJew#qH*bj(E)ffM6f71LT`kvqFLfoMOU2{iJGGL zqJ95{E+wu99tqi7HN#|ySL$H9=nO(ml3ki_U7R}m`HtS}N(Ss@HM3FY;Sgx(LS#Kz zBd-bJD&vd%+DD zSBK;F9dReFH4gcef5fHJs}!^%-at9>(@(d%TBOy>(30~$q)J3lAyHXV6A=v);V2l+ zNq-y3e!B9V6|PFwCv|5!qR2~;QFt>BN&Mzc;To-bqO@i8w@>Lg?fEvfMe<=06=YCW zugfih+ZBe@+3oY2va6&DwKJrMuhk@#aEKXr>aq<@VPgmvB;p@>?K5Ll0Nvf zpW@TL$ygs&UKizRQuw*ZP_c>NB%Ba>t(+!vyo9eL>9*|QO1dN+h*Crv<+%K^hT;{T z$1T;c3Vq_c5PD8*5cFw0QXaF8mU!K(e3>Lo1>%sjQKg!3#kImq)1*t_r|PSGxkx#Y zWRU*0ffj{SMt#cnl=JxVp@#CV>Ke}x<@rvN3kt1FRadf=I&osyL3@+y1P$w~;x44d znjnK7&}yOMll_yzSI+ za(q=osvI)n7*bl+`g)G9fjO2n!@#JoSlj9IBvtq6zpv}|<$|)+lpOD}<@{f!_Up3Z zTA({n>G#bU!RM6bz_~-I?nOc$N4dePo58HN^=mVuI2mydPhY@^9+(O0||KLC#VJe2A~PW^ta>87D`xtsUsyCVs|j(s5* z7~G*xRJM;w3D0cY7v1le@8yb6BABS$S|ps1+GdvN_c@}th<``--lv3S8fuXlFLz4E zL%GV&6Q4%4s0#_#(-krEJ!v93o{aNhWCEe%>GVR!3#W?GWByiXfGPpo0X z6lf@Sm0?u3^2fRBBJ@a$zW;aaO4E*AoknS$ zNY|w{s&$$t$(26s0-ORPoVkLtjwvdYGoe;?y@;!A8nGI0jIG0|(WabFZEg;Qs~u*J z;_fHr1k=)Vz#d^v#vW;YjXlboVoo(jn~vCH%-Pts<`39*<~(!0X>Yn=k29BIkEhOF z=BK7N_UEP__9Sz?xxxIx+=4yX^f&jJUzrE6oy;TH-*CZEF5z540`Jv$nNuZJxJ>+r!NZ_9%O_`MW*F zwl#xod)wZ;XpgtYn<4fzdzyL4cCy!)q4rvPgBfFQvNxOY_Evj`nP~gld(BjPpMA*8 zu>^o+Seb2sU*4q#4 zhh~HQ$bMut*-z}JX0sh*$Cxd4oSkg8+9}wS{TiENXV{sxoSls=Z|7nw*!kFscB$Q9 zE7?tUv)$Kjv0H6j$3WZqu7ay!8@OifV0)nJ?7G-C?re9CJ=}G5UG0(XB6pEJ%3bWb z+oRp3?oxYF{qBBys(Z){w5Pe3+{^Y1n$Rc<|0)w#6$9*=-O_~`npOt;x41*;>YXX1Gp1&h4+w8PfOS{X#E+X zmDY(Z9kcBl2-Lo00;TPtk4wBPr^r+<{bJ{s07R7ULS3cIKU zoq(a(s3no_VcHqEdK<-`k#6N#z*!(2*>ixo*r?^+@5&g6JvX%HF&gKY-%^Ti;f3@@ z?8Q1FQNM)diIp*l`WX2#R${Nl*3%S{s(aY;zKot&!Der7GTz1zl#ozKv5%^Kj4^(U z5^jbvAH^KF6`FS&^X7JQ2TtsrxMQHt?Vz>o&7VjivA3GLxZcH6d48B_!}V~DxeMxl z1mpiObY5~xy4xxB4yD-rHSSKr4-@K7U3XBHlzK0e{5W&BxySt3{DpaZuNi<7d!M?W zGov3M{8v&)>^DoR#q36n;z=+M_#DLePwwg1JgvW zrM(;tzIF)d>i&#vM0ZZq(D{s^fxgzqT}a8lWrlSEBTiOM@Cz`a4%VB~wVbxlk+y2R zUo*V(@e-E@eQgF_q?q+N(AGPVM!HhOnYh}}=7wAwLf7{tEbrUOcYi8l8{%r?s?g7U znETbBn0&7i3@}g(WA+ELlBO}VcRyO*n8=6I4}|g?D01B}rZ0Vu?OEy8`#wb1TEu&6 z@SBA;hu&16O|dzYN2N#gMG*AynXzr*XUUl3(|1uR z(Fo)LYi~v95F54J`yzpg%?Yi@qU9*<_hFBsHcS7aa6`t$+X~_MMEw+B#wxPErr+Mi zdHsDA#?V`lIK)OU@qRVNR%~^(H5lU>aF7F`nPRWRwSe17_$a-$46m)={k`G)?cx6N zw7XvK;CeN*L{eRblRT~TeXJu0wTJE-^(8E}HLj(mmglXhOJWbA%*&yt?XcHDmk)tI zNcd>I9vWV6gnAze4Q~epm!~)B^;WLJ3l4=UA4gd79E&}Unvc}b07CwmFR7iDBjF=) zZKzF3JB(6~!SBiSTHLYF${zSvzyl=ySkm1b;LT+rPrF7cFNsWNm>a)K zq>qES%)i1my+0Wz%m_7s`#cEs?+<;y7j7kd;V0N1zG(ml5PLg3tUMBdxOb10&Uf}Bu%x>OFw4-wyo1Bw=dCHllUbh?i^fbS`v`_aQW2eNl>ZINEw%by*EN72Ow!wH?G6Uof@0Azw6YYu}HL<&obv~(Rx`e z9tX!h4eEFS*xCpDlU3cLnod@jm7xa>X;~Xa<#;GlN2IR{!5@)Y{sjGeEKHeVe#&aJ z1vqyMwEAS^y|byW2lMC_M)m<@?6}=I%-}lE-QUVAG1uF{m3|9vITt>06?67>aPwjF zbeOUNP_M_#IG8!v9zJvmwC_Adyf-9avEJ##%ph>t65pEeJ}5INlxoBU;7^3F6XemWxgJ9SWf%C zeam?5cTwM*llqqV+PiPgZ~FEt+w~fO;pt_)-q^j*RXLr@dWDucoX}sZ{7!Ui@@+dW zJ&J5m16o@PdRQCkv@euJQXZgJIdx@`gybqaCN?ZfC>|OJy;jg`J-v!7X`#PztxOIJ zE##u1#)Nz;Wc_bdPhp|)5^e$|KFwb5zD(6j)vS0?#rIP!Q@=^|Ox=%ttz1EFh1_Pj z9da+q?Vmd&_siV%37 zf)4Ch^esctWz9ghHPbFY&o#}?M|1R*oo6T8spz*B+BtT*o#pOuccQJi+YNM2x~JST z?pgP|8{}Sa|8Ot5A?`ePxx2>wkyeQmTm?#B9oRGm&ds3qKZV}QTC@{1S2QZ!puCsE zH?D+I_tkaa4RD)B(9gBAoo!dq;n_#g;XQ!{?K7-j<(C} za$A7b$hg|Bj@#Gm=jyrou7PXl8oB-5x$ZL8*WH>PLu=cD9UW-F1@MuZ;SG7NgLU*7$+~m40=<}{e*Vn=w!QEM|m%G7rb1mJG z+?|bpK}&eBJH|NbWPL?l zwYeS+W;@E>m+O&WxTCDPT#tt5Ir7%$dJK4*a;(nWp^Q=wF_l~!O30&sGV3ZawlYT?F;SVKb(2+A$M8u#tw~Cap7hh_Z8S!3 zSY{rIQXHe7j&(UxsqI`i{?)*;3ot`#3Ou?dQj8!)U(uHW>nnjN+EU=vCy`8Dn?>V|5W@f+iMtU#dNpGOd+$b;?voU6!==SLFOvBIm)RI3;QA!J4mp>af^a z*10$_+F!HYluy-(E%)*y*KLU`bI;=99HV)PW>FC&st;m&9M>GS74_sV{HU3GUZa>=E47GF?qz(wTU9E;A?n#BMas-fxd9^4ScNvVE|Pi+uX7 z$+2gumAO;6DCpSR_J^(ZD-RmQ^N4l1$#CnNERha3$(grmXzQngc7BLk~w|? z5(mS%M5@`YOhcYpDsOC8+DMl!*z{ZOtR1N9Vu7b+U7dr(a}w+Evv|G_T(uFH(%Ky6 zs)8-QHmA56>UVS%8INB(*@HX9RpZ(b>L9yN7V0Epr6GG8bm4C9a!nQXC7m5^Kj8X~ zq@uJg_HGSFxR!@(($pR5+9jm0^1wjklt>QB2{BV-WWjIY|2bwRVd2L)wpAE%Xbd_M z6P4Y-RAw#}#bpJPYYHYNQa3ZzT&hTpi&QG|C~2z!iKH|hVXDZ9A|V>rAI*Z81>V`l z<{+DI+PkkzW4E7anVMu8q#XK(#iqSI$h5GnO&z<;?2l_^!Fu~w)6VW|TDT^rrn}A@ zX?sHtjyJ8`DW)mBzot9R?2lyA)a`GY5Z9V;3(7g%9%>G>Gfh3$&>V+f-<7AHreOa! z%%B??sa2-A`vSi$t`Y8AbD&#mI$9uxJecQ3;I}XxQ`g}3!?h$mduXX&;s2Fq$5Lin zQ`?O*C%f?`mHIbrc`MlL@}U)1Q1>su3EGU`!2W^urbKrc-0Uu=otK*q$Zg^`aUDz( z`!sna+{JXTRZSaPJD3Y~k#L99EuGN@}y|Jmr@Xll4 zckRKg)uxp_ljoJqZ}IEfbI?lxe_NYAo(e2aF^9SdrmjB!810Vj0**Hn zn9Du!zqi*?UpLbBgc_OPCe|eN>;Y(AOz;=82CjAs?W$^;q}rQusW!O#O>G-69s=hg zThJdV7|Z}e+h1in{Mhva2MDoo!x9&rw(N-1@=iNu>U>f{swq?IC~f; z!l|3UJAplLPdZyQ7$)$>{~9;Lb@Jn(a2MDoU1xAW;GT5AUB^fKWWNQ^l1^}rz9svf z4hs$@T&kAY*W;wX#GC?Lmg85(pDy=FJaw%o7ks5}-XYZ}`~-JHmvc@g92KVpmm?=Q zo$aLGg6EM-!aFN0b0Fz-F36Zfj(H(-L)|^JtC`|-JVr7uNf(V<)>!GdMb9F?3pCfy zpY#|qj@xkmiRM&tUiqM;hVVTD`cOp0|ICTqSCA6y|uq$sGGA12Ud@sZO%v6^#R+{yV z$rG9-c%$RHj4*U7oO89^B%a@4nhC9f?sjzlXAVkDAZgC%Ie8{8r#AU=$Ws+p8`>k|{C}Q?rkVr06}0iZV63){wrcxmyR={0 z0Uj@n=Cx}H%^hlTH7(C__N8Cat^-KB0J=KE9HevlJaf3x##b1t`zRmWNVN^t*}2fd z%ZO`%yAXak9RFgR;O{y3Al7{4c2MFlb>!pZ`Gm6HTquaXjx5ED@)4<9x>HcwC5!w67^^`5LZ%Fh`xVQSg~| zTKXVP+Y{0k&MD<-en|&Dq)rXixf2LKh&z?`UO;(wLVKkAZ-O=OhvV#LlqdKkZDnUl z;Uu_rx@l_Hnd4JKc_w^>It5nlWRZ3QxO32neEYi|!1O|RabsZhTWJ5)@Z1jY0orM6 znMQU$cy{D(;(iUi;#%*77gz#U-?kzmrpcV2a z{7y>>9+k?2X5csT&EYBgK%bfd4{@hy+r@8&OW|7L4#E8dcMwjV zH4>LP1Nfa`&Q6_-e=>M`IB7@1r`S<+ZxEhf&cz+<#*lxE>5^*8+;0uf4)8nTj=}A3 z%H^Dd|D>s#x)*mV^XgvQ)23SL7vS10xSzs*zd+0RM$iHpR1LaS%l;1k9O8Sxr+>%& zpBN(?{JC7jyLWQhn#HxjJ_>%~+!^5Db@=6>X|2p*wkt62YK{gco8gYOhnUv5I`%Z^ z$7$eQSNhNudRvowaV?RHRwKLYZ;l7w+NfN&lIJT8CqaS-aEj0Pe+k1U;752NzTkzV X6CC+H?h)MGxSzY#%sHX2$Wi|fuZ6wO literal 0 HcmV?d00001 diff --git a/UI/Fonts/EuclidCircularB-Semibold.otf.meta b/UI/Fonts/EuclidCircularB-Semibold.otf.meta new file mode 100644 index 0000000..6344dd2 --- /dev/null +++ b/UI/Fonts/EuclidCircularB-Semibold.otf.meta @@ -0,0 +1,31 @@ +fileFormatVersion: 2 +guid: f107ab11e934487459b829102ee621e2 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontName: Euclid Circular B + fontNames: + - Euclid Circular B + fallbackFontReferences: + - {fileID: 12800000, guid: 0526f5407dc9f0e46a5d3d5442ae8399, type: 3} + - {fileID: 12800000, guid: 83d2d1a3bf476424ab801476bb0f4664, type: 3} + - {fileID: 12800000, guid: 45e963d45433f094a8634b334e9ede98, type: 3} + - {fileID: 12800000, guid: da2fe288b7d8e4045bc7d0e845d7a885, type: 3} + - {fileID: 12800000, guid: 313daa1a98f6ab5429c067e7dd5e8827, type: 3} + - {fileID: 12800000, guid: 0774b14b39d939b4f80ff528506c94ba, type: 3} + - {fileID: 12800000, guid: a4d67c6bcb327e042ad6e7a2c316b181, type: 3} + - {fileID: 12800000, guid: 07b0aa7e74149a94cb7ce0ec8ce6da47, type: 3} + - {fileID: 12800000, guid: cbd343bf70f8a0046ba4ed534367cd1b, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/EuclidCircularB-SemiboldItalic.otf b/UI/Fonts/EuclidCircularB-SemiboldItalic.otf new file mode 100644 index 0000000000000000000000000000000000000000..85bd6210c685d4623e50778ecd75c09328e1886c GIT binary patch literal 121384 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

?&I_sGp0|UGh^=DIdkUD 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 XEW#Fo>_rpaS?Y>{kt$z124DUkE7Iqb literal 0 HcmV?d00001 diff --git a/UI/Fonts/EuclidCircularB-SemiboldItalic.otf.meta b/UI/Fonts/EuclidCircularB-SemiboldItalic.otf.meta new file mode 100644 index 0000000..a15f80e --- /dev/null +++ b/UI/Fonts/EuclidCircularB-SemiboldItalic.otf.meta @@ -0,0 +1,24 @@ +fileFormatVersion: 2 +guid: 07b0aa7e74149a94cb7ce0ec8ce6da47 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontName: Euclid Circular B + fontNames: + - Euclid Circular B + fallbackFontReferences: + - {fileID: 12800000, guid: 0526f5407dc9f0e46a5d3d5442ae8399, type: 3} + - {fileID: 12800000, guid: 0774b14b39d939b4f80ff528506c94ba, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/TMPro Fonts.meta b/UI/Fonts/TMPro Fonts.meta new file mode 100644 index 0000000..57d3f5f --- /dev/null +++ b/UI/Fonts/TMPro Fonts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cf73a81da42a9b14abc1ea9254d321aa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/TMPro Fonts/EuclidCircularB-Regular SDF.asset b/UI/Fonts/TMPro Fonts/EuclidCircularB-Regular SDF.asset new file mode 100644 index 0000000..4ea2967 --- /dev/null +++ b/UI/Fonts/TMPro Fonts/EuclidCircularB-Regular SDF.asset @@ -0,0 +1,2690 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: EuclidCircularB-Regular SDF + m_EditorClassIdentifier: + hashCode: -492980377 + material: {fileID: 21319758026491476} + materialHashCode: 1317595148 + m_Version: 1.1.0 + m_SourceFontFileGUID: 0774b14b39d939b4f80ff528506c94ba + m_SourceFontFile_EditorRef: {fileID: 0} + m_SourceFontFile: {fileID: 0} + m_AtlasPopulationMode: 0 + m_FaceInfo: + m_FaceIndex: 0 + m_FamilyName: Euclid Circular B + m_StyleName: Regular + m_PointSize: 71 + m_Scale: 1 + m_LineHeight: 90.028 + m_AscentLine: 71 + m_CapLine: 50 + m_MeanLine: 35 + m_Baseline: 0 + m_DescentLine: -19.028 + m_SuperscriptOffset: 71 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -19.028 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -9.443 + m_UnderlineThickness: 5.183 + m_StrikethroughOffset: 14 + m_StrikethroughThickness: 5.183 + m_TabWidth: 17 + m_GlyphTable: + - m_Index: 3 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 17.109375 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 4 + m_Metrics: + m_Width: 10.515625 + m_Height: 50.96875 + m_HorizontalBearingX: 4.328125 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 19.234375 + m_GlyphRect: + m_X: 254 + m_Y: 282 + m_Width: 11 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 5 + m_Metrics: + m_Width: 19.875 + m_Height: 17.53125 + m_HorizontalBearingX: 4.6875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 29.328125 + m_GlyphRect: + m_X: 6 + m_Y: 487 + m_Width: 21 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 6 + m_Metrics: + m_Width: 47.5625 + m_Height: 50.40625 + m_HorizontalBearingX: 2.34375 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 52.328125 + m_GlyphRect: + m_X: 285 + m_Y: 69 + m_Width: 48 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 7 + m_Metrics: + m_Width: 30.75 + m_Height: 62.90625 + m_HorizontalBearingX: 3.1875 + m_HorizontalBearingY: 56.65625 + m_HorizontalAdvance: 37.0625 + m_GlyphRect: + m_X: 31 + m_Y: 407 + m_Width: 31 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 8 + m_Metrics: + m_Width: 65.828125 + m_Height: 51.546875 + m_HorizontalBearingX: 2.265625 + m_HorizontalBearingY: 50.984375 + m_HorizontalAdvance: 70.359375 + m_GlyphRect: + m_X: 207 + m_Y: 70 + m_Width: 67 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 9 + m_Metrics: + m_Width: 48.34375 + m_Height: 51.96875 + m_HorizontalBearingX: 4.6875 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 52.890625 + m_GlyphRect: + m_X: 73 + m_Y: 400 + m_Width: 50 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 10 + m_Metrics: + m_Width: 5.53125 + m_Height: 17.53125 + m_HorizontalBearingX: 4.6875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 14.984375 + m_GlyphRect: + m_X: 95 + m_Y: 367 + m_Width: 7 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 11 + m_Metrics: + m_Width: 14.046875 + m_Height: 68.15625 + m_HorizontalBearingX: 3.34375 + m_HorizontalBearingY: 56.796875 + m_HorizontalAdvance: 19.53125 + m_GlyphRect: + m_X: 6 + m_Y: 167 + m_Width: 15 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 12 + m_Metrics: + m_Width: 14.046875 + m_Height: 68.15625 + m_HorizontalBearingX: 2.0625 + m_HorizontalBearingY: 56.796875 + m_HorizontalAdvance: 19.453125 + m_GlyphRect: + m_X: 6 + m_Y: 247 + m_Width: 15 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 13 + m_Metrics: + m_Width: 25.703125 + m_Height: 24 + m_HorizontalBearingX: 2.765625 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 31.234375 + m_GlyphRect: + m_X: 32 + m_Y: 367 + m_Width: 27 + m_Height: 25 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 14 + m_Metrics: + m_Width: 30.03125 + m_Height: 29.890625 + m_HorizontalBearingX: 2.703125 + m_HorizontalBearingY: 35.5 + m_HorizontalAdvance: 35.5 + m_GlyphRect: + m_X: 431 + m_Y: 239 + m_Width: 31 + m_Height: 31 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 15 + m_Metrics: + m_Width: 12.359375 + m_Height: 20.234375 + m_HorizontalBearingX: 1.984375 + m_HorizontalBearingY: 10.078125 + m_HorizontalAdvance: 18.171875 + m_GlyphRect: + m_X: 70 + m_Y: 367 + m_Width: 14 + m_Height: 22 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 16 + m_Metrics: + m_Width: 18.109375 + m_Height: 6.109375 + m_HorizontalBearingX: 4.609375 + m_HorizontalBearingY: 22.9375 + m_HorizontalAdvance: 27.40625 + m_GlyphRect: + m_X: 82 + m_Y: 137 + m_Width: 19 + m_Height: 7 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 17 + m_Metrics: + m_Width: 10.515625 + m_Height: 10.640625 + m_HorizontalBearingX: 3.6875 + m_HorizontalBearingY: 10.078125 + m_HorizontalAdvance: 17.890625 + m_GlyphRect: + m_X: 299 + m_Y: 259 + m_Width: 12 + m_Height: 12 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 18 + m_Metrics: + m_Width: 33.15625 + m_Height: 58.21875 + m_HorizontalBearingX: 1.484375 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 36.140625 + m_GlyphRect: + m_X: 32 + m_Y: 167 + m_Width: 34 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 19 + m_Metrics: + m_Width: 35.703125 + m_Height: 51.96875 + m_HorizontalBearingX: 4.265625 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 44.234375 + m_GlyphRect: + m_X: 159 + m_Y: 282 + m_Width: 36 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 20 + m_Metrics: + m_Width: 15.84375 + m_Height: 50.40625 + m_HorizontalBearingX: 0.5625 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 23.078125 + m_GlyphRect: + m_X: 488 + m_Y: 130 + m_Width: 17 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 21 + m_Metrics: + m_Width: 32.734375 + m_Height: 51.265625 + m_HorizontalBearingX: 3.40625 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 39.625 + m_GlyphRect: + m_X: 275 + m_Y: 133 + m_Width: 34 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 22 + m_Metrics: + m_Width: 34.4375 + m_Height: 51.96875 + m_HorizontalBearingX: 3.125 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 41.1875 + m_GlyphRect: + m_X: 193 + m_Y: 395 + m_Width: 35 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 23 + m_Metrics: + m_Width: 39.90625 + m_Height: 50.40625 + m_HorizontalBearingX: 1.203125 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 43.8125 + m_GlyphRect: + m_X: 395 + m_Y: 391 + m_Width: 41 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 24 + m_Metrics: + m_Width: 34 + m_Height: 51.109375 + m_HorizontalBearingX: 2.5625 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 39.40625 + m_GlyphRect: + m_X: 229 + m_Y: 133 + m_Width: 35 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 25 + m_Metrics: + m_Width: 34.140625 + m_Height: 51.109375 + m_HorizontalBearingX: 2.5625 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 39.6875 + m_GlyphRect: + m_X: 287 + m_Y: 393 + m_Width: 35 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 26 + m_Metrics: + m_Width: 33.078125 + m_Height: 50.40625 + m_HorizontalBearingX: 2.0625 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 36.140625 + m_GlyphRect: + m_X: 428 + m_Y: 130 + m_Width: 34 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 27 + m_Metrics: + m_Width: 33.859375 + m_Height: 51.96875 + m_HorizontalBearingX: 3.34375 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 40.546875 + m_GlyphRect: + m_X: 161 + m_Y: 71 + m_Width: 35 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 28 + m_Metrics: + m_Width: 34.15625 + m_Height: 51.265625 + m_HorizontalBearingX: 3.046875 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 39.6875 + m_GlyphRect: + m_X: 243 + m_Y: 196 + m_Width: 35 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 29 + m_Metrics: + m_Width: 10.515625 + m_Height: 36.921875 + m_HorizontalBearingX: 4.46875 + m_HorizontalBearingY: 36.359375 + m_HorizontalAdvance: 19.453125 + m_GlyphRect: + m_X: 208 + m_Y: 345 + m_Width: 11 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 30 + m_Metrics: + m_Width: 12.359375 + m_Height: 46.515625 + m_HorizontalBearingX: 3.125 + m_HorizontalBearingY: 36.359375 + m_HorizontalAdvance: 20.234375 + m_GlyphRect: + m_X: 251 + m_Y: 456 + m_Width: 13 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 31 + m_Metrics: + m_Width: 25.703125 + m_Height: 35.921875 + m_HorizontalBearingX: 2.265625 + m_HorizontalBearingY: 38.546875 + m_HorizontalAdvance: 30.3125 + m_GlyphRect: + m_X: 332 + m_Y: 344 + m_Width: 26 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 32 + m_Metrics: + m_Width: 30.109375 + m_Height: 20.875 + m_HorizontalBearingX: 4.828125 + m_HorizontalBearingY: 31.03125 + m_HorizontalAdvance: 39.765625 + m_GlyphRect: + m_X: 38 + m_Y: 482 + m_Width: 31 + m_Height: 22 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 33 + m_Metrics: + m_Width: 25.703125 + m_Height: 35.921875 + m_HorizontalBearingX: 2.34375 + m_HorizontalBearingY: 38.546875 + m_HorizontalAdvance: 30.3125 + m_GlyphRect: + m_X: 294 + m_Y: 344 + m_Width: 27 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 34 + m_Metrics: + m_Width: 30.3125 + m_Height: 51.828125 + m_HorizontalBearingX: 2.34375 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 35.921875 + m_GlyphRect: + m_X: 187 + m_Y: 135 + m_Width: 31 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 35 + m_Metrics: + m_Width: 51.75 + m_Height: 51.96875 + m_HorizontalBearingX: 3.34375 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 57.65625 + m_GlyphRect: + m_X: 80 + m_Y: 221 + m_Width: 53 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 36 + m_Metrics: + m_Width: 50.125 + m_Height: 50.40625 + m_HorizontalBearingX: 0.421875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 50.984375 + m_GlyphRect: + m_X: 276 + m_Y: 282 + m_Width: 51 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 37 + m_Metrics: + m_Width: 34.9375 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 44.65625 + m_GlyphRect: + m_X: 384 + m_Y: 192 + m_Width: 36 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 38 + m_Metrics: + m_Width: 48.359375 + m_Height: 52.125 + m_HorizontalBearingX: 3.1875 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 53.609375 + m_GlyphRect: + m_X: 99 + m_Y: 285 + m_Width: 49 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 39 + m_Metrics: + m_Width: 41.328125 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 51.1875 + m_GlyphRect: + m_X: 331 + m_Y: 193 + m_Width: 42 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 40 + m_Metrics: + m_Width: 29.390625 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 39.546875 + m_GlyphRect: + m_X: 421 + m_Y: 453 + m_Width: 31 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 41 + m_Metrics: + m_Width: 29.328125 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 37.703125 + m_GlyphRect: + m_X: 447 + m_Y: 390 + m_Width: 30 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 42 + m_Metrics: + m_Width: 46.9375 + m_Height: 52.125 + m_HorizontalBearingX: 3.265625 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 54.3125 + m_GlyphRect: + m_X: 134 + m_Y: 398 + m_Width: 48 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 43 + m_Metrics: + m_Width: 40.828125 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 54.171875 + m_GlyphRect: + m_X: 338 + m_Y: 282 + m_Width: 42 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 44 + m_Metrics: + m_Width: 6.609375 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 19.953125 + m_GlyphRect: + m_X: 497 + m_Y: 6 + m_Width: 8 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 45 + m_Metrics: + m_Width: 29.75 + m_Height: 51.265625 + m_HorizontalBearingX: 1.5625 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 37.5625 + m_GlyphRect: + m_X: 289 + m_Y: 196 + m_Width: 31 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 46 + m_Metrics: + m_Width: 42.609375 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 47.640625 + m_GlyphRect: + m_X: 344 + m_Y: 68 + m_Width: 44 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 47 + m_Metrics: + m_Width: 30.953125 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 38.90625 + m_GlyphRect: + m_X: 454 + m_Y: 6 + m_Width: 32 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 48 + m_Metrics: + m_Width: 49.484375 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 62.90625 + m_GlyphRect: + m_X: 333 + m_Y: 392 + m_Width: 51 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 49 + m_Metrics: + m_Width: 42.953125 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 56.375 + m_GlyphRect: + m_X: 349 + m_Y: 6 + m_Width: 44 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 50 + m_Metrics: + m_Width: 52.125 + m_Height: 52.125 + m_HorizontalBearingX: 3.1875 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 58.578125 + m_GlyphRect: + m_X: 123 + m_Y: 154 + m_Width: 53 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 51 + m_Metrics: + m_Width: 32.734375 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 41.609375 + m_GlyphRect: + m_X: 449 + m_Y: 68 + m_Width: 34 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 52 + m_Metrics: + m_Width: 55.75 + m_Height: 52.125 + m_HorizontalBearingX: 3.1875 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 59.5625 + m_GlyphRect: + m_X: 32 + m_Y: 303 + m_Width: 56 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 53 + m_Metrics: + m_Width: 39.1875 + m_Height: 50.40625 + m_HorizontalBearingX: 6.671875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 45.078125 + m_GlyphRect: + m_X: 377 + m_Y: 130 + m_Width: 40 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 54 + m_Metrics: + m_Width: 33.71875 + m_Height: 52.125 + m_HorizontalBearingX: 2.5625 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 39.328125 + m_GlyphRect: + m_X: 168 + m_Y: 6 + m_Width: 35 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 55 + m_Metrics: + m_Width: 37.84375 + m_Height: 50.40625 + m_HorizontalBearingX: 1.203125 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 40.25 + m_GlyphRect: + m_X: 399 + m_Y: 68 + m_Width: 39 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 56 + m_Metrics: + m_Width: 39.484375 + m_Height: 51.265625 + m_HorizontalBearingX: 6.03125 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 51.546875 + m_GlyphRect: + m_X: 192 + m_Y: 199 + m_Width: 40 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 57 + m_Metrics: + m_Width: 48.5 + m_Height: 50.40625 + m_HorizontalBearingX: 0.5625 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 49.765625 + m_GlyphRect: + m_X: 360 + m_Y: 454 + m_Width: 50 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 58 + m_Metrics: + m_Width: 63.96875 + m_Height: 51.265625 + m_HorizontalBearingX: 1.640625 + m_HorizontalBearingY: 51.265625 + m_HorizontalAdvance: 67.234375 + m_GlyphRect: + m_X: 214 + m_Y: 6 + m_Width: 65 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 59 + m_Metrics: + m_Width: 47 + m_Height: 50.40625 + m_HorizontalBearingX: 0.28125 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 47.5625 + m_GlyphRect: + m_X: 290 + m_Y: 6 + m_Width: 48 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 60 + m_Metrics: + m_Width: 45.796875 + m_Height: 50.40625 + m_HorizontalBearingX: 1.0625 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 47.859375 + m_GlyphRect: + m_X: 320 + m_Y: 131 + m_Width: 46 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 61 + m_Metrics: + m_Width: 36.78125 + m_Height: 50.40625 + m_HorizontalBearingX: 2.40625 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 41.671875 + m_GlyphRect: + m_X: 391 + m_Y: 281 + m_Width: 38 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 62 + m_Metrics: + m_Width: 13.28125 + m_Height: 68.15625 + m_HorizontalBearingX: 6.53125 + m_HorizontalBearingY: 56.796875 + m_HorizontalAdvance: 21.65625 + m_GlyphRect: + m_X: 6 + m_Y: 407 + m_Width: 14 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 63 + m_Metrics: + m_Width: 33.15625 + m_Height: 58.21875 + m_HorizontalBearingX: 1.484375 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 36.140625 + m_GlyphRect: + m_X: 37 + m_Y: 86 + m_Width: 34 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 64 + m_Metrics: + m_Width: 13.28125 + m_Height: 68.15625 + m_HorizontalBearingX: 1.84375 + m_HorizontalBearingY: 56.796875 + m_HorizontalAdvance: 21.65625 + m_GlyphRect: + m_X: 6 + m_Y: 327 + m_Width: 15 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 65 + m_Metrics: + m_Width: 21.59375 + m_Height: 14.90625 + m_HorizontalBearingX: 3.6875 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 28.890625 + m_GlyphRect: + m_X: 331 + m_Y: 255 + m_Width: 23 + m_Height: 16 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 66 + m_Metrics: + m_Width: 30.109375 + m_Height: 5.1875 + m_HorizontalBearingX: 3.828125 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 37.765625 + m_GlyphRect: + m_X: 112 + m_Y: 137 + m_Width: 31 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 67 + m_Metrics: + m_Width: 14.46875 + m_Height: 13.484375 + m_HorizontalBearingX: -7.234375 + m_HorizontalBearingY: 53.25 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 365 + m_Y: 255 + m_Width: 16 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 68 + m_Metrics: + m_Width: 36 + m_Height: 36.90625 + m_HorizontalBearingX: 2.984375 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 44.734375 + m_GlyphRect: + m_X: 130 + m_Y: 464 + m_Width: 37 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 69 + m_Metrics: + m_Width: 36 + m_Height: 53.953125 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 53.25 + m_HorizontalAdvance: 44.734375 + m_GlyphRect: + m_X: 81 + m_Y: 6 + m_Width: 37 + m_Height: 55 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 70 + m_Metrics: + m_Width: 35 + m_Height: 36.90625 + m_HorizontalBearingX: 2.984375 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 40.109375 + m_GlyphRect: + m_X: 161 + m_Y: 346 + m_Width: 36 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 71 + m_Metrics: + m_Width: 36 + m_Height: 53.953125 + m_HorizontalBearingX: 2.984375 + m_HorizontalBearingY: 53.25 + m_HorizontalAdvance: 44.734375 + m_GlyphRect: + m_X: 32 + m_Y: 237 + m_Width: 37 + m_Height: 55 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 72 + m_Metrics: + m_Width: 35.359375 + m_Height: 36.90625 + m_HorizontalBearingX: 2.984375 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 41.25 + m_GlyphRect: + m_X: 113 + m_Y: 349 + m_Width: 37 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 73 + m_Metrics: + m_Width: 23.9375 + m_Height: 53.671875 + m_HorizontalBearingX: 1.203125 + m_HorizontalBearingY: 53.671875 + m_HorizontalAdvance: 26.0625 + m_GlyphRect: + m_X: 125 + m_Y: 72 + m_Width: 25 + m_Height: 54 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 74 + m_Metrics: + m_Width: 35.859375 + m_Height: 51.75 + m_HorizontalBearingX: 2.984375 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 44.59375 + m_GlyphRect: + m_X: 144 + m_Y: 218 + m_Width: 37 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 75 + m_Metrics: + m_Width: 30.8125 + m_Height: 53.25 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 53.25 + m_HorizontalAdvance: 41.8125 + m_GlyphRect: + m_X: 82 + m_Y: 72 + m_Width: 32 + m_Height: 54 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 76 + m_Metrics: + m_Width: 8.671875 + m_Height: 53.671875 + m_HorizontalBearingX: 4.46875 + m_HorizontalBearingY: 53.671875 + m_HorizontalAdvance: 17.671875 + m_GlyphRect: + m_X: 129 + m_Y: 6 + m_Width: 10 + m_Height: 54 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 77 + m_Metrics: + m_Width: 14.90625 + m_Height: 69.21875 + m_HorizontalBearingX: -1.203125 + m_HorizontalBearingY: 53.671875 + m_HorizontalAdvance: 18.25 + m_GlyphRect: + m_X: 6 + m_Y: 6 + m_Width: 16 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 78 + m_Metrics: + m_Width: 33.578125 + m_Height: 53.25 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 53.25 + m_HorizontalAdvance: 38.265625 + m_GlyphRect: + m_X: 77 + m_Y: 156 + m_Width: 35 + m_Height: 54 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 79 + m_Metrics: + m_Width: 6.109375 + m_Height: 53.25 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 53.25 + m_HorizontalAdvance: 17.671875 + m_GlyphRect: + m_X: 150 + m_Y: 6 + m_Width: 7 + m_Height: 54 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 80 + m_Metrics: + m_Width: 51.828125 + m_Height: 36.203125 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 62.828125 + m_GlyphRect: + m_X: 230 + m_Y: 345 + m_Width: 53 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 81 + m_Metrics: + m_Width: 30.8125 + m_Height: 36.203125 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 41.8125 + m_GlyphRect: + m_X: 275 + m_Y: 456 + m_Width: 32 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 82 + m_Metrics: + m_Width: 37.140625 + m_Height: 36.90625 + m_HorizontalBearingX: 2.90625 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 43.03125 + m_GlyphRect: + m_X: 80 + m_Y: 464 + m_Width: 39 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 83 + m_Metrics: + m_Width: 36 + m_Height: 51.046875 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 44.796875 + m_GlyphRect: + m_X: 206 + m_Y: 282 + m_Width: 37 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 84 + m_Metrics: + m_Width: 36 + m_Height: 51.046875 + m_HorizontalBearingX: 2.984375 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 44.734375 + m_GlyphRect: + m_X: 239 + m_Y: 393 + m_Width: 37 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 85 + m_Metrics: + m_Width: 18.8125 + m_Height: 35.859375 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 35.859375 + m_HorizontalAdvance: 25.984375 + m_GlyphRect: + m_X: 484 + m_Y: 192 + m_Width: 20 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 86 + m_Metrics: + m_Width: 26.265625 + m_Height: 36.90625 + m_HorizontalBearingX: 2.5625 + m_HorizontalBearingY: 36.203125 + m_HorizontalAdvance: 31.953125 + m_GlyphRect: + m_X: 178 + m_Y: 462 + m_Width: 27 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 87 + m_Metrics: + m_Width: 23.84375 + m_Height: 45.734375 + m_HorizontalBearingX: 1.140625 + m_HorizontalBearingY: 45.375 + m_HorizontalAdvance: 27.046875 + m_GlyphRect: + m_X: 216 + m_Y: 459 + m_Width: 24 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 88 + m_Metrics: + m_Width: 30.109375 + m_Height: 36.203125 + m_HorizontalBearingX: 5.25 + m_HorizontalBearingY: 35.5 + m_HorizontalAdvance: 41.109375 + m_GlyphRect: + m_X: 318 + m_Y: 456 + m_Width: 31 + m_Height: 37 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 89 + m_Metrics: + m_Width: 37.921875 + m_Height: 35.5 + m_HorizontalBearingX: 0.421875 + m_HorizontalBearingY: 35.5 + m_HorizontalAdvance: 38.765625 + m_GlyphRect: + m_X: 434 + m_Y: 343 + m_Width: 39 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 90 + m_Metrics: + m_Width: 52.46875 + m_Height: 35.5 + m_HorizontalBearingX: 0.859375 + m_HorizontalBearingY: 35.5 + m_HorizontalAdvance: 54.171875 + m_GlyphRect: + m_X: 369 + m_Y: 344 + m_Width: 54 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 91 + m_Metrics: + m_Width: 36.71875 + m_Height: 35.5 + m_HorizontalBearingX: 0.421875 + m_HorizontalBearingY: 35.5 + m_HorizontalAdvance: 37.625 + m_GlyphRect: + m_X: 431 + m_Y: 192 + m_Width: 38 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 92 + m_Metrics: + m_Width: 37.921875 + m_Height: 50.34375 + m_HorizontalBearingX: 0.5625 + m_HorizontalBearingY: 35.5 + m_HorizontalAdvance: 38.84375 + m_GlyphRect: + m_X: 404 + m_Y: 6 + m_Width: 39 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 93 + m_Metrics: + m_Width: 28.828125 + m_Height: 35.5 + m_HorizontalBearingX: 2.84375 + m_HorizontalBearingY: 35.5 + m_HorizontalAdvance: 34.359375 + m_GlyphRect: + m_X: 473 + m_Y: 239 + m_Width: 30 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 94 + m_Metrics: + m_Width: 18.46875 + m_Height: 68.15625 + m_HorizontalBearingX: 2.125 + m_HorizontalBearingY: 56.796875 + m_HorizontalAdvance: 22.4375 + m_GlyphRect: + m_X: 33 + m_Y: 6 + m_Width: 19 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 95 + m_Metrics: + m_Width: 5.609375 + m_Height: 58.21875 + m_HorizontalBearingX: 6.53125 + m_HorizontalBearingY: 50.40625 + m_HorizontalAdvance: 18.609375 + m_GlyphRect: + m_X: 63 + m_Y: 6 + m_Width: 7 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 96 + m_Metrics: + m_Width: 18.46875 + m_Height: 68.15625 + m_HorizontalBearingX: 1.84375 + m_HorizontalBearingY: 56.796875 + m_HorizontalAdvance: 22.4375 + m_GlyphRect: + m_X: 6 + m_Y: 87 + m_Width: 20 + m_Height: 69 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 97 + m_Metrics: + m_Width: 19.59375 + m_Height: 8.453125 + m_HorizontalBearingX: 4.90625 + m_HorizontalBearingY: 24.78125 + m_HorizontalAdvance: 29.25 + m_GlyphRect: + m_X: 192 + m_Y: 262 + m_Width: 21 + m_Height: 9 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 98 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 17.109375 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 491 + m_Metrics: + m_Width: 44.65625 + m_Height: 10.640625 + m_HorizontalBearingX: 3.265625 + m_HorizontalBearingY: 10.078125 + m_HorizontalAdvance: 51.1875 + m_GlyphRect: + m_X: 243 + m_Y: 259 + m_Width: 45 + m_Height: 12 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 516 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 32 + m_GlyphIndex: 3 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 33 + m_GlyphIndex: 4 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 34 + m_GlyphIndex: 5 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 35 + m_GlyphIndex: 6 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 36 + m_GlyphIndex: 7 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 37 + m_GlyphIndex: 8 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 38 + m_GlyphIndex: 9 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 39 + m_GlyphIndex: 10 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 40 + m_GlyphIndex: 11 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 41 + m_GlyphIndex: 12 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 42 + m_GlyphIndex: 13 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 43 + m_GlyphIndex: 14 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 44 + m_GlyphIndex: 15 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 45 + m_GlyphIndex: 16 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 46 + m_GlyphIndex: 17 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 47 + m_GlyphIndex: 18 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 48 + m_GlyphIndex: 19 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 49 + m_GlyphIndex: 20 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 50 + m_GlyphIndex: 21 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 51 + m_GlyphIndex: 22 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 52 + m_GlyphIndex: 23 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 53 + m_GlyphIndex: 24 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 54 + m_GlyphIndex: 25 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 55 + m_GlyphIndex: 26 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 56 + m_GlyphIndex: 27 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 57 + m_GlyphIndex: 28 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 58 + m_GlyphIndex: 29 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 59 + m_GlyphIndex: 30 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 60 + m_GlyphIndex: 31 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 61 + m_GlyphIndex: 32 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 62 + m_GlyphIndex: 33 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 63 + m_GlyphIndex: 34 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 64 + m_GlyphIndex: 35 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65 + m_GlyphIndex: 36 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 66 + m_GlyphIndex: 37 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 67 + m_GlyphIndex: 38 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 68 + m_GlyphIndex: 39 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 69 + m_GlyphIndex: 40 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 70 + m_GlyphIndex: 41 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 71 + m_GlyphIndex: 42 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 72 + m_GlyphIndex: 43 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 73 + m_GlyphIndex: 44 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 74 + m_GlyphIndex: 45 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 75 + m_GlyphIndex: 46 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 76 + m_GlyphIndex: 47 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 77 + m_GlyphIndex: 48 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 78 + m_GlyphIndex: 49 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 79 + m_GlyphIndex: 50 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 80 + m_GlyphIndex: 51 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 81 + m_GlyphIndex: 52 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 82 + m_GlyphIndex: 53 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 83 + m_GlyphIndex: 54 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 84 + m_GlyphIndex: 55 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 85 + m_GlyphIndex: 56 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 86 + m_GlyphIndex: 57 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 87 + m_GlyphIndex: 58 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 88 + m_GlyphIndex: 59 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 89 + m_GlyphIndex: 60 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 90 + m_GlyphIndex: 61 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 91 + m_GlyphIndex: 62 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 92 + m_GlyphIndex: 63 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 93 + m_GlyphIndex: 64 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 94 + m_GlyphIndex: 65 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 96 + m_GlyphIndex: 67 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 97 + m_GlyphIndex: 68 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 98 + m_GlyphIndex: 69 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 99 + m_GlyphIndex: 70 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 100 + m_GlyphIndex: 71 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 101 + m_GlyphIndex: 72 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 102 + m_GlyphIndex: 73 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 103 + m_GlyphIndex: 74 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 104 + m_GlyphIndex: 75 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 105 + m_GlyphIndex: 76 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 106 + m_GlyphIndex: 77 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 107 + m_GlyphIndex: 78 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 108 + m_GlyphIndex: 79 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 109 + m_GlyphIndex: 80 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 110 + m_GlyphIndex: 81 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 111 + m_GlyphIndex: 82 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 112 + m_GlyphIndex: 83 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 113 + m_GlyphIndex: 84 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 114 + m_GlyphIndex: 85 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 115 + m_GlyphIndex: 86 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 116 + m_GlyphIndex: 87 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 117 + m_GlyphIndex: 88 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 118 + m_GlyphIndex: 89 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 119 + m_GlyphIndex: 90 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 120 + m_GlyphIndex: 91 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 121 + m_GlyphIndex: 92 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 122 + m_GlyphIndex: 93 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 123 + m_GlyphIndex: 94 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 124 + m_GlyphIndex: 95 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 125 + m_GlyphIndex: 96 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 126 + m_GlyphIndex: 97 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 160 + m_GlyphIndex: 98 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8203 + m_GlyphIndex: 516 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 491 + m_Scale: 1 + m_AtlasTextures: + - {fileID: 28126284263176200} + m_AtlasTextureIndex: 0 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 27 + m_Height: 81 + - m_X: 0 + m_Y: 81 + m_Width: 31 + m_Height: 80 + - m_X: 27 + m_Y: 0 + m_Width: 30 + m_Height: 80 + - m_X: 0 + m_Y: 161 + m_Width: 26 + m_Height: 80 + - m_X: 0 + m_Y: 241 + m_Width: 26 + m_Height: 80 + - m_X: 0 + m_Y: 321 + m_Width: 26 + m_Height: 80 + - m_X: 0 + m_Y: 401 + m_Width: 25 + m_Height: 80 + - m_X: 0 + m_Y: 481 + m_Width: 32 + m_Height: 30 + - m_X: 25 + m_Y: 401 + m_Width: 42 + m_Height: 75 + - m_X: 32 + m_Y: 476 + m_Width: 42 + m_Height: 33 + - m_X: 26 + m_Y: 161 + m_Width: 45 + m_Height: 70 + - m_X: 31 + m_Y: 80 + m_Width: 45 + m_Height: 70 + - m_X: 57 + m_Y: 0 + m_Width: 18 + m_Height: 70 + - m_X: 75 + m_Y: 0 + m_Width: 48 + m_Height: 66 + - m_X: 26 + m_Y: 231 + m_Width: 48 + m_Height: 66 + - m_X: 71 + m_Y: 150 + m_Width: 46 + m_Height: 65 + - m_X: 76 + m_Y: 66 + m_Width: 43 + m_Height: 65 + - m_X: 76 + m_Y: 131 + m_Width: 30 + m_Height: 18 + - m_X: 106 + m_Y: 131 + m_Width: 42 + m_Height: 17 + - m_X: 119 + m_Y: 66 + m_Width: 36 + m_Height: 65 + - m_X: 123 + m_Y: 0 + m_Width: 21 + m_Height: 65 + - m_X: 144 + m_Y: 0 + m_Width: 18 + m_Height: 65 + - m_X: 26 + m_Y: 297 + m_Width: 67 + m_Height: 64 + - m_X: 26 + m_Y: 361 + m_Width: 38 + m_Height: 36 + - m_X: 64 + m_Y: 361 + m_Width: 25 + m_Height: 33 + - m_X: 74 + m_Y: 215 + m_Width: 64 + m_Height: 64 + - m_X: 117 + m_Y: 148 + m_Width: 64 + m_Height: 64 + - m_X: 67 + m_Y: 394 + m_Width: 61 + m_Height: 64 + - m_X: 89 + m_Y: 361 + m_Width: 18 + m_Height: 30 + - m_X: 74 + m_Y: 458 + m_Width: 50 + m_Height: 49 + - m_X: 124 + m_Y: 458 + m_Width: 48 + m_Height: 49 + - m_X: 93 + m_Y: 279 + m_Width: 60 + m_Height: 64 + - m_X: 107 + m_Y: 343 + m_Width: 48 + m_Height: 49 + - m_X: 128 + m_Y: 392 + m_Width: 59 + m_Height: 64 + - m_X: 138 + m_Y: 212 + m_Width: 48 + m_Height: 64 + - m_X: 153 + m_Y: 276 + m_Width: 47 + m_Height: 64 + - m_X: 155 + m_Y: 340 + m_Width: 47 + m_Height: 49 + - m_X: 172 + m_Y: 456 + m_Width: 38 + m_Height: 49 + - m_X: 187 + m_Y: 389 + m_Width: 46 + m_Height: 64 + - m_X: 210 + m_Y: 453 + m_Width: 35 + m_Height: 58 + - m_X: 155 + m_Y: 65 + m_Width: 46 + m_Height: 64 + - m_X: 162 + m_Y: 0 + m_Width: 46 + m_Height: 64 + - m_X: 181 + m_Y: 129 + m_Width: 42 + m_Height: 64 + - m_X: 201 + m_Y: 64 + m_Width: 78 + m_Height: 63 + - m_X: 208 + m_Y: 0 + m_Width: 76 + m_Height: 63 + - m_X: 186 + m_Y: 193 + m_Width: 51 + m_Height: 63 + - m_X: 186 + m_Y: 256 + m_Width: 32 + m_Height: 20 + - m_X: 200 + m_Y: 276 + m_Width: 48 + m_Height: 63 + - m_X: 202 + m_Y: 339 + m_Width: 22 + m_Height: 49 + - m_X: 224 + m_Y: 339 + m_Width: 64 + m_Height: 48 + - m_X: 233 + m_Y: 387 + m_Width: 48 + m_Height: 63 + - m_X: 245 + m_Y: 450 + m_Width: 24 + m_Height: 59 + - m_X: 223 + m_Y: 127 + m_Width: 46 + m_Height: 63 + - m_X: 269 + m_Y: 450 + m_Width: 43 + m_Height: 48 + - m_X: 281 + m_Y: 387 + m_Width: 46 + m_Height: 63 + - m_X: 312 + m_Y: 450 + m_Width: 42 + m_Height: 48 + - m_X: 237 + m_Y: 190 + m_Width: 46 + m_Height: 63 + - m_X: 269 + m_Y: 127 + m_Width: 45 + m_Height: 63 + - m_X: 237 + m_Y: 253 + m_Width: 56 + m_Height: 23 + - m_X: 283 + m_Y: 190 + m_Width: 42 + m_Height: 63 + - m_X: 248 + m_Y: 276 + m_Width: 22 + m_Height: 63 + - m_X: 270 + m_Y: 276 + m_Width: 62 + m_Height: 62 + - m_X: 293 + m_Y: 253 + m_Width: 23 + m_Height: 23 + - m_X: 288 + m_Y: 338 + m_Width: 38 + m_Height: 48 + - m_X: 326 + m_Y: 338 + m_Width: 37 + m_Height: 48 + - m_X: 327 + m_Y: 386 + m_Width: 62 + m_Height: 62 + - m_X: 354 + m_Y: 448 + m_Width: 61 + m_Height: 62 + - m_X: 279 + m_Y: 63 + m_Width: 59 + m_Height: 62 + - m_X: 284 + m_Y: 0 + m_Width: 59 + m_Height: 62 + - m_X: 314 + m_Y: 125 + m_Width: 57 + m_Height: 62 + - m_X: 338 + m_Y: 62 + m_Width: 55 + m_Height: 62 + - m_X: 343 + m_Y: 0 + m_Width: 55 + m_Height: 62 + - m_X: 325 + m_Y: 187 + m_Width: 53 + m_Height: 62 + - m_X: 325 + m_Y: 249 + m_Width: 34 + m_Height: 27 + - m_X: 332 + m_Y: 276 + m_Width: 53 + m_Height: 62 + - m_X: 363 + m_Y: 338 + m_Width: 65 + m_Height: 47 + - m_X: 389 + m_Y: 385 + m_Width: 52 + m_Height: 62 + - m_X: 371 + m_Y: 124 + m_Width: 51 + m_Height: 62 + - m_X: 393 + m_Y: 62 + m_Width: 50 + m_Height: 62 + - m_X: 398 + m_Y: 0 + m_Width: 50 + m_Height: 62 + - m_X: 359 + m_Y: 249 + m_Width: 27 + m_Height: 26 + - m_X: 385 + m_Y: 275 + m_Width: 49 + m_Height: 62 + - m_X: 428 + m_Y: 337 + m_Width: 50 + m_Height: 47 + - m_X: 378 + m_Y: 186 + m_Width: 47 + m_Height: 62 + - m_X: 422 + m_Y: 124 + m_Width: 45 + m_Height: 62 + - m_X: 443 + m_Y: 62 + m_Width: 45 + m_Height: 62 + - m_X: 448 + m_Y: 0 + m_Width: 43 + m_Height: 62 + - m_X: 491 + m_Y: 0 + m_Width: 19 + m_Height: 62 + - m_X: 415 + m_Y: 447 + m_Width: 42 + m_Height: 62 + - m_X: 441 + m_Y: 384 + m_Width: 41 + m_Height: 62 + - m_X: 482 + m_Y: 124 + m_Width: 28 + m_Height: 62 + - m_X: 478 + m_Y: 186 + m_Width: 31 + m_Height: 47 + - m_X: 425 + m_Y: 233 + m_Width: 42 + m_Height: 42 + - m_X: 425 + m_Y: 186 + m_Width: 49 + m_Height: 47 + - m_X: 467 + m_Y: 233 + m_Width: 41 + m_Height: 47 + m_FreeGlyphRects: + - m_X: 25 + m_Y: 476 + m_Width: 7 + m_Height: 5 + - m_X: 27 + m_Y: 80 + m_Width: 4 + m_Height: 1 + - m_X: 31 + m_Y: 150 + m_Width: 40 + m_Height: 11 + - m_X: 57 + m_Y: 70 + m_Width: 19 + m_Height: 10 + - m_X: 75 + m_Y: 66 + m_Width: 1 + m_Height: 14 + - m_X: 71 + m_Y: 215 + m_Width: 3 + m_Height: 16 + - m_X: 76 + m_Y: 149 + m_Width: 41 + m_Height: 1 + - m_X: 106 + m_Y: 148 + m_Width: 11 + m_Height: 2 + - m_X: 26 + m_Y: 397 + m_Width: 41 + m_Height: 4 + - m_X: 64 + m_Y: 394 + m_Width: 3 + m_Height: 7 + - m_X: 67 + m_Y: 458 + m_Width: 7 + m_Height: 18 + - m_X: 74 + m_Y: 279 + m_Width: 19 + m_Height: 18 + - m_X: 89 + m_Y: 391 + m_Width: 18 + m_Height: 3 + - m_X: 93 + m_Y: 343 + m_Width: 14 + m_Height: 18 + - m_X: 89 + m_Y: 392 + m_Width: 39 + m_Height: 2 + - m_X: 117 + m_Y: 212 + m_Width: 21 + m_Height: 3 + - m_X: 138 + m_Y: 276 + m_Width: 15 + m_Height: 3 + - m_X: 153 + m_Y: 340 + m_Width: 2 + m_Height: 3 + - m_X: 128 + m_Y: 456 + m_Width: 44 + m_Height: 2 + - m_X: 155 + m_Y: 389 + m_Width: 32 + m_Height: 3 + - m_X: 32 + m_Y: 509 + m_Width: 178 + m_Height: 2 + - m_X: 74 + m_Y: 507 + m_Width: 136 + m_Height: 4 + - m_X: 172 + m_Y: 505 + m_Width: 38 + m_Height: 6 + - m_X: 187 + m_Y: 453 + m_Width: 23 + m_Height: 3 + - m_X: 123 + m_Y: 65 + m_Width: 32 + m_Height: 1 + - m_X: 148 + m_Y: 131 + m_Width: 33 + m_Height: 17 + - m_X: 155 + m_Y: 129 + m_Width: 26 + m_Height: 19 + - m_X: 162 + m_Y: 64 + m_Width: 39 + m_Height: 1 + - m_X: 181 + m_Y: 193 + m_Width: 5 + m_Height: 19 + - m_X: 200 + m_Y: 339 + m_Width: 2 + m_Height: 1 + - m_X: 202 + m_Y: 388 + m_Width: 31 + m_Height: 1 + - m_X: 224 + m_Y: 387 + m_Width: 9 + m_Height: 2 + - m_X: 233 + m_Y: 450 + m_Width: 12 + m_Height: 3 + - m_X: 201 + m_Y: 127 + m_Width: 22 + m_Height: 2 + - m_X: 223 + m_Y: 190 + m_Width: 14 + m_Height: 3 + - m_X: 218 + m_Y: 256 + m_Width: 19 + m_Height: 20 + - m_X: 270 + m_Y: 338 + m_Width: 18 + m_Height: 1 + - m_X: 288 + m_Y: 386 + m_Width: 39 + m_Height: 1 + - m_X: 245 + m_Y: 510 + m_Width: 266 + m_Height: 1 + - m_X: 245 + m_Y: 509 + m_Width: 109 + m_Height: 2 + - m_X: 269 + m_Y: 498 + m_Width: 85 + m_Height: 13 + - m_X: 327 + m_Y: 448 + m_Width: 27 + m_Height: 2 + - m_X: 208 + m_Y: 63 + m_Width: 71 + m_Height: 1 + - m_X: 279 + m_Y: 125 + m_Width: 35 + m_Height: 2 + - m_X: 284 + m_Y: 62 + m_Width: 54 + m_Height: 1 + - m_X: 314 + m_Y: 187 + m_Width: 11 + m_Height: 3 + - m_X: 316 + m_Y: 253 + m_Width: 9 + m_Height: 23 + - m_X: 363 + m_Y: 385 + m_Width: 26 + m_Height: 1 + - m_X: 338 + m_Y: 124 + m_Width: 33 + m_Height: 1 + - m_X: 359 + m_Y: 275 + m_Width: 26 + m_Height: 1 + - m_X: 385 + m_Y: 337 + m_Width: 43 + m_Height: 1 + - m_X: 371 + m_Y: 186 + m_Width: 7 + m_Height: 1 + - m_X: 510 + m_Y: 0 + m_Width: 1 + m_Height: 511 + - m_X: 415 + m_Y: 509 + m_Width: 96 + m_Height: 2 + - m_X: 389 + m_Y: 447 + m_Width: 26 + m_Height: 1 + - m_X: 428 + m_Y: 384 + m_Width: 13 + m_Height: 1 + - m_X: 441 + m_Y: 446 + m_Width: 70 + m_Height: 1 + - m_X: 457 + m_Y: 446 + m_Width: 54 + m_Height: 65 + - m_X: 488 + m_Y: 62 + m_Width: 23 + m_Height: 62 + - m_X: 467 + m_Y: 124 + m_Width: 15 + m_Height: 62 + - m_X: 509 + m_Y: 186 + m_Width: 2 + m_Height: 325 + - m_X: 378 + m_Y: 248 + m_Width: 47 + m_Height: 1 + - m_X: 386 + m_Y: 248 + m_Width: 39 + m_Height: 27 + - m_X: 478 + m_Y: 280 + m_Width: 33 + m_Height: 104 + - m_X: 482 + m_Y: 280 + m_Width: 29 + m_Height: 231 + - m_X: 508 + m_Y: 233 + m_Width: 3 + m_Height: 278 + - m_X: 434 + m_Y: 280 + m_Width: 77 + m_Height: 57 + - m_X: 434 + m_Y: 275 + m_Width: 33 + m_Height: 62 + - m_X: 474 + m_Y: 124 + m_Width: 4 + m_Height: 109 + m_fontInfo: + Name: + PointSize: 0 + Scale: 0 + CharacterCount: 0 + LineHeight: 0 + Baseline: 0 + Ascender: 0 + CapHeight: 0 + Descender: 0 + CenterLine: 0 + SuperscriptOffset: 0 + SubscriptOffset: 0 + SubSize: 0 + Underline: 0 + UnderlineThickness: 0 + strikethrough: 0 + strikethroughThickness: 0 + TabWidth: 0 + Padding: 0 + AtlasWidth: 0 + AtlasHeight: 0 + atlas: {fileID: 0} + m_AtlasWidth: 512 + m_AtlasHeight: 512 + m_AtlasPadding: 5 + m_AtlasRenderMode: 4165 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: [] + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: 0774b14b39d939b4f80ff528506c94ba + pointSizeSamplingMode: 0 + pointSize: 71 + padding: 5 + packingMode: 0 + atlasWidth: 512 + atlasHeight: 512 + characterSetSelectionMode: 0 + characterSequence: 32 - 126, 160, 8203, 8230, 9633 + referencedFontAssetGUID: + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4165 + includeFontFeatures: 0 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: [] + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!21 &21319758026491476 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: EuclidCircularB-Regular SDF Material + m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 28126284263176200} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _Diffuse: 0.5 + - _FaceDilate: 0 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 6 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.8333333 + - _ScaleRatioB: 0.6770833 + - _ScaleRatioC: 0.6770833 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 512 + - _TextureWidth: 512 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} +--- !u!28 &28126284263176200 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: EuclidCircularB-Regular SDF Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + serializedVersion: 2 + m_Width: 512 + m_Height: 512 + m_CompleteImageSize: 262144 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 1 + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_AlphaIsTransparency: 0 + m_ImageCount: 1 + m_TextureDimension: 2 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 0 + m_WrapV: 0 + m_WrapW: 0 + m_LightmapFormat: 0 + m_ColorSpace: 0 + image data: 262144 + _typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c1314161513100b09020000000000000000000000000000000000000000000000000000040a0c1011121212120f0d07000000000000010b11131c1c1c1c1c0d0b05000000000000000000000b0b0b0b0b08060000000000070d0f121517191715130e0c06000000000000000000000000000000000000000000080e1020202020201d1b140b0000000000000000080e1020202020201d1b140b000000000000000000000000000000000001080b0f13171a1b1c1c1b1918130e0b07000000000000000000000000000000000000000000000000000000000000000812181a202020202015130d03000000000000000000000000000000000000080e1020202020201f0b080100000000000000000000000000000000000000010a1012202020202020201a0b0801000000000000000000000000000000000000000000000000060c0e1f2020202020201d0c0a03000000000000000a1012202020202020110f09000000000000000000000000000000000000000000000000020c121420202020201816100600000000000000000000000000010a10121d1d1d1d1d1d110f0a0000000000000000000000000000000000000000000000000000000000000a1012202020202020202020202020202020202020202020202020202020202020181610060000000000000a1012202020202020110f0900000000000000000c171f21282a2b2a2925201d150a0700000000000000000000000000000000000000000002080c181f2225262727272724221b100200000005131e252831313131312220190d000000000000080e1020202020201d1b140b050b101b2224272a2d2e2c2a282320190e0b050000000000000000000000000000000003111c23253535353535322f281c0e000000000003111c23253535353535322f281c0e00000000000000000000000000000808141c2024282c2f303132302f2d2823201c1308050000000000000000000000000000000000000000000000000000000b19252d2f35353535352a2720150700000000000000000000000000000003111c2325353535353534201d1509000000000000000000000000000000000005121d25273535353535353530201d1409000000000000000000000000000000000000000000010f1a21233435353535353532211e170b0000000004121d242735353535353526231c110300000000000000000000000000000000000000000006141f272935353535352d2a231709000000000000000000000005131e252832323232323227241d1204000000000000000000000000000000000000000000000000000004121d24273535353535353535353535353535353535353535353535353535353535352d2a23170900000004121d242735353535353526231c110300000000000c1c2a33373d3f40403e3a363228211a0f0100000000000000000000000000000000000009151d202a33373a3c3d3d3d3d3a362e20100000011323313a3d464646464638342b1d0d00000003111c23253535353535322f281c1820222d36393c3f4243423f3d38352c2220190e03000000000000000000000000000011212e373a4a4a4a4a4a47443a2c1c0b0000000011212e373a4a4a4a4a4a47443a2c1c0b000000000000000000000007111c23263035393d41444547474544423e3935302520190d040000000000000000000000000000000000000000000000000019293741454a4a4a4a4a3f3c32251503000000000000000000000000000011212e373a4a4a4a4a4a49353127190900000000000000000000000000000001122330393c4a4a4a4a4a4a4a45353126190900000000000000000000000000000000000000000f1f2c3539494a4a4a4a4a4a473633291b0b000000122230393c4a4a4a4a4a4a3b382f22110000000000000000000000000000000000000000031424323b3e4a4a4a4a4a423f3527170600000000000000000001132330393d4747474747473c393022120000000000000000000000000000000000000000000000000000122230393c4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a423f352717060000122230393c4a4a4a4a4a4a3b382f22110000000004172a3a474c53545655534f4b4538362d1c1408000000000000000000000000000000000d192731363a474c4f51525252524f4a3e2e1b07000b1e31414e525c5c5c5c5c4d483c2b1905000011212e373a4a4a4a4a4a47443a1e2b34373e4a4e525457595755524d493c38352b1e160b000000000000000000000000081c2e3f4b5060606060605d574a3a2814000000081c2e3f4b5060606060605d574a3a281400000000000000000008131c202f3836434b4f5256595b5c5c5b5957534e4a4336342b1f170c00000000000000000000000000000000000000000000000a1a3747545a6060606060544f4332200d00000000000000000000000000081c2e3f4b4f60606060605f4b443727150100000000000000000000000000000a1d30414d52606060606060605a4b44372614010000000000000000000000000000000000000b1b2c3d494e5f6060606060605c4b4639291703000a1d30404d51606060606060504c402f1c0900000000000000000000000000000000000000102132424f5460606060605852453523100000000000000000000a1e30414d525c5c5c5c5c5c514d40301d0a0000000000000000000000000000000000000000000000000a1d30404d51606060606060606060606060606060606060606060606060606060606060585245352310000a1d30404d51606060606060504c402f1c090000000a1f3347586168696b6a686560564e4a3d3026180800000000000000000000000000000d1d2a37444b535861656667676767645c4a36220d0011253a4e60687171717171625a4834200b00081c2e3f4b5060606060605d574a323b484d545c64676a6c6e6c6a68635a554d483c32281b1104000000000000000000000e23374b5d657575757575726857442f1b0600000e23374b5d657575757575726857442f1b00000000000000010f182530353f4c50546064686c6f707171706e6d686360544d483c33291c110300000000000000000000000000000000000000000316283854656f75757575756a614f3c2710000000000000000000000000000e23374b5d65757575757574605544311d0800000000000000000000000000001025394d5f67757575757575756f605544311d11000000000000000000000000000000000003162839495b637475757575757572615746331e0a001024394d5f67757575757575665e4c38230f0000000000000000000000000000000000000d1d2e3f4f606975757575756d63523f2a160000000000000000001025394d5f67727272727272665e4d3924110000000000000000000000000000000000000000000000001024394d5f677575757575757575757575757575757575757575757575757575757575756d63523f2a16001024394d5f67757575757575665e4c38230f0000000c21374c61767d7f807f7e7a756d635b4b43362614010000000000000000000000000a1a2a3b4855606871777a7b7c7c7c7d7a644f3a240f0013283d52687e868686868578624d38220d000e23374b5d657575757575726857454b59626a72797c7f8283817f7d78716a625a4b46392f22130600000000000000000010253a50657b8a8a8a8a8a87725d47321d08000010253a50657a8a8a8a8a8a87725d47321d00000000000006141f2d36434a525d656d74797d81848586878584827d79746b625a4c473a2f21120500000000000000000000000000000000000000091e3245566f838a8a8a8a8a7f6a543e2d1b070000000000000000000000021528384f657b8a8a8a8a8a8a73604b35200b000000000000000000000000000012273c52677c8a8a8a8a8a8a8a8473604b402f1d0d00000000000000000000000000000002101e32465763798a8a8a8a8a8a8a8676614b36210c0012273c51677c8a8a8a8a8a8a7b66503b2611000000000000000000000000000000000009192a3b4b5d697e8a8a8a8a8a816d58422d1800000000000000000012283d52677d8687878787877d66513f2f1c08000000000000000000000000000000000000000000000012273c51677c8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a816d58422d180012273c51677d8a8a8a8a8a8a7c66503b26110000000f24394f64798e949595938f8a82796a605443301c15000000000000000000000002152838485962747e868b8f9192929292816c57422c1700152a3f546a7f949b9b9b8d78634d38230e0010253a50657b8a8a8a8a8a87725d57606c777f878e919497989794928d867f786b61574c4031241507000000000000000010253a50657a8f9f9f9f9c87725d47321d08000010253a50657a8f9f9f9f9c87725d47321d0000000000081624313d4a546067717b82888e9296999a9c9c9a9997938e8880786d61584c40302312040000000000000000000000000000000000000b21364b60758a9f9f9f9f9c86715c4a3622090000000000000000000000091d3245566c82979f9f9fa88f7a654f3a251000000000000000000000000000001025394d5f6c8196a39f9f9fa295806b5e4c3c2b19090000000000000000000000000000102031424b6175869ca89f9f9f9f8a79635746331e0a0012273c51677c919f9f9f9f907b66503b261100000000000000000000000000000000011527374859657b8c9f9f9f9f97826d58422d180000000000000000000c21364c6176899c9c9c9c9b85715d4c382310000000000000000000000000000000000000000000000012273c51677c919f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f97826d58422d180012273c51677c919f9f9f9f907b66503b26110000000f24394f64798ea4abaaa8a99f978c7f72604b43331d0d00000000000000000000091d324556627786939c9faba6a7a7a797816c57422c1700152a3f546a7f94a9b1a28d78634d38230e0010253a50657a8f9f9f9f9c87725d6575818b949ca4a7a9acaeacaaa7a49c958a8075665e4e42332515050000000000000010253a50657a8fa5b5b29c87725d47321d08000010253a50657a8fa5b5b29c87725d47321d0000000008162634424e5c64727d8690979da6a7abaeb0b1b1b0aeaca8a69e958b8276655e4d4130221200000000000000000000000000000000000010263b50657b90a9bab5b6a48e79644f37261401000000000000000000000b20364b6075899eb3b5c6aa95806a553a291704000000000000000000000000000a1d30414b6074859ba7b8c0b59f8d7c665a48372715020000000000000000000000000c1c2d3e4e606d8298a4b6c2b19f927d685b4a392917030012273c51677c91a6b5b5a5907b66503b2611000000000000000000000000000000010f1d3144556277889daabbb5ad97826d58422d180000000000000000000a1f3346586b8096a9b1b1a3907b65503e2d1b070000000000000000000000000000000000000000000012273c51677c91a6b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5ad97826d58422d180012273c51677c91a6b5b5a5907b66503b26110000000f24394f64798ea4b6b9c7bab4ab9f95826d61503b2b18050000000000000000011426364b6074869ca4b1b5bab4b1afac97816c57422c1700152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5b5b29c8772677b87969faab1b6bbb4b3b5bcc9c2b5b1a99f95887c686050433323130100000000000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000005162634455160687985929ca4acb3b8c4c1c3c0bebcbdc0c2c5b8b3aa9f97887c675f4d402f1c0c0000000000000000000000000000000005182b3b566b8196abc7d3c2ab96816b5544311d080000000000000000000417293a51667c91a7b8ccc5b09b85705847331f0a0000000000000000000000000001121d3145566278899eabbcbcab9e8978625544311d12000000000000000000000008182a3a4a5c687e93a0b2c2b5a497826d5f4e3d2d1b0b000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000f1f30414b6073849aa6b7c8c2ad97826d58422d180000000000000000000417293a4d62778b9fb4c1af9a846f5c4a36220e0000000000000000000000000000000000000000000012273c51677c91a6bccacbc2bebababababababababababababababababababababaad97826d58422d180012273c51677c91a6bcbba5907b66503b26110000000f24394f64798ea0a1a4aab4babcb4a0947f6a594834200b0000000000000000081c3043546a7f95a4b5b9b3a99f9c9a9a97816c57422c1700152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87727d8d9ca5b4b3aca5aa9f9e9faba6adb3b9bab4a69d8c7e6a615041301f0f00000000000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d0000001323334451636c7e8c9ba3b1b5c2c8c2b5b1aeaba9a7a8aaafb4bac7bbb4a69d8c7d675e4c3a2a18040000000000000000000000000000000b2034485971869cb1c6dbc8b39d8874604b35200b0000000000000000000a1f3346586e8399aec5d6cab49f8b76614c37210c000000000000000000000000000002152738485a667c8d9fb5c0b8a79b8574604b40301e0e000000000000000000001325364758647a8b9fb4beb9a89c8675604b41311f0f00000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000b1b2d3d4d5f6c8196a2b4c4d4c2ad97826d58422d18000000000000000000000b203448596d8297abbcb3a28e79644f3c2c190600000000000000000000000000000000000000000012273c51677c91a6bccbbbaea9a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a597826d58422d180012273c51677c91a6bcbba5907b66503b26110000000f24394f647a8c8a8c8e959fa9b8beb49f8a77624d37220e00000000000000000b20354b6074889db3b9a89e928a878585857f69543f291400152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c877b8c9fabb4a69d97908c8a898a8c91989ea7b4bbb7aa9f927f6a5f4d3d2c1909000000000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000c1c304150626c81939faab4c1c5b9b3aba39b9896939293959a9fa9b3b9c4b7aa9f8c7c665847331f0e0000000000000000000000000000000d22374c62778ca4b5c9decbb8a6907b66503929160300000000000000000c21364c61768a9fb4c9dfcfbcab917c67513c27120000000000000000000000000000000a1a2b3c4c5e6b8095a2b4c4b4a396816c5f4d3c2c1a0a00000000000000000d1c3043546176879da9babdb49e8a796356453223130100000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000081829394a5b677d919eb0c0d1d7c2ad97826d58422d180000000000000000000005182b3b4e63798c9fb5c0ad98836e5a4935200c00000000000000000000000000000000000000000012273c51677c91a6bcc2ae9d948f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f816d58422d180012273c51677c91a6bcbba5907b66503b26110000000b20364b607476757679808b9da6b8baa996816c563c2c1906000000000000000f253a4f647a8fa6b7b39e8a7d747170707069614f3b271200152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab39e8a899eaaa89e9488817b77757375777c8289969faab8bbb49d927d675b49372614010000000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000417293a4d5f6b80959fb4bbc8bdb0a79e968e8683817e7c7d80848a949ea7b5c1bbaa9e8977614c3c2c1906000000000000000000000000000013253652677d92a7c2d2e5d5c4ad98826d5746321e0a0000000000000005192b3c53687d93a9bacde2d9c9ac97826c573c2c19060000000000000000000000000000000e1e2f404b6073849aa6b7c1b09e917c675a49382816020000000000000d1d2e3f4a60728399a5b7c1b09f917d675b49382816050000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000132536465763798a9eb4bdcdded7c2ad97826d58422d1800000000000000000000000d2135495b6e8399aec0b49f8b78624d3a2a1804000000000000000000000000000000000000000012273c51677c91a6bcbea9947f7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a78634e38230e0012273c51677c91a6bcbba5907b66503b2611000000091d31455660616061646b79889db3c7b29d87725a4935200c0000000000000013293e53687e93a8c4a9937e6960545a5a5a544f43321f0c00152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab9a89e9ea8a49c8a7f756c656260556062666d76818b9ea6b7bcb49e8a79635544311d090000000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000a1f334758677d919eafbdc6b9b39e96898179716e6b6967686b6f767f899ba3b5c2b8a797816c5a4935200c00000000000000000000000000071c3043546d8298adc2d8dedac9b49f8a76614b36210d000000000000000b2035485a70859aafc7d7dbddc7b29d87725b4935210c00000000000000000000000000000000121d3144556277889daabbbdb39e8978635645321e13010000000009192b3b4b5d6a7f94a1b3c3b5a396816c5f4d3d2c1a0a000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000d1c3043546175869ca8b9cddee0d7c2ad97826d58422d180000000000000000000000061a2c3d4f647a8fa2b4bbaa97816c5947341f0b000000000000000000000000000000000000000012273c51677c91a6bcbba5907b6665656565656565656565656565656565656565656565635b4935210c0012273c51677c91a6bcbba5907b66503b261100000002152738454b4c4b4c4f5b677d92abbcb6a58d78624d38230d00000000000001172c41566c8196abb9a88c76614c433645453f3b3224140300152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bac6b9b3b4a39b86786a6056504c4b444b4d5158616c7a889da5b7b9a89c8673604b3727150100000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000c21374c6176889eb3bcc5b8a89e9181756c635b59565452535558616977859ba4b5c5b49f8c78634d38230e000000000000000000000000000b20354a6074889eb3c8cdc9c5c8baa8927d67523b2b18050000000000000d22384d62788c9fb5cac9c5c8cab7a58d78634d38230e00000000000000000000000000000000011426374759657b8c9fb4bfb9a89b8574604b41311f0f000000011426374859657b8c9fb4bfb8a79b8574604b41301f0e00000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000d1d2f3f4a60728399a4b6c6c5c8ccd5c2ad97826d58422d180000000000000000000000000f22374b5c70859ab0c2b49f8a77614c392816030000000000000000000000000000000000000012273c51677c91a6bcbba5907b66505050505050505050505050505050505050505050504e493d2c1a060012273c51677c91a6bcbba5907b66503b2611000000000a1a2731363735373c4b60758b9fb5c3a5907b65503b261000000000000003182d42586d8297adb39e897458473325303029271f14060000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bad6ccb8a79b8576625a4b453837353135373a474c5c6478879daabbb5a4927d675544311d0800000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000e23384e63798799a1b4b8a79e8a7c6c60564e4a3d413e3d3e3a474c596275869cabbcbcab947f6a54372715020000000000000000000000000f24394e64798ea6b8c6b9b4b0b4c1af9a846f594834200b0000000000071a2d3e546a7f94abbcb9b4b0b4c1c3a8937e6953372715020000000000000000000000000000000009192a3b4b5d6a7f94a1b3c3b5a397816d5f4d3d2d1b0b00000e1d3144556277889daabbbcab9e89786256453123120000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000a1a2b3c4b5d6a7f94a1b3c1b5b0b3b8c5c2ad97826d58422d18000000000000000000000000081b2e3e51667b90a4b5baa995806a5746321e090000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a38352c1f0f000012273c51677c91a6bcbba5907b66503b261100000000000a151d2021202132455673889db2bca7927c67523d271200000000000004192e43596e8398aeb29d87725d3a2a171b1b14120c03000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bad2c2b39e89786258493c322822201d202229333e4a5a647a8c9fb4c2b29c8774604b35200b00000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000c2135495b637683939fa99e8979665e4b4538362d2c29272829333b4857647a8d9fb5c9b09b85705544311d0800000000000000000000000316283854697f94a9c4b9a89e9ba3b4b49f8b77624c37220f00000000000d21364a5c71869cb1b9a89e9ba3b4c3ae99846e5544311d0800000000000000000000000000000000000d1d2e3f4a60728399a5b7c2b19f927d675b4a392916030e1e2f404b6073849aa6b8c0b59f8d7c665a48382715050000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000002152738485a657b8c9fb4bfb5a39b9ea7b8c2ad97826d58422d18000000000000000000000000001020354a6073869cb1c3b39e8975614b3727150100000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b262525252525252525252525252525252525252523211a0f01000012273c51677c91a6bcbba5907b66503b261100000000000002090b0c0b1628385b70859ab0bda8937e68533e291300000000000004192e44596e8399aeb19c87725c47321d000500000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bac9b5a3917c675a483a2c1e160d0b080b0d171f2e3c4b5c6a7f94a7b8b6a5927d675237271502000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00061a2c3d4958616e7e8b9d8c7b655b4d403228211a16141213171f2b394a5c70859ab0c5b59f8b75604b36200b0000000000000000000000091e3245566f849aafc4b49e8a859bb0bbaa947e69543d2d1a07000000011426364e64798ea4b5b49e8a859bb0c5b49e8975604b36200b000000000000000000000000000000000000111c3043546176879da9babdb49f8a79635746321e141a2b3c4c5e6b8096a2b4c4b4a296806b5e4c3c2b1a0a000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000010f1d3145566278889eaabbb8a69b86899eb3c2ad97826d58422d1800000000000000000000000000071c304354677d92a5b7b8a7937e695544311d0800000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26111010101010101010101010101010101010100e0c060000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000192f44596e8499aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bac7b19b86715f4d3c2b1c0e02000000000004101e2e3e4b6175899eb3c3ae99836e5544311d08000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000f1f2c3a464c60697a877f695d4b3d301e160a0700000000040d1b2d3e556a7f94aabfbcab8c77624d37220d00000000000000000000000b21364b60758a9fb4c4ae99837e92a9bab19b86715b4a362108000000081c3043546b8096abc2ad97827f94aac5b9a88f7a654f3a2510000000000000000000000000000000000000001325364758647a8b9fb4bebaa89c8675614b4231202838495a667c8d9fb5c0b8a69a8473604b402f1e0e00000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000f2031414b6074859ba6b8bbaa9e8878889db3c2ad97826d58422d1800000000000000000000000000001325364b6074879db2c5b29d8774604b35201100000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5babaa9917c675241301e0e000000000000000000101e3246576a7f95aac4b39e8974604b36200b000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d0000010f1c2933424f5c647669614f3f2e1f1203000000000000000013283d52687d92a7bdc9a48f79644f3a240f000000000000000000000011263b50667b90a9bac4a9937e768a9fb4b5a38e79634e3626140100000b20354b6074889db2b7a6907b7a8fa7b8c6aa95806b553a2a17040000000000000000000000000000000000000818293a4a5c687e93a0b2c2b6a498826d604e3e2d3245566278899eabbcbcab9e88776255443122120000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000c1c2d3e4e5f6c8197a3b5bfb49f8c7b73889db3c2ad97826d58422d180000000000000000000000000000081d314455697e94a7b8b7a5927d6752402f1c09000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab49f8a76614b36211200000000000000000000031628394e63798ea6b7b9a88f7a65503a2510000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000000000c171f323e4a5761574f433221110000000000000000000014293e54697e93a9bebaa58f7a65503a25100000000000000000000005182b3b566b8196abc7b7a68e796e8398aec1ab95806b5443301c08000316283850657b90a6b7b29d887374899eb3c5b09b85705847331f0a000000000000000000000000000000000000000c1c2d3e4e606d8298a4b6c2b2a0937e685c4a3a414b6074859ba7b9c0b49f8d7b655948372715040000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000818293a4a5c687d929fb1c1b2a1947f6a73889db3c2ad97826d58422d180000000000000000000000000000021527374b6176899eb3c3b19c86715e4c382310000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5baaf9a85705746321e0900000000000000000000000b21364a5b73889db3c6a9947e69543f2914000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000000000414202d39464b4639322414030000000000000000000c1a3040576d8297acc2c4a38e79634e39240e000000000000000000000b2034485971869cb1c6b39d8873667c91a7b8b29d8774604b35200b00091e3245566d8297adc1ab96806b6e8398aec3b49f8b76614c37210c0000000000000000000000000000000000000000102031424b6175869ca8b9beb49f8b7a6458474d5f6c8197a3b5c4b3a2957f6a5d4c3b2b1909000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000001325364758647a8a9fb4bdb6a499836e6173889db3c2ad97826d58422d18000000000000000000000000000000091e3246576b8095a9bab5a4907b66503e2e1b070000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5baab96816b56392816030000000000000000000000071a2d3d596f8499aec0ab96806b56412b16000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000000000002101b29323632291b14060000000000000000060f1c2a384d5e71869bb1c6b7a68c77624c37220d000000000000000000000d22374d62778ca4b5c2ad98826d6075899eb3b7a58f7a6550382816020b21364b6075899eb4b5a38e7963687e93a8c3bcab917c67513c2712000000000000000000000000000000000000000002141e32465763798a9eb4bdbaa99d877661545b677d929fb1c1b7a69a8472604b3f2f1d0d00000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000e1c3043546176879da9bab9a89c8676615e73889db3c2ad97826d58422d18000000000000000000000000000000031629394c61778a9fb4c2af9a84705c4a36220e0000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5baa9947f69543f2a1400000000000000000000000000182d42576d8297acc2ad98826d58432d18000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000000000000000b161e211e160b0000000000000001080f1a212d3a4756667c91a3b5c8b39d88735948341f0b0000000000000000000013253652687d92a7c2c2a7927d67566c8197acc3ac97826d5645321e09182a3a52677c91a8b9b19b86715b62788da5b6c9ac97826d573d2c1a06000000000000000000000000000000000000000003162939495b677d929fb1c1b7a59983726063798a9fb4bdbbaa9d88776154433021110000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000e1e2f404a60728399a5b6bdb49e8a7963575e73889db3c2ad97826d58422d1800000000000000000000000000000006192c3c4f64798ea9bac8b4a28f7a644f3c2c190600000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5baa8927d68533d281300000000000000000000000001162b40566b8095abc0af99846f5a442f1a000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000000000000000000030a0c0a030000000000000608141c202c353d4a586175879db2c1c3ad98836e583b2a1805000000000000000000071c3043546d8398adc2b5a48c77624f657a8fa5b6b39e8975604b36210c1f3347586f8499aebbaa947e69545a72879db2c7b29d88725b4935210c0000000000000000000000000000000000000000000b1b2c3d4d5f6c8197a3b5c3b3a1947f6975869ca8babfb49f8c7b655947362614030000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000a1a2b3c4c5e6a7f95a1b3c0b09e917d675b4a5e73889db3c2ad97826d58422d180000000000000000000000000000000c2035495a6e8398adc7d1c0ae98836e5b4935210d00000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5baa8937e69533e291400000000000000000000000001172c41566c8196abc1ae98836e59432e19000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000000000000000000000000000000000003090e19202630353d494e5b6376849aa5b7cab6a5917c67513c2712000000000000000000000b20354a6074889eb3c6b19c8671594b5d72879db2b9a8917c67523a2a1822374c61778b9fb4b49f8b77624c576c8197acc9b7a58d78634e38230e000000000000000000000000000000000000000000000f1f30414b6074859ba7b9bfb49f8c7a8298a4b6c3b3a1947f695d4b3a2a1808000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000003162838495a667c8d9fb5bfb4a296816c5f4d3d5e73889db3c2ad97826d58422d18000000000000000000000000000004182a3a4d62788b9fb4cadecab49f8c78634d3b2a1805000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5baaa95806a55402b1500000000000000000000000003172939586e8398adc1ac96816c57412c17000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000000000000000000000000000000060a161e212b3536434b505b636d79879aa2b4c3beb29d8774604b35200b000000000000000000000f24394e64798ea6b8c7ab96816b563f556a8095aac1ae99846e5847331f2c3c53697e93aabbaf9a846f594851677c91abbcc3a8937e69533827150200000000000000000000000000000000000000000001131d3245566278899eb3bcbbaa9f8998a0b2c2b6a599836e614f3f2e1c0c00000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110002101e3245566278899eabbcb7a69a8473604b41485e73889db3c2ad97826d58422d1800000000000000000000000000000a1f3347586c8196aabbccc8ccbcab97816c5948341f0b000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5baad98826d583d2c1a0600000000000000000000000a1e33465770859bb0bfaa947f6a553f2a15000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000000000000000000000000060e19202832363c494d5460656e79828c9da5b4c0c1b2a0927d675544311d0800000000000000000003162839546a7f94a9c5baa9907b66503b4e63788da3b5b49f8b77614c372235495a70859bb0b9a8927d67523b4c61768b9fb4c4ae99846f5645311d090000000000000000000000000000000000000000000002152838495a667c919eb0c0baa89fa8b2bebaa99d8776614c433221100000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100102031424b6075859ba7b8bbaa9d887762554431485e73889db3c2ad97826d58422d1800000000000000000000000000031628394c61778a9fb4c5b8b3b8c5b49f8a77624c392917030000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29d88735b4935210d00000000000000000000000c21364c61768a9fb4c2a7927d67523d2812000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d0000000000000000000000020e19202c3538454b525a626a747b838c989faab6c3c0b4a398826e5f4d37261401000000000000000000091e3245576f859aafc4b49f8a76614b36495b70859bb0bbaa937e69533c2c384d63788da3b4b49e8976614b36475870859bb0c5b49e8975604b36200b00000000000000000000000000000000000000000000000a1a2c3c4c5e6b8096a2b4c4bab4bac6beb49f8b7a645846332514020000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110c1c2e3e4e606d8297a3b5beb49f8c7b6559483727485e73889db3c2ad97826d58422d1800000000000000000000000000091e3245576a8095a9bab8a79ea7b8baa995806b5746331e090000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab7a68e79634e3b2a18050000000000000000000a1a2e3e51667c91aabbb5a48c77624d37220d000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d0000000000000000000009151d2b353c494d5660676f78808790989fabb4bbc8bcb5a29b8576614c41301909000000000000000000000b21364b60768a9fb4c5af9a85705746323d54697e93aabbb09b85705b49353e556a7f95aac1ad98826d5746323a556b8095aac6b9a88f7a65503a25100000000000000000000000000000000000000000000000000e1e30404b6073849aa6b8cbc9cdc8b2a0937e685c4a3a291707000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611192a3a4a5c687e93a0b1c1b2a0937e695d4b3b2a33485e73889db3c2ad97826d58422d18000000000000000000000000011527374b6075889eb3bbaa9e899ea9bab39e8976614b3727150200000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bac4ac96816c5948341f140400000000000000081528384a5c6f849aafc8b19c8671594834200b000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d0000000000000000000e1927313c494d5a636b757d848c959da5aeb4bcc9c2b5ab9f968475615846332313000000000000000000000011263b50667b90a9bac5aa947f6a553928374c61778b9fb4b4a38d78634d384b5c72879cb2b7a6907b655039283a50657a8fa8b9c6aa95806b553a2a1804000000000000000000000000000000000000000000000000121d3144556277889eb3c8ddcebbaa98826d604e3e2d1c0c00000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261426374759647a8b9fb4beb5a498826e604f3f2e1d33485e73889db3c2ad97826d58422d18000000000000000000000000081d314455697e93a7b8b49f8c7a8b9fb4b9a7947f695544311d0800000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bac9b49f8a77624c42321f170c05000000060d1826324556647a8fa2b3bbaa95806b563b2b1805000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000000000000000e1e2b37444b5a626d788189929a9fabb2b7c3cac2b6b1a49c8d80746157463a2917050000000000000000000005182b3b566b8196abc7b8a78f7a644f3a243447596f8499aec1aa95806a553e4f647a8fa5b6b39d8874604b3520364b6075899eb4c6b09b86715847331f0a000000000000000000000000000000000000000000000000011527374859697f94a9bed4cab49f8a77624d423120100000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261d3144556177879da9bab9a89c8675614b4232211e33485e73889db3c2ad97826d58422d180000000000000000000000000b20354b6074879db2c0ad98836e8297abbcb29d8874604b36251300000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000000192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bacdbaa999836e614f423329201815141619202b36434b6074859bb1c0b49f8b78634d38230e00000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000000000000000e1e2c3c4955606b78828c969ea7afb5bcc9c8bbb4aea49c92867b6b60564639291b0b00000000000000000000000b2034485971869cb1c6b39e8974604b35202a3a52677c92a8b9b29d87725c4b556c8196acc2ab96806b5544311d3145566f8499afc4b59f8b77614c37220c0000000000000000000000000000000000000000000000000d1d3144556277889eb3c8ddcebbaa98836e604e3d2d1b0b00000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2630404b6073849aa5b7bcb39e89796357463224141e33485e73889db3c2ad97826d58422d180000000000000000000000091c2f4052677d92a5b7b4a28f7a64798c9fb5b7a6927d685443301c07000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e29140000000008120b1727375a6f8499afb09b86715b46311c060000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bad7c7b3a1937e69614c473a342b2b292b2c353c4854606c8197a3b5bbaa97826d5a4935200c00000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d0000000000000c1c2c3c495a6274808b989fabb3b8c5c9c3b6b2aa9f9990867d73655d4b4538291b0b0000000000000000000000000d22374d62778ca4b5c3ae98836e5443301c21364b6075899eb4b6a58f7a644f6074889eb3b5a48e79644e372615273854697e94a9c4bcab917c67523c271200000000000000000000000000000000000000000000000d1d2f404b6073849aa7b8ccc9cdc8b2a0937e685c4a39291603000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2c3d4c5e6b8095a2b4c0b09e917c665b49392816061e33485e73889db3c2ad97826d58422d1800000000000000000000000e23384c5e71869bb1c2af9a85705c6f8499aec1b19c8673604a352010000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e29140000000b19252d2933445570869bb0af9a846f5a452f1a050000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bad4cabfb49f8d7f6c61584d483b403e403c494d5a627281969fb1bfb49f8b78624d3c2c190600000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000000000004182a3a495a637885959fa9b5bcc9c6bab4ada59c948b847b736860544b3f31271a0b0000000000000000000000000013253652687d92a7c2c3a8937e68533626141e3245576d8297adc3ac97816c56667b90a6b8b19c86715c4a36190e24394e63798ea6b7c9ac97826d573d2c1a0600000000000000000000000000000000000000000009192b3b4c5e6b8095a2b4c5b9b4b9c6beb49f8b7a645746321e13010000000000000000000000000000000012273c51677c91a6bcbba5907b66503b39495b667c8d9fb5c0b4a295806b5e4d3d2c1b0b001e33485e73889db3c2ad97826d58422d1800000000000000000000071b2d3e50657b90a3b5b6a4907b6651657b90a3b5b6a4907b66513f2e1b080000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e29140000081929374139464c6075899eb3ad98836e58432e19030000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bac3b7b2aeab9f93817669625957555455575a636b7883969fb0bdb3a1957f6a5a49351e0e0000000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000000000a1f3347586378889ba3b4bac7c3b7b2a89f978f877f776f6660544b43362f1d150a00000000000000000000000000071c3043546d8398adc2b6a58d78624d38230d16283950657b90a6b7b39e8975606d8398adbcab947f69543d2d1a0c21364a5b73889db3c8b29d88735b4935210c0000000000000000000000000000000000000000011426374859667c8d9fb5c0b9a89ea8b2bebaa99c8675614b42311f0f0000000000000000000000000000000012273c51677c91a6bcbba5907b66503b465763798a9eabbcb7a59a8473604b40301f0e00091e33485e73889db3c2ad97826d58422d18000000000000000000000d22364a5c6f849aafc2b19c8673604a5d71869bb0c2b09a85705d4b37220f0000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e2914000012253748545a5761677c91a7b8a8937e69533e2914000000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab7a59d99a1b49f97897f77706c6a696b6d7178808a99a1b0bdb5a5998372604b3c2c19000000000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000000091c2f404c6176879da6b5c1c3b7b2a59d948a827a726a6259504a4336302618110200000000000000000000000000000b20354a6074889eb3c7b29d87725a4935200c0b20354b6074889db2b8a7917c66768a9fb4b49f8b77624d37220f071a2d3d586d8298adc2b7a68e78634e39230e00000000000000000000000000000000000000000d1d3144556277899eabbcbbaa9e8998a0b2c2b6a498826d604e3d2d1b0b00000000000000000000000000000012273c51677c91a6bcbba5907b6650424b6175869ca8b9baa99d87776155443122120000091e33485e73889db3c2ad97826d58422d1800000000000000000006192c3c4f647a8ea2b4b8a6927d68544352677d92a5b7b4a28f7a644f3d2c1a0600000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e29140000182d4154666f73767d8a9eb4b19f8d78634d38230e000000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29d878499a2b1a79e948c8582807e8082868d959fa8b3bfb4a49c8776615443301e0e000000000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d000000000f23384c5e6e8399a5b7c4beb2a59d91877e766d655d544d483b3530251c1408000000000000000000000000000000000f24394f64798ea6b8c9ac97826c573c2c1906081c3043546b8096abc2ae98836e7d92a8baaf9a846f594834200b0012283d52677d92a7c2c4a9937e6954382815020000000000000000000000000000000000000d1d2f404b6073849aa7b8bfb49f8c7a8298a4b6c2b2a0927e685b4a39281603000000000000000000000000000012273c51677c91a6bcbba5907b66504f606e8298a4b5beb49f8b7a645947372614040000091e33485e73889db3c2ad97826d58422d180000000000000000000c2035495a6e8398adc0b39d8875604b364b6074879db2c0ae99836e5b4935210d00000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400001a30455a6f84888b929ea8aea297816c5a4935200c000000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c8775849aa2b4b3ab9f9b97959395979ca4aab4bab8b3a29a867862584736261400000000000010253a50657a8fa5bab29c87725d47321d08000010253a50657a8fa5bab29c87725d47321d00000004182a3a50667b90a1b2c3bcafa098877c74696158504b3f37342b201c1308010000000000000000000000000000000003162839546a7f94a9c5bcab917c67513c271200011426364e64798ea4b5b49f8a76849aafbaa9927d68523b2b1905000d22374c62778ca4b5c4ae99846f5645321d09000000000000000000000000000000000009192b3b4c5e6b8095a2b4c3b3a1947f6975869ca9babeb49f8a79635746321e13010000000000000000000000000012273c51677c91a6bcbba5907b66505d697e93a0b2c1b1a0937e685c4a3a2a1909000000091e33485e73889db3c2ad97826d58422d18000000000000000004182a3a4d63788b9fb4baa8947f6a5645324455697f94a8b9b59f8c79634e3b2b1805000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400001d32485d72879da6a7b4ae9d948474604b3c2c1906000000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87727684939ea8b3b5b0acaaa9aaacb1b5c2b9b4a79e9384766259483a2a180800000000000010253a50657a8fa5aaaa9c87725d47321d08000010253a50657a8fa5bab29c87725d47321d0000000a1f3347586f8499afbfc0af9e9582766760554c463a372e2220180d0700000000000000000000000000000000000000091e3245576f859aafc4b49f8b76614c37210c00000821364a5c71869cb1baa9957f8d9fb4b49f8a76614b36210d00000b2034485971869cb1c6b49f8975604b36200b00000000000000000000000000000000011426374859667c8d9fb5c0b7a59983726063798a9fb4bebaa99c8675614b41311f0f0000000000000000000000000012273c51677c91a6bcbba5907b6659657b8c9fb4beb5a397826d604e3e2e1c0c00000000091e33485e73889db3c2ad97826d58422d1800000000000000000a1f3447596c8197aabbb49f8a76614c3828374c6176899eb3bcab97826d594834200b000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400001d32485d72879db2c4bfa9947f73605645321e0e00000000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c8772616f7e8a979ea7aeb1b4bac7bab4b2ada89e97897e736158483b2b1c0c0000000000000010253a50657a8f9595959587725d47321d08000010253a50657a8fa5bab29c87725d47321d0000000c22374c61778b9fb5cab4a2957f6e61584b44373329231c110b050000000000000000000000000000000000000000000b21364b60768a9fb4c5b09b86705847331f0a0000071a2d3d546a7f94abbcb49f8a9fabbcad98836d5746331e0a000005182b3b566c8196abc8baa8907a65503b2510000000000000000000000000000000000d1d3144556277889eabbcbbaa9d877661545b687e92a0b2c2b6a498826d5f4e3d2c1b0a00000000000000000000000012273c51677c91a6bcbba5907b666277889daabbb8a79b8575604b423120100000000000091e33485e73889db3c2ad97826d58422d1800000000000000031628394c61778a9fb4bbaa96816c5847331e3346576b8096aabbb49f8b77624d3a2917040000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400001d32485d72879da9b0b4b39e887d675e4c39291703000000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d606878818991999c9fa9a3a99f9d9891898177696055463a2b1d0d00000000000000000d22384d62787f7f7f7f7f7e69533e291400000010253a50657a8fa5bab29c87725d47321d00000011263c51667b91abbcc8af9a8470614c463a31261f170b0800000000000000000000000000000000000000000000000011263b50667b90a9bac6aa95806b553a2a17040000000f22374d62778b9fb4bbaa9faabbb8a6907b66503929170300000011263b51667b90aabbc6ab95806b563a2a180400000000000000000000000000000d1d2f404b6073849aa6b8bfb49f8b7a6458474e606d8298a4b6c2b2a0927d685b4939281603000000000000000000000012273c51677c91a6bcbba5907b6673849aa6b7bcab9e8978625645322414020000000000091e33485e73889db3c2ad97826d58422d1800000000000000091e3246576a8095a9bab49f8b78624d3a2a1729394d62788b9fb4baa996806b5846331f0a0000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400001d32485d728791949aa2b1a69e917c665746331e0a000000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d4e5a626c757c8387898c8e8c8a87827c756c61584b4437291b0d0000000000000000000b2035485a626a6a6a6a6a69604f3b261200000010253a50657a8fa5bab29c87725d47321d000000152b40556a8095aac9bbaa907b66514333291d1409040000000000020b111414110b0200000000000000000000000005192b3b566c8196abc7baa88f7a65503a2510000000000b203448596f849aafc7bbb4bbc8b39e8874604b35200b000000000c21364b61768a9fb4c6b09b86715947341f0a0000000000000000000000000009192b3b4c5e6b8095a2b4c3b3a1947e695c4b3a424b6175869ca8b9beb49f8a79635745321e13010000000000000000000012273c51677c91a6bcbba5907b6b8096a2b4bfb59f8d7c665a4938281606000000000000091e33485e73889db3c2ad97826d58422d18000000000000011527374b6175899eb3c0ae98836e5a49351c0c2034485a6d8298adc0b39e8976614c3828150200000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e2914000010253a50657b7c7f85979fb1b39e8976614b36210c000000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d3c484d5660676e717577797774726d6660564c473a3127190b0000000000000000000005192b3c484d5555555555534f42321f0c00000010253a50657a8fa5bab29c87725d47321d000002172c42576c8197acc1b49f8a76604b3621170b0100000000000006141f262929261f140000000000000000000000000b2034485971869cb1c6b49f8975604b36200b0000000005192b3b53687d92a9bacdcacec2ab96816c5544311d0800000000091e32465770859aafc5b59f8b77614c37220c000000000000000000000000011426374859657b8d9fb5c0b6a599836e614f3e2e32465763798a9eb4bdbaa89c8675604b41301f0f0000000000000000000012273c51677c91a6bcbba5907b7d919eb0c0b3a1957f6a5e4c3c2b1a0a00000000000000091e33485e73889db3c2ad97826d58422d18000000000000081d314455697e93a7b8b4a28f7a644f3c2c1905192b3c4f64798ea2b4b9a8947f6a5645321d0800000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000e23374b5d65676a738197aab8a7917c66513c2711000000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d473538454b52595460626361585d58514b4538332a1d15090000000000000000000000000e1e2b353840404040403e3b3224140200000010253a50657a8fa5bab29c87725d47321d000003182e43586d8398adc2b39d88735645321e0900000000000000021424313b3e3e3b311c1308000000000000000000000d22374d62778ca4b6c4af99846f5645311d0900000000000d21364c61768a9fb4c9decab6a48e79644f372715010000000003162839556a7f94aac5bcab927c67523d27120000000000000000000000000d1d3144556277889eabbcbaa99d8776614c4332202839495b677d929fb1c2b5a497826d5f4d3d2c1a0a00000000000000000012273c51677c91a6bcbea9947e8a9eb4bcb6a5998372604a402f1e0e0000000000000000091e33485e73889db3c2ad97826d58422d180000000000000b20354b6074879db2c2b09a85705c4a361e0e000d22364a5c6f849aafc2b39d8875604b36261401000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e29140000081c2e3f4b50515462778b9fb4ac97826c57422d17020000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47322832363c36434a4c4e4c473a433c3632281f180c0100000000000000000000000000000e1920222a2a2a2a2a29261f14060000000010253a50657a8fa5bab29c87725d47321d000002172d42576c8297acc1b39d88735746331e0c0000000000000a151d31424e53534e423025180a00000000000000000013253652687d92a7c2c4a9947e69543827150200000000000a1e3346576e8398adc5d5c9b19c86715c4a3619090000000000000f243a4f647a8fa7b9c9ad97826d583d2d1a07000000000000000000000d1d2f404b6073849aa6b8beb49f8b7a6458463324141b2c3d4d5f6d8197a4b5c2b19f927d675b4938281602000000000000000012273c51677c91a6bcc9b49f8a9ea8b9baa99d8776615443302212000000000000000000091e33485e73889db3c2ad97826d58422d180000000000091c2f4052677d92a5b7b6a4917c66513e2e1b0000071b2d3e51667b90a4b6b7a6927d685443301c08000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000011212e373a36475971869cb1ae99846f59442f1a040000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d4732151d2027253035373937332a2d26211e160a040000000000000000000000000000000000050b0d151a1e1d1814120c02000000000010253a50657a8fa5bab29c87725d47321d000000152b40556a8095aabfb59f8b76614b3a291b110b090b0d101a2832424e606969604a4336271a0b00000000000000071c3043546e8398adc3b7a68e79634e39240e0000000000000317293951667b91a7b8ccbcab947f6a543e2d1b000000000000000b20354b6074899eb3c8b29d88735b4a36210c00000000000000000009192b3b4c5e6b8095a2b4c3b2a0937e695c4a3a2917060f1f31414b6075869ca8b9bdb49e8a79635645321e13000000000000000012273c51677c91a6bccdbaa99fa9b9bdb49f8b7a64584736251304000000000000000000091e33485e73889db3c2ad97826d58422d1800000000000f23384c5e71869cb1c3b19c8673604a3520100000001020354a6073869cb1c4b19c8773604b352011000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000003111c23252a3b5a6f859aafb09b85705b46301b060000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d090b12131c202224221f1818110b090200000000000000000000000000000000000002101b22252f33322d221f180c000000000010253a50657a8fa5bab29c87725d47321d00000013283d53687d92a8c1bcab927d685846392e24201d2022242e38454b60697e7e6b60544538291b0b0000000000000b20354a6074889eb3c8b39d88735b4a36210c000000000000000b20364b6074889eb3c8b59f8c78624d38221000000000000000081d3144556e8399aec3b7a68e79634e39230e0000000000000000011426374859657b8d9fb4c0b6a598836e604f3e2d1c0c0001131e32455663798a9eb4bdb9a89c8674604b41301e0e0000000000000012273c51677c91a6bcd7c7bab4bac1b19f927d685c4a3a29180800000000000000000000091e33485e73889db3c2ad97826d58422d1800000000071b2d3e50667b90a4b5b8a6937d685443301c07000000071c304354687d92a6b8b6a4917c66513f2e1c080000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e29140000000000080e192f44596e8499aeb19c87715c47321c070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d08000000070b0d0e0c0a04000000000000000000000000000000000000000000000513202e373a4448474237342a1d0d0000000010253a50657a8fa5bab29c87725d47321d0000000d23384d62788da3b5c9b29d877661574b3f39363235373a3f4b56606b7e8d9380726056463a29170400000000000f24394f64798ea7b8c2ad98826d583d2d1a0700000000000000081d3144556c8196acc3af9a85705a4835200b000000000000000114263753687e93a8c3c4a9947e695438281502000000000000000d1d3144556277889eabbcbaa99c8776614c4232201000000003162838495b677d929fb1c1b5a497816c5f4d3c2c1a0a00000000000012273c51677c91a6bcd1d7cdc9c5b5a397816c5f4e3e2d1c0c0000000000000000000000091e33485e73889db3c2ad97826d58422d18000000000d22364a5c6f849aafc2b39e8875604b36251300000000001325364b6075889db3c2b09b85705d4b37230f0000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000000001323303e4b4f595e5d574c473b2b1d0d00000010253a50657a8fa5bab29c87725d47321d0000000b2035485a70859bb0c1b7a59a8475655d534e4b454b4c4f545d6574808d9f9e968274615846331f0a0000000003162839546a7f94a9c5c2a7927d67523d28120000000000000000021527374f647a8fa5b6a9927d68533c2b190500000000000000000e23384d63788da5b7c4af99846f5645321d090000000000000d1d2f3f4b6073849aa6b8beb49f8b7a64574633241402000000000a1a2c3d4d5f6c8197a3b5c2b19f927d675b4938281502000000000012273c51677c91a6bcd1ead9c8b8a79b8574604b41312010000000000000000000000000091e33485e73889db3c2ad97826d58422d1800000006192c3c4f647a8ea2b4baa8947f6a56453218080000000000081d3245566a7f94a8bab4a38f7a654f3d2d1a0700000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000d1d30414d5c646f73726d6159483b2b1905000010253a50657a8fa5bab29c87725d47321d00000006192b3c53687d93a3b5c3b4a29a867b706964605660626469717a86959fabb0a0988476614c36210c00000000091e32465770859aafc5b6a48c77624d37220d0000000000000000000922374b5c72879cb29f8a76614c36210e0000000000000000000c2035495a72879db2c7b49f8a75604b36200b000000000009192b3b4c5d6b8095a2b4c2b2a0937e685c4a392917060000000000000e1f30414b6074859ba8b9bdb49e8a79635645321d12000000000012273c51677c91a6bcd1e2cebbaa9e897862564531231302000000000000000000000000091e33485e73889db3c2ad97826d58422d180000000c2035495a6e8398aec0b49f8a77614c382816000000000000021528384c61778a9fb4c1ae99846f5b4a36210d00000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000005182b3b4d5f677a8488878277625948342009000010253a50657a8fa5bab29c87725d47321d000000000e20354b6073859ba9bac0b4a49c90857e79757475777a7f868f9ca4b5bcbeb2a095806b56402b16010000000c21364b61768a9fb4c6b19c8671594834200b000000000000000000081b2e3e556a8095aa98836e5846331f0a00000000000000000006192c3c576c8297acc9baa9907b65503b251000000000011426374859657b8d9fb4c0b6a498826d604e3e2d1b0b0000000000000000131d3245566378899eb3bdb9a89b8574604b41301e0e0000000012273c51677c91a6bcd1cfbfb49f8c7b655a483827150500000000000000000000000000091e33485e73889db3c2ad97826d58422d18000004182a3b4d63788c9fb4bcab96816c5847331a0a000000000000000a1f3347586c8197abbcb59f8c79634e3c2b1905000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000b20344859677d8c999d9c978878624d372614010010253a50657a8fa5bab29c87725d47321d00000000081c304354647a8b9faab9c2b6b1a39b938e8b898a8c8f949ca4b1b5c2bbb4a1988273604b35200b0000000011263b51667b90a9bac8ab96816c563b2b1805000000000000000000001023384d63788da3917b66513a2917040000000000000000000012273c51677c91abbcc7ab96806b563b2a1805000000081d3144556277889eabbcbaa99c8675614b4231201000000000000000000002152838495a677c919fb0c1b5a397816c5f4d3c2c1a0a00000012273c51677c91a6bcd3c3b3a1947f6a5d4b3c2b1a0a0000000000000000000000000000091e33485e73889db3c2ad97826d58422d1800000b1f3447596c8197abbcb49f8c78634d3a2a17000000000000000004172a3a4d63788c9fb4bcab98826d5a4834200c000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000d22374d6277899eabb3b2a699836e5544311d080010253a50657a8fa5bab29c87725d47321d00000000011426364a5c667c8c9ea8b4c0c1b5b0a8a3a89e9faaa4a9b1b6c2c1b4aa9f958373605544311d0800000005192b3c566c8196abc7bbaa907b66513b261100000000000000000000000c2035495a70859b8874604b36200b00000000000000000000000c21374c61768b9fb4bdb19b86715947341f0b0000091c2f3f4b6073849aa6b8beb49f8a7963574632241402000000000000000000000a1a2c3c4d5f6c8196a3b5c1b19f917d675a4938271502000012273c51677c91a6bcc6b6a4998372604a3f2f1d0d000000000000000000000000000000091e33485e73889db3bdad97826d58422d1800031628394c61778a9fb4c0ae98836e5a49351c0c0000000000000000000c2035495a6e8399aec1b49f8b78624d3a2917040012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000004192e44596e8399aebea8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000012273d52677d92a8b9c9c4b49f8974604b35200b0010253a50657a8fa5bab29c87725d47321d000000000008182d3e4c5e667c8a9aa2b0b4c0c4bec6b9b4b4bbc8bec9bcb4afa39b8b8074605544372715010000000b2034485a71879ca8a8a89f8a76614b36210c000000000000000000000006192c3c53697e93816c5544311d0800000000000000000000000a1f33475871869ba8a8a89f8b77624c37220d00000e23384c5d6a8095a2a8a8a8a0927e685b4a392916060000000000000000000000000e1e30404b6074859ba7a8a8a89e8978625645311d09000012273c51677c91a6a8a8a89c867661544330211100000000000000000000000000000000091e33485e73889da8a8a897826d58422d1800091e3246576b8095a9aaaaa28f7a644f3c2c190000000000000000000006192c3c4f657a8fa3aaaaaa96816b5847331f0a0012273c51677c91a6a8a8a5907b66503b26110000000000000000000000000000000000000000000000000012273c51677c91a6a8a8a5907b66503b26110000000000000000000004192e44596e8399aaaaa8937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9c2d2cbb8a68c77614c37220c0010253a50657a8fa5bab29c87725d47321d00000000000010202f404d5e667884919aa2aaafb3b9c5b9bac5b9b3b0ab9f9a9285796b60564537271909000000000d22384d62788d939393939384705746321e0a0000000000000000000000000e22374c61778a7a644f37271502000000000000000000000004172a3a566b809393939393927c67523d2712000010263b50657b8b939393939393826d604e3d2d1b0b0000000000000000000000000000121d3145566278899393939393938675604b36200b000012273c51677d91939393938a796357463625130300000000000000000000000000000000091e33485e73889393939393826d58422d18000c21364b617689959595959584705c4b371e0e00000000000000000000000e22374b5d708595959595958976614c37210c0012273c51677c9193939393907b66503b26110000000000000000000000000000000000000000000000000012273c51677c9193939393907b66503b26110000000000000000000004192e44596e8395959595937e69533e291400000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000011263b51667b90a4b5c2beb39d88735947341f0a0010253a50657a8fa5bab29c87725d47321d00000000000002122230404d5a62727c858e94999ea7a2a4a4a3a79e9a938b847d73635b4b453827190900000000000d22384d62787e7d7d7d7d7d7b654f392916030000000000000000000000000a1f3347586b816b5c4b371909000000000000000000000000000e23384d63787e7d7d7d7d7e7b644f3a250f000011273c51667c7e7d7d7d7d7d7e75614b42311f0f00000000000000000000000000000002152738485a647a7d7d7d7d7d7d7e78634d38230e00000d23384d62787e7d7d7d7d7b655b4a3929180800000000000000000000000000000000000012283d52677d7d7d7d7d7d7a65503a2510000e23394e63797f7f7f7f7f7f7a644f3e2e1b000000000000000000000000081b2e3f4f647a7f7f7f7f7f7f79634e39240e000d23384d62787e7d7d7d7d7e78624d38220d000000000000000000000000000000000000000000000000000d23384d62787e7d7d7d7d7e78624d38220d000000000000000000000012273c52677d7f7f7f7f7f7a644f3a240f00000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000b20364b6074869ca4acaba0947f6a553a2a18040010253a50657b8fa5a5a59c87725d47321d00000000000000041222303c4954606770797f84898c8d8f8f8e8c89857e776f6760544a3d31271a0a0000000000000b2035485a62686868686868655d4b371b0b0000000000000000000000000004182a3a4b6075604b3e2e1b00000000000000000000000000000c2035495a63686868686868645c4b37220d00000f24394d5e666868686868686861574632241301000000000000000000000000000000000a1a2b3c4b5c6468686868686868635a4935200c00000c2035495a626868686868655d4b3d2d1b0b0000000000000000000000000000000000000010253a4d5f676868686868655d4b37230e000c2135495b636a6a6a6a6a6a645c4a362010000000000000000000000000001022374b5c646a6a6a6a6a6a635b4a36210c000c2035495a62686868686868625a4834200b000000000000000000000000000000000000000000000000000c2035495a62686868686868625a4834200b00000000000000000000001025394d5f676a6a6a6a6a645c4a36220d00000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8fa5a5a59c87725d47321d08000000000000000000000000000000000000000000000000000000000000091d314556637986929796908273604b36200c000010253a50657b8f8f8f8f8f87725d47321d000000000000000004121e2c36434a525c646a6f7476787a7a79777470696259524b43362d1d150a0000000000000005192b3c484d5353535353534f4b3f2e1b0000000000000000000000000000000c1d314556605645312010000000000000000000000000000006192c3c494d5353535353534f4b3e2e1b080000091d30404d51535353535353534b46392816060000000000000000000000000000000000000e1e2e3e4b4f535353535353534d493c2c1906000006192c3c494d53535353534f4b3f2e1f0f00000000000000000000000000000000000000000a1e31414d525353535353504b3f2e1c0800061a2c3d494e5555555555554f4a3e2e1b0200000000000000000000000000081b2e3e4b4f5555555555554e4a3d2d1a070006192c3c494d5353535353534d483c2b19050000000000000000000000000000000000000000000000000006192c3c494d5353535353534d483c2b190500000000000000000000000a1d30414d5255555555554f4a3e2d1b0700000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e0010253a50657a8f8f8f8f8f87725d47321d0800000000000000000000000000000000000000000000000000000000000002152738495b63747d81807b6e605544311d0800000c21364c61767a7a7a7a7a7a644f3a240f000000000000000000000e182530353d4a4e555460616364656362595b544c483b353026180f020000000000000000000e1e2b35383e3e3e3e3e3e3a372e211000000000000000000000000000000002152738454b45382715020000000000000000000000000000000e1e2c35383e3e3e3e3e3e3a372e201000000000122230393c3e3e3e3e3e3e3e3632281b0b000000000000000000000000000000000000000010202e373a3e3e3e3e3e3e3e38352c1e0e000000000e1e2c35383e3e3e3e3e3a372e2110010000000000000000000000000000000000000000011323313a3d3e3e3e3e3e3a372e21110000000f1f2c35394040404040403a362e201000000000000000000000000000000010202e373a40404040404039362d1f0f0000000e1e2c35383e3e3e3e3e3e38342b1d0d0000000000000000000000000000000000000000000000000000000e1e2c35383e3e3e3e3e3e38342b1d0d00000000000000000000000001132330393c40404040403a362d20100000000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e000c21364c61767a7a7a7a7a7a644f3a240f00000000000000000000000000000000000000000000000000000000000000000a1a2c3d495660686c6b665e4b443727150200000a1f334658616565656565645c4a36220d000000000000000000000008131c202d363936434a4c4d4f4f4e4d483b3e37342b201c14080000000000000000000000000e19202228282828282825221b1002000000000000000000000000000000000a1a27313631271a0a00000000000000000000000000000000000e19202328282828282825221b10020000000004121d242728282828282828211e160b00000000000000000000000000000000000000000002101b2224282828282828282320190e0000000000000e192023282828282825221b10030000000000000000000000000000000000000000000005131e2528282828282825231c1103000000010f1a21232a2a2a2a2a2a24221b100200000000000000000000000000000002101b22252a2a2a2a2a2a24211a0f01000000000e1920232828282828282220190d00000000000000000000000000000000000000000000000000000000000e1920232828282828282220190d000000000000000000000000000005131d25272a2a2a2a2a24221b10020000000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a9b8a28d78634d38230e000a1f334658616565656565645c4a36220d0000000000000000000000000000000000000000000000000000000000000000000f1f2c38454b535756504c40312719090000000417293a464c50505050504f4a3e2e1b0700000000000000000000000000070f1a212425303537383a3a3937342b292220180d08010000000000000000000000000000050b0d131313131313100e08000000000000000000000000000000000000000a151d201d150a00000000000000000000000000000000000000060c0e1313131313130f0d080000000000000000090f11131313131313130c0903000000000000000000000000000000000000000000000000070d0f131313131313130e0c060000000000000000060c0d1313131313100e0800000000000000000000000000000000000000000000000000010a10121313131313100e0800000000000000060c0e1515151515150f0d0700000000000000000000000000000000000000080d0f1515151515150e0c0700000000000000060c0d1313131313130d0b0500000000000000000000000000000000000000000000000000000000000000060c0d1313131313130d0b0500000000000000000000000000000000010a1012151c1f1b150f0d0700000000000000000004192e44596e8399aeb19c87725c47321d070000000000000000152a3f546a7f94a8a8a28d78634d38230e000417293a464c50505050504f4a3e2e1b07000000000000000000000000000000000000000000000000000000000000000000010f1a2832363d42413b382f1d150900000000000b1b2933363a3a3a3a3a3a362e201000000000000000000000000000000000070d0f131c202123252524222018140d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009151d202a31343028261e1306000000000000000004192e44596e8399aeb19c87725c47321d000000000000000000152a3f546a7f939393938d78634d38230e00000b1b2933363a3a3a3a3a3a362e20100000000000000000000000000000000000000000000000000000000000000000000000000a161e21282c2b26231c1202000000000000000b171f21252525252524221b10020000000000000000000000000000000000000000070b0c0e0f100e0d0b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a10122020202020200f0d07000000000000000000000000000000000000000001080b172020202020202020190b090200000000000000000000000000000000000000000000050b0d20202020202012100a01000000000000000000000000000000000000000000000a1012202020202020110f0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009192731363f4649463d3a312417090000000000000004192e44596e8399aeb29c87725d36261411110f0d07000000000f24394e647a7e7d7d7d7e76614c36210c0000000b171f21252525252524221b10020000000000000000000000000000000000000000000000000000000000000000000000000002090b131716110f0900000000000000000000040a0c10101010100f0d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007111719202020201f0c090300000000000000070d0f202020202013110b02000000000000000000000000000000000000000000000004121d242735353535353524221b1002000000000000000000000000000000000008141c202c35353535353535352e211e160a00000000000000000000000000000000000000000d18203535353535353527251e13050000000000000000000000000000000000000004121d242735353535353526231c110300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009192737444b555b5e5b534e423527170300000000000003182e43586d8398adb39e887354433027262624211a0f0100000d21364a5c646868686868615746331e0a00000000040a0c10101010100f0d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0b0b0b0b0600000000000000000000000000000000000000000000000000030a0c1113151614110d0b0500000000000000000000000000000000000000000a18242b2e3535353534211e160b0000000002101b2224353535353528261f140600000000000000000000000000000000000000000000122230393c4a4a4a4a4a4a39362d2010000000000000000000000000000000000a18263035414a4a4a4a4a4a4a4a443632281a0a0000000000000000000000000000000000000d1d2b344a4a4a4a4a4a4a3d3930231301000000000000000000000000000000000000122230393c4a4a4a4a4a4a3b382f22110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011527374455606a7174706860524535211100000000000002172d42576c8297acb49f8a74604b3a3c3c3c39362d1f0f0000071a2d3e4a4e53535353534c4639291703000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c1215161819171614100b0802000000000000000000000000000000000000000000000000000000000000000000070b1b20202020201c0b08010000000000000000000000000000000000000001080b171e2126282b2b29272220180d0903000000000000000000000000000000000718283640434a4a4a4a4a3632281b0b00000010202d36394a4a4a4a4a3e3a3124140200000000000000000000000000000000000000000a1d30404d516060606060604f4a3e2d1b0700000000000000000000000000000c1a2836434b576060606060606060594b45382816020000000000000000000000000000000005182b3b485e606060606060524d41301e0a00000000000000000000000000000000000a1d30404d51606060606060504c402f1c0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d31445560747f8689857d6c63523f2e1c08000000000000152a40556a7f95aabbaa907b6558535151514e4a3d2d1a0700000f202d36393e3e3e3e3e3633291b0b000000000000080e1020202020201d1b140b000000000000000000000000030c1215202020202017140e0500000000000000000000000000080e1020202020201d1a140a0000000000000000000000000000000000000000000000000000040a0c171f21272a2c2d2e2d2b2925201d150b08010000000000000000000000000000000000000000000000000000000008131c2030353535353531201d1409000000000000000000000000000000000008141c202933363b3e40403e3c37342b211e160a000000000000000000000000000000112436465359606060605f4b463928160300071b2d3e4a4f6060606060534e42311f0b00000000000000000000000000000000000000001024394d5f67757575757575705c4a36220d000000000000000000000000000d1c29384554606c75757575757575756e605645321e09000000000000000000000000000000000b2034485970757575757575675f4d39251000000000000000000000000000000000001024394d5f67757575757575665e4c38230f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b607384949b9e9b92816c5d4b37230e00000000000011273c51667c91aabbb09a84766b68666666645c4a36210d0000010f1a21242828282828211e170b000000000003111c23253535353535322f281c0e00000000000000000000071520272a35353535352c292216080000000000000000000003111c23253535353535322f271c0e0000000000000000000000000000000000000000000000050c181f222a33373c3f41434442403e3a363127201d140901000000000000000000000000000000000000000000000000000818253035454a4a4a4a4a463531261909000000000000000000000000000000111826303539464c5153555553514c483b3632281a130300000000000000000000000002172b4053646e7575757574615746321e09000d22364a5c70757575757568604e3a260b000000000000000000000000000000000000000012273c51677c8a8a8a8a8a8a7a644f39240f0000000000000000000000010f1d2b3a46566072818a8a8a8a8a8a8a8a8375604b36210b000000000000000000000000000000000d22374d62778a8a8a8a8a8a7d67523d2712000000000000000000000000000000000012273c51677c8a8a8a8a8a8a7b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f556a7f94a2b0b3b09f8f7b65503a25100000000000000c22374c61778b9fb4b4a29a87807e7c7b7c7a644e39240f00000000070d0f13131313130c0a0300000000000011212e373a4a4a4a4a4a47443a2c1c0b0000000000000000031525323c3f4a4a4a4a4a413e3426160500000000000000000011212f383b4a4a4a4a4a47433a2c1c0a0000000000000000000000000000000000000000000d181f2a33373a474c5154565859575554504b44373531261d1409000000000000000000000000000000000000000000000000132536434a5b60606060605b4b443726140100000000000000000000000008131c2f36434b52576166686a6b69666259544b4538311e160a000000000000000000000004192e43596e838a8a8a8a8b75614b36210c000f24394f647a8a8a8a8a8a7e6853392816030000000000000000000000000000000000000012273c51677c919f9f9f9f8e79644f39240f0000000000000000000003101f2c3b4858617482969f9f9f9f9f9d958173605645321e09000000000000000000000000000000000d22374d62778c9f9f9f9f927c67523d2712000000000000000000000000000000000012273c51677c919f9f9f9f907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061b31465b70859bb0c0c9bdab96806b56412b160000000000000a1f3347586f8499aabbb4a59d9693919191816c57422c170000000000000000000000000000000000000000081c2e3f4b5060606060605d574a3a281400000000000000000c2032434f54606060606056514434220e0000000000000000081c2f3f4b5060606060605c574a3a27140000000000000000000000000000000000000004111d2a343a474c555861676a6b6d6e6c6b69656055524b44373126190d00000000000000000000000000000000000000000000071c3043546070757575757571605544311d0e000000000000000000000009182530404c5460676f767b7d80807e7c77706960564e4132281a0c000000000000000000000012283d52677d92aa9fa9917c6651362614010b20354a6074889d9f9f99846f5746321e090000000000000000000000000000000000000012273c51677c91a6b5b5a48e79644f39240f0000000000000000000412212e3d495962768498a0b1bdbaaa9f937f6c60554538281602000000000000000000000000000000000d22374d62778ca2b5b5a7927c67523d2712000000000000000000000000000000000012273c51677c91a6b5b5a5907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081e33485d73889db2c8d6c6ad98836d58432e1800000000000004182a3a4e63798b9fabb6b7b2aba8a6a697816c57422c1700000000000000000000000000000000000000000e23374b5d657575757575726857442f1b060000000000000012273c4f616a75757575756c62513e291400000000000000000e23384b5d657575757575726857432f1a0500000000000000000000000000000000000715222f3b474c58616a71777c7f81828382807e7a756f6760554b44372a1d100200000000000000000000000000000000000000000b20354a6074858a8a8a8a8a8573604b3c2b190600000000000000000009192736434a5e66737d848a9093959593918b857e75685f4b45382a1c0c000000000000000000000c21374c61768b9fb4ad97826d5443301c08071c3043546c8197acb49f8a76614b36210c0000000000000000000000000000000000000012273c51677c91a6bcb9a48e79644f39240f0000000000000000061422303f4b5b6378869aa2b2bfb8a99f8c7e6a614b4437281a0a00000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afbbc6b9a8947f6a543f2a15000000000000000c21364a5b687e8d9ca4aaaeafb0b0ac97816c57422c17000000000000000000000000000000000000000010253a50657a8a8a8a8a8a87725d47321d0800000000000000152a3f546a7f8a8a8a8a8a806c56412c17000000000000000010253b50657b8a8a8a8a8a86725c47321d070000000000000000000000000000000007152533404c59626b777f868b91949698999795938f89847d73686055483b2e21100100000000000000000000000000000000000000071c30435463798b9f9f9fa3947f695a483520130000000000000000011527374454606b7b8692999fa9a8aaaaa8ab9f9b93877d6e6056473a2a19090000000000000000000a1f3347586f859aafb39e8874604b35200b0013253650667b90a8b9a9917c66513626140100000000000000000000000000000000000012273c51677c91a6bcb9a48e79644f39240f0000000000000001152431404d5d6579879ca4b4c0b7a79e8b7c686050433126190a0000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010263b50657b909faaada89e8978624d37220d00000000000000071a2d3d4e60687c868f95989a9b9b9b97816c57422c17000000000000000000000000000000000000000010253a50657a8f9f9f9f9c87725d47321d0800000000000000152a3f546a7f949f9f9f96816c56412c17000000000000000010253b50657a909f9f9f9c87725c47321d070000000000000000000000000000000515253343505e6677818a959b9faba9abadaeacaaa9a89e9992877d7362594b3f2e1f0f0000000000000000000000000000000000000000132536495b6a8095a4b6b49f8a78624d41301c0c000000000000000b1d314455607280909ca4afb4bac7bcb5bcbcb5b0a69d92827461584737271501000000000000000004172a3a54697e93a9b8a68f7a644f3a250f000b20364b6075899eb3ad97826d5443301c0800000000000000000000000000000000000012273c51677c91a6bcb9a48e79644f39240f00000000000009151d33424e5e667b899da5b5c2b5a59d897b665e4e42331d1409000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384c5e697f8b949794897c66594834200b00000000000000000f1f31424e5e66737a808385868686867f6a543f2a15000000000000000000000000000000000000000010253a50657a8fa5b5b29c87725d47321d0800000000000000152a3f546a7f94a9b5ab96816c56412c17000000000000000010253b50657a90a5b5b19c87725c47321d070000000000000000000000000000001323334350626a7c89969fa8b0b4bcc9bab8b7b9bbc6b9b4aea49c928477655d4b3d2d1d0d0000000000000000000000000000000000000008182c3d4b6074869cabbaa899846f5f4d3a2a170400000000000b1b31424b607383959eb1b5b5b1a8a2ab9faba7afb4b7b2a0988576615544311d0f0000000000000000000d22384d62788da3b5ab95806b563c2c1906091d3145566e8398adb39e8874604b35200b00000000000000000000000000000000000012273c51677c91a6bcb9a48e79644f39240f00000000000a192731445060687c8b9ea7b7c0b4a49c8779645c4c403124150100000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091c2f404f6169797f827e78665e4c3b2b1905000000000000000001132431404c5560656a6e6f717171716a614f3c2713000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d0700000000000000000000000000000e1e314150626a808d9ea7b4babab4aea9a5a3a2a4a6aab0b5c1b6b2a29a887b655b4a3b2b1805000000000000000000000000000000000000000f1d324556657b8d9fb5b3a1927d675847331f11000000000417293a4e606c8197a1b0bab4a49c938d8b8a8d929aa2b3b8b2a39a8473604b3d2d1a0700000000000000000b2035485a71869bb1b19c86715b4935210c0215273852677c92aab8a68f7a644f3a250f00000000000000000000000000000000000012273c51677c91a6bcb9a48e79644f39240f000000000c1b2837444b626a7e8d9fa9b8beb2a29a8677635b4b3e2f2213060000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000112132434f5b636a6d69625a4c40301d0d000000000000000000000613222f37444b5055595a5b5b5b5b544f4332200d000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000000006192c3c4e606a80959fabb8bab4a99f9993908e8d8e90959ba3afb4c0b4a69d8a7963594834201100000000000000000000000000000000000000021528384b5d6d8297a6b8b39e8876614c3f2e1a0a0000000a1f334658687d929fb1baa99f93867e787575777d84909ea6b7b4a296816c5b4a36210e000000000000000005192b3c556a8095aab6a48d78634d38230e000c21364c61768a9fb4ab95806b563c2c1906000000000000000000000000000000000012273c51677c91a6bcb9a48e79644f39240f0000000e1c2a394555606d80939fabbabdb0a09884766259493d2e201204000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031425323d4a4e5558544d483c3022120000000000000000000000000412192631353a404345464646463f3c32251503000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d07000000000000000000000000000c2135495b687d929eb5bcb7a99f968a847e7a7978797b80868f9aa2b4bcb7a89d8777624c3f2f1c08000000000000000000000000000000000000000a1a2e3f4c6176889db3b8a697826d5d4b3828160200011527374c6176899eb3baa89f8b7e736963606062676f7c889da5b7b49f8c79634e3c2c190600000000000000000f24394e64798ea5b7a9947e69543a2a17040a1f3346586f849aafb19c86715b4935210c060606060603010000000000000000000012273c51677c91a6bcb9a48e79644f39240f00010f1e2b3a4757607381959eb4bcbbaf9f9682746158483b2c1f100200000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007141f2d36393f423f38342b1d1204000000000000000000000000000009141d20252b2e30313131312a2720150700000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d07000000000000000000000000081b2e3f4d63798b9fb4bcb7a69d8b81776f6965636264666b717a84949fabbcb7a599836f5d4b38230f0000000000000000000000000000000000000000111f334758677d91a1b3b19f907b655645321e0f00081d3144556b8095a7b8b49f8a7b6860544d4b4b4d525e6678879da9baab99846f5a4935200c00000000040d14161c22364a5c72879db2af9a85705847331f1c1c17293a53697e93a8b6a48d78634d38231c1c1c1c1c1c18161006000000000000000012273c51677c91a6bcb9a48e79644f39240f03111f2d3c4858617583979fafbcbbb49d9481726056463a2b1d0f010000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f1a21232a2d292220190d000000000000000000000000000000000001080b1015191a1c1c1c1c15130d030000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000000e22374b5d6e8399aabbb8a69d887a6b625954504e4d4f51555d64727f8d9fb4beb3a1907b65503d2d1a07000000000000000000000000000000000000000417293a4d5f6f8399a8b9b29c8674604b3d2d18080b20354b6074899eb3b3a2917d675d4b4336363538404c5a647a8b9fb4b3a18d78634d38230e000000081621282b31312d3e576c8196acb49f8b76614c373131313131384d62788da3b5a9947e69543a2a3131313131312d2b2318090000000000000012273c51677c91a6bcb9a48e79644f39240f13212f3d4a5a62768599a1b1bdb9aa9f927f6c60544538291b0d00000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c0e1518140d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000011426364f657a8fa1b2bcab9e8878645c4c473b3b3938393b3f4b54606a7e93a0b2bfb09b86715b4a36210c00000000000000000000000000000000000000000c1c30414d62788a9eb4b6a495806b5b4a36261410253b50657b90a7b8af9a846f5f4d3f30262020222f3c4a5c6b8096abbca9947e69543f29140000041626333d404646464650657b90a7b8aa927d675238464646464646485a71869bb1af9a8570584746464646464646433f3528180600000000000012273c51677c91a6bcb9a48e79644f39241423303f4b5c6478869ba3b3bfb8a89e8c7d6a614b4336281a0b0000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261102020202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e101c1c1c1c1c12100a0100000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000081c3043546d8297adbfb59f8d7b655a4b3e342a25242324262e36434a606d8298a9bab5a38e79634e39240e000000000000000000000000000000000000000000132035485a697e93a3b5b49f8b79635443301c172c41566c8196abb9a8907b655041301c140b0b121e2d3e4c62778b9fb4af9a85705a36261401000d21334450555b5b5b5b5b6074899eb3ae98836e565b5b5b5b5b5b5b5b5b6a7f95aab49f8b76615b5b5b5b5b5b5b5b58534635231000000000000012273c51677c91a6bcb9a48e79644f39241c32414d5d657a889ca4b4c1b6a79e8a7c685f4f433026180a000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2618181818171513120d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c1212121212100e0b07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003111c2325313131313128251e1305000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d0700000000000000000000000b20354b6074889eb3c3ad98836e5d4b3c2e1f18100e0d0f11182530424d62778a9fb4c1aa947f6a553f2a1500000000000000000000000000000000000000000005192b3c4b6073859baabbaa9b8573604b3b2b192f44596e8499aeb39e8975604b36201301000000101f34475970859bb0b29d88735443301c080014283d50626b717171717171718298adb49e89747171717171717171717171798ea3bbaa927d7171717171717171716d64533f2b1601000000000012273c51677c91a6bcb9a48e79644f392530434f5f677b8a9da6b6c1b5a59d897a665e4e41321c140800000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2d2d2d2d2d2c2a2927222019100e08000000000000000000000000000000000000000000000000000000000000000000000000000000000b171e2127272727272523201c130806000000000000000000000000000000000000000000000000000000000000000000000000000000000011212e373a46464646463d3a302313010010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d07000000000000000000000010253a4f657a8fa6b8b7a58e79644e3f2e1e100500000000000813203448596d8297adc2b09b85705b392816030000000000000000000000000000000000000000000e1c30435464798c9fb4b4a3937e695948342031465b71869bb0b19b86715544311d080000000005182a3b576d8297acb49f8a75604b35200b00162b40556b8086868686868686879db2b9a89c868686868686868686868686859bb0c8b39d88868686868686868686826d58432d1803000000000012273c51677c91a6bcb9a48e79644f3936434a61697d8b9ea8b7c0b4a39b8779645c4c40312315010000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b665042424242424241403e3c38352b25231c1109000000000000000000000000000000000000000000000000000000000000000000000000000b1b2933363d3d3d3d3c3b3935302520190e000000000000000000000000000000000000000000000000000000000000000000000000000000081c2e3f4b505c5c5c5c5c524d41301e0a0010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d07000000000000000000000013283e53687d93a8c5b29d87725c4a362110000000000000000005182b3b51677c91a6bcb49e89745746321e09000000000000000000000000000000000000000000011426364a5c6b8096a5b6b49e8a78624d403032485d72879db2af9a856f5a392816030000000000162b41566b8096abbaa98b76614c36210c00192e43586e83989b9b9b9b9b9b9da6b7c6b5a49c9b9b9b9b9b9b9b9b9b9b9b9ba3b5c9b8a69d9b9b9b9b9b9b9b9b9b86715b46311c06000000000012273c51677c91a6bcb9a48e79644f374454606b7f8d9fa9b9beb2a29a8577635b4a3e2f221305000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b6657575757575757575553514d483c3a372e231c12040000000000000000000000000000000000000000000000000000000000000000000003172939464c5252525251504e4a4336352b1e1305000000000000000000000000000000000000000000000000000000000000000000000000000e23374b5d657171717171675f4d3a25100010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000152b40556a8095aabfae98836e593e2d1a030000000000000000000d22384d62778da2b7b9a88b76614b36210c0000000000000000000000000000000000000000000008182d3d4b6075879db2b9a899836e5e4d3a29465b70869bb0b19c86715746321e080000000006192c3c586d8298adb49f8a75604a35200b00192e43586e8398adb0b0b0b0b0b2b7c4c9c2b5b1b0b0b0b0b0b0b0b0b0b0b0b0b5c1c3c4b8b3b0b0b0b0b0b0b0b09b86715b46311c06000000000012273c51677c91a6bcb9a48e79644f4655607280949fabbabcb0a09884756259493c2e20120400000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b6d6d6d6d6d6d6d6d6c6a6867625a57504b3f382f1f170c0000000000000000000000000000000000000000000000000000000000000000000a1e334657616767676767656360544d493c302313040000000000000000000000000000000000000000000000000000000000000000000000071b2d3e50657b86868686857d67523d28120010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000172d42576c8297acc1ab96816c56412c17000000000000000000000b20364b60758babbcc6a28d78634d38230e00000000000000000000000000000000000000000000000f1e324556657b90a0b2b3a1917c6658463344596e8399aeb49f8a76614b36251304000002102135495b71869cb1b29d87725443301c0700192e43586e8398a8a8a8a8a8a8a8a8b1b5c1c8bbb4a8a8a8a8a8a8a8a8a8a8a8a8abb0bccbbeb1ada8a8a8a8a8a89b86715b46311c06000000000012273c51677c91a6bcb9a48e79644f57617382969eb5bcbcb59e9682746157483b2c1e10020000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcc4af99838282828282828282817f7e7c78726c655d504c4033291c1002000000000000000000000000000000000000000000000000000000000000000c21364c61757d7c7c7c7c7a78746d625a4d4130221200000000000000000000000000000000000000000000000000000000000000000000000d22364a5c6f849a9b9b9b8976614c37210c0010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000182d43586d8298adc0ab96816b56412c16000000000000000000000b20354b60758a9fb4c9a38e79634e39240e0000000000000000000000000000000000000000000000031628384c5d6d8298a7b8b39d8876614c3f40556b8095aabaa9917c675443301f170f0e151d2f404d63788da4b5af99846f5a3625130000192e43586e839292929292929292929ba3b5bbaa9f939292929292929292929292959eb0c6b19f979292929292929285715b46311c06000000000012273c51677c91a6bcb9a48e79645962758398a0b0bcbbab9f948072605646392a1d0e00000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcc7b3a1999797979797979797969593918d87817a70665e4c473a2d2010010000000000000000000000000000000000000000000000000000000000000e23384e63788d92929291908e888278675f4d402f1a0a000000000000000000000000000000000000000000000000000000000000000000061a2c3d4f647a8ea2b1a996806b5847331f0a0010253a50657a8fa5bab29c87725d47321d0000000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000172c41576c8196acc1ad98826d583b2b18050000000000000000000d22374c62778cabbcbcab8d77624d38220d00000000000000000000000000000000000407090a0806000a1a2f3f4c6177889eb3b7a697816c5d4b384f647a8fa6b7b19b8672604a413329242327313f4c5e6d8298adbcab937e68533e2813000010253b50657b7d7d7d7d7d7d7d7d7d859bb1b49f8b7e7d7d7d7d7d7d7d7d7d7d7d8095a8b9ad97817d7d7d7d7d7d7d7c66513c261100000000000012273c51677c91a6bcb9a48e79646377859aa2b2beb9aa9f8d7f6b60544538291b0d0000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcd0bfb3afacacacacacacacacacaaa8a6a59c978f857b6f61584a3e2d200f0000000000000000000000000000000000000000000000000000000000000e23384e63788da3a7a7a6a5a79e978b7d675e4c3828160200000000000000000000000000000000000000000000000000000000000000000c2135495b6e8398aeb49f8b77624d3a2a17040010253a50657a8fa5bab29d87725d4825130000000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000152a3f556a7f94aac8b09b8671594834200c00000000000000000215283850657a8fa5c9b49f8a75604b36210b00000000000000000000000000050b0d141a1c1e1f1d1b1710111f334758677d92a2b3b59f8d7a6556454a6073889db3b5a3947f695f4c463a393938454b5d667c8d9fb5b49f8b77624c37220d00000e23374b5d656868686868686868697e93a9bbaa8f7a6868686868686868686868758a9eb4ad97826d686868686868665e4c38240f00000000000012273c51677c91a6bcb9a48e796479879ba3b3c0b8a89e8c7d69614a4336271a0b000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcd1cfc6c2bfbfbfbfbfbfbfbfc0bfbdc3b6b2aca29b908376645c4a3e2d1d0d00000000000000000000000000000000000000000000000000000000000e23384e63788da3afb0b3b8b8b3aa9f8d7c665645321e090000000000000000000000000000000000000000000000000000000000000005182b3b4e63788c9fb4ab97826d5948341c0c000010253a50657a8fa5bab39e88735443301c0700000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d07000000000000000000000011263b51667b90aabbb59f8c77624c3a2a190b00000000000002101d3245566b8095abc0b19c87715645321e090000000000000000000000070d192022292f31343532302c25201d2a3a4d5f6f849aa9baab9c8674604b4354697f94a5b7b49f8d7d6c6158514e4e505660697b8a9eabbaa998826d594834200b0000081c2e3f4b50535353535353535362788da3b5ab96806b565353535353535353566e8398aeb39e8874605353535353514c40301d0900000000000012273c51677c91a6bcb9a48e7a7a889da5b5c1b6a69d8a7c675f4f433025180a00000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bccfbeb2adaaaaaaaaaaaaaaaaabacaeb3b8c5c0b4b0a199877a645c4a3b2b1808000000000000000000000000000000000000000000000000000000000e23384e63788d9a9a9b9ea6b0b4bbab9d8775604b36210b000000000000000000000000000000000000000000000000000000000000000b203448596d8297abb49f8c78634d3b2b1800000010253a50657a8fa5bab49f8a75604a35200b00000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d0700000000000000000000000c22374c61778b9fb4bcab957f6a594737281b110b0501080b151d2d3e4b6075879db2c3ac97826d5738281603000000000000000000030f1a212b34383e4447494a4846413b35312730414d62788a9fb4b6a4957f6a5b494b6074879dabbcab9f9281766c666463666b747f8b9ea8b9b49f8a78624d3b2b180500000011212e373b3d3d3d3d3d3d3d485a71869bb0b29c87725b493d3d3d3d3d3d3852677d92aab8a78f7a65503d3d3d3d3c383022120000000000000012273c51677c91a6bcbfaa957f8a9ea6b6c1b5a59c887a655d4d41321c13080000000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcc6b2a09895959595959595959597999ea7adb4bbbfb3a59d8a7a645948362513000000000000000000000000000000000000000000000000000000000d22384d627884858586888d9aa2b4b7a5917c67513c271200000000000000000000000000000000000000000000000000000000000004172a3a4d62778b9fb4ae98836e5b49351d0d00000010253a50657a8fa5babbaa8c77614c37210c00000000000000152a3f546a7f94a9bfab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d0700000000000000000000000a1f3347586f849aafc2b39e8977615546392e222019141d2028323e4a5c697e93a5b7b7a5907b66503b26110000000000000000000a161e2d363c484d53595c5e5f5d5b57504b44373135495a6a7f94a3b5b49f8b7963544556667c8d9fb4bcb49f9689817c79787b8087949fa9b9b2a0947f695a48351d0d0000000003111c23252828282828282b3c556a7f94aab6a48e79634e392828282828374c61768b9fb4ab96816b563d2d282826241d12040000000000000012273c51677c91a6bcc3af9d959ea8b8c5b5a39b8778645c4c3f30231400000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcc2ad98827f7f7f7f7f7f7f7f808284898f989faab5c2b7a89d8877625443301c090000000000000000000000000000000000000000000000000000000b2034485a62707070707378849aa8baad98836e583626140100000000000000000000000000000000000000000000000000000000000a1f3347586b8196a9b3a18e79644f3c2c190000000010253a50657a8fa5bac8a5907b66503b261100000000000000162b40556b8095aac0ab96816c56412c17000000000000000010253b50657a90a5bab19c87725c47321d07000000000000000000000004182a3a52677c91a4b5b9a89a847361574b3f38352b26313538454b5c647a8a9fb4c1b29d8774604b35200b00000000000000000d1a28323e4a4e5a62696f71737472706c6560554b45383c4b6073869babbaa99a8472604a4c5e6a7f949eb4bab0a79e97918e8e90959da5b4baafa198826d614f3c2b1900000000000000080e1013131313131323394e63798ea5b6a9947f6a543b2b1813131f3347586f859aafb29d87725b4a362113110f0900000000000000000012273c51677c91a6bcccbbafaab4b9c6bbaa9b8577625a4a3e2f21130500000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b6a6a6a6a6a6a6a6a6b6d6f747a828c9ca4b4c0b7a69b8572604a37271502000000000000000000000000000000000000000000000000000005192b3c484d5a5a5a5b5a62768a9fb4b19c87725443301c0800000000000000000000000000000000000000000000000000000000031628394c6176899eb4af9a846f5c4a361e0e0000000010253a50657a8fa5babfaa95806a553f2e1b08000000000001152737576c8197acbfaa95806a55402b15000000000000000010253b50657a90a5bab19c87725c47321d070000000000000000000000000c20354b6073869caabbb4a2988275655d534d483c37444b4f5660697a889da9bab5a3937e685544311d08000000000000000d1d2b38454b5c646f787e8486898a8785817b746960564b3f4455647a8c9fb4b4a2927d6859484f616b80929fa9b2b8b3aca6a3a3a5abb2b7b4b09e958374604b43321e0e0000000000000000000000000000000c21364a5b72879cb2b09b8570594834200b04172a3a54697e93a9b6a58e79634e39240e00000000000000000000000012273c51677c91a6bcd4c4b7b2b7c4cab49f8a786359493c2d2011030000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b665555555555555556575460646d79869aa2b4c3b4a3917c675544311d080000000000000000000000000000000000000000000000000000000d1d2b34384545453c49576e8398adb49f8a75604b35200b00000000000000000000000000000000000000000000000000000000091e3246576a7f95a8b4a38f7b65503e2d1b000000000010253a50657a8fa5bac6b19b86715d4b3722130200000000081d3144556f849aafbea8937e69533e2914000000000000000010253b50657a90a5bab19c87725c47321d07000000000000000000000000081c304354657b8c9fb4bdb2a098867b7068625a5d5c5560646a757e8b9da6b7b9a79b8573604b372715010000000000000c1c2b3b4856606d79848d93999c9e9f9d9b9690887e74655d4e424a5c6c8196a5b7b39e8977624c4351626b7d8b99a1abb2b7c3b9b8c5b8b3ada29b8f807260564532251500000000000000000000000000080d0f151a2d3d566b8096abb59f8b77624c372215151523384d62788da3b5aa947f6a553b2b19151515151514120c0200000012273c51677c91a6bccbb7a69da6b4c1bbaa9c87776259483b2b1d0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66504040404040404036434b4f5b6375849aa5b6c1b29c8774604b36200b000000000000000000000000000000000000000000000000000000000d1920223030302b39566b8095abbbaa8b76614c36210c000000000000000000000000000000000000000000000000000000021527374b6175889eb3b09b85705d4b372010000000000010253a50657a8fa5bac9b5a38f7a644f41302011060000051325364b6075899eb4c5a7917c67523c271200000000040b0c0d10253b50657a90a5bab19c87725c47321d0d0d0d0d0d0b08010000000000011426364b5d6a7f949fb4bbb2a49c8f857d7874727173757a7f87939fa9b7b7a89e897963554431190900000000000009192a3a48596275828d9aa1a8aeb1b3b4b2b0aca79e94877b68604f424b6175879db2b9a798836e5e4c4451606879838f969da5a4a7a7a5a79e9790857a6b60544538281607000000000000000000000002101b22252a2a2a3a4f647a8fa6b7ab937e685339292a2a2a2a35485a71869bb1b09b86715948342a2a2a2a2a2a29261f1406000012273c51677c91a6bcc8b29d889ba3b4c1b6a59c87776259483b2b1d0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2a2a2a2a2a2b2630353d49576176879db2c2b6a5917c66513626140100000000000000000000000000000000000000000000000000000000050b0d1b1b1b2a3f54697f94a9c8a28c77624d37220d000000000000000000000000000000000000000000000000000000081d314455697e93a7b6a4917c66513f2e1c02000000000010253a50657a8fa5bad2c1ae99836f5f4d3e2f211915141820304354667c91a8b9b8a68e79634e39240e0000000c181f222222253b50657a90a5bab19c87725c4732222222222222201d1409000000000008182e3f50616c81949faab5b5b1a29a938d898786888a8f959da6b4bab5a59d8a7b645b49372715000000000000021527374758627785979fabb3bbb4afadacaeb2b7b8b3a59d8b7e69614f4657667c90a0b2b2a0907c665746414e5b636e7a81878d8f9192908d88827b70655d4a4336281a0a00000000000000000000000010202e373a3f3f3f3f4a6074889db3af99846f57463f3f3f3f3f3f3c556a8095aab5a38c77624d3f3f3f3f3f3f3f3e3b322414020012273c51677c91a6bcbaa5907b859ba3b4c0b6a59c86776259483b2b1d0d000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261515151516141c202c394758677c91a4b6c3ac97826d5443301c0800000000000000000000000000000000000000000000000000000000000000050514293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000000000000000000001325364b6074879db2b19c8673604a35201100000000000010253a50657a8fa5bacfc7b3a1927d675c4c40352c2a292b34414a6072859bb0c6b39e8873604a35200b00000c1d2a34373737373b50657a90a5bab19c87725c4737373737373737353126190900000000001021334351636c7f8c9ca4b5c0b4afa8a89e9d9c9d9faaaab2b7bcab9f98877a645d4b3c2c1909000000000000081d3144556176879ba3b5b9b4aa9f9a9796989da6b0b4b7aa9f937f695e4c4c5e6e8398a7b9b29d8775614b3e3d494e5c646c72787a7c7d7a78746d665e4f4b3f3025180a000000000000000000000000081b2e3e4b4f5454545454546c8197acb49f8a766154545454545454545464798ea5b7a8937e685454545454545454534f42321f0c0012273c51677c91a6bcb9a48e7976849aa2b4c0b6a49c86776259483b2b1d0d0000000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000001080f1b2a3a4a6073869cb1c7b39e8874604b35200b00000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000000000000000000071c304354687d92a5b7a5927d675443301c0700000000000010253a50657a8fa5bad4cabfb39e897a655e4d493c3f3f3b484c5f697e93a3b4c1ad98836e5443301c070004182a3b474c4d4d4d4d50657a90a5bab19c87725c4d4d4d4d4d4d4d4d4b44372614010000000003152534445161697b869ca6b8c8c5c6b9b4b2b1b2b4bbc8c8cab59f8d8276645c4b3f2e1e0e00000000000005182b3b4b6074849aa5b5b6a89e958b85828183888f9ba2b5bbb49f8c7c6658474c6277899eb3b7a596816c5c4a37353e4a4f565a6265676765636055504c40372e1c1308000000000000000000000000000d22374b5c646a6a6a6a6a6a6a7b90a5baa9917c6a6a6a6a6a6a6a6a6a6a6a72889db2af9a846f6a6a6a6a6a6a6a6a69604f3b26120012273c51677c91a6bcb9a48e796475849aa2b4c0b6a49c86776259483b2b1d0d00000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000c1c3043546b8096abc0b8a68d78624d38230d00000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000000000000000000000000000000000000000b20354a6073869cb1b29d8774604b3625130000000000000010253a50657a8fa5bac3b7b2b1a79e8a7b6d635b5754545659626d7d8c9fb4c1b4a38f7b655036251300000b1f344759616262626262657a90a5bab19c8772626262626262626262605544311d08000000000007162634434f5d6577889db3c8c9c3b6b2afaeb0b3b8c5c6c3ae98836e61584a3e2e2010000000000000000b203448596b8095a2b4b6a49c8a7f76706d6c6e747a85959fabbbaa9e8976614c4859687d92a2b4b49f8c7a645544312e363a3c494d4f5252504e4b4437382f221b100000000000000000000000000000000f253a4f647a7f7f7f7f7f7f7f7f95aac7b09b847f7f7f7f7f7f7f7f7f7f7f7f859bb1b49f8b7f7f7f7f7f7f7f7f7f7e69533e29140012273c51677c91a6bcb9a48e79646175849aa2b4c0b6a49c86776259483b2b1d0d000000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000013253651667b91a6bbc4a48f7a644f3a250f00000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000000000000000000000000000000000000081c2f3f51667c91a4b6a7937e6955443118080000000000000010253a50657a8fa5bab7a59d9ba3a89e908278716c6a696b7077828d9faabbbbaa9b85705d4b37180800000c22374c61777777777777777d91a7bcb29c877777777777777777777773604b35200b00000000000013253648596379879ca6b8b9b3aaa59c9a999b9ea7aeb2bfb2a0988273604b41301c0c000000000000011426364d62778a9fb4b7a59c86786a61585857546065707f8d9fb5b8a796816b59484a6072849aa9baab9c8673604b3c2c22242c35383a3c3d3b38353126231c120800000000000000000000000000000000152a3f546a7f94949494949494959dafc3b4a29b9494949494949494949494949ba3b5bbaa9f94949494949494949488735e48331e0012273c51677c91a6bcb9a48e7964576175849aa2b4c0b6a49c86776259483b2b1d0d0000000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000f24394f64798ea4b9bba6917c66513c271100000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000000000000000000000000000000000000000e23374b5d70859bb0b39e8875604b372715000000000000000010253a50657a8fa5bab29d87869ba8b4a0988d86817f7e80858b979fabbbbdb49f8c7b654f3f2e1c0000001c31465b71858c8c8c8c8c8c919bacc0b6a59c8c8c8c8c8c8c8c8c8c8c78634d38230e0000000000071c3043546278899ca5b6b5a89e958d87858485898f99a1b4b9b2a098826d5f4d3a2a17040000000000081c3043546c8196a8baab9d8777635a4c473a36434a50616a7f94a1b3b49f8a77624d435463798b9fb4b5a4947f695a493520131920232527282523201d140909000000000000000000000000000000000000152a3f546a7f94a9a9a9a9a9a9aaafbbc9c0b4b0a9a9a9a9a9a9a9a9a9a9a9a9b1b5c1c8bbb4a9a9a9a9a9a9a9a99d88735e48331e0012273c51677c91a6bcb9a48e79644f576175849aa2b4c0b6a49c86776259483b2a1d0d00000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000e23384e63788da3b8bda7927d68523d281300000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000000000000000000000000000000000000071b2d3e50657b90a3b5a8947f6a5745321909000000000000000010253a50657a8fa5bab29c87798a9ea9b2ada39b969494969a9faab5bcbcb49f947f6a5d4b3721110000001c31465b71869ba2a2a2a2a2a7acb9c9c3b6b2a2a2a2a2a2a2a2a2a28d78634d38230e00000000000b20354a6072849aa7b6b5a39b898078726f6e70747a83919ea8b9b2a0927d675847331f0a00000000000b20354b6074889eb3b59f8d7a6459493c332a2530354350616f8499abbaa9937e695336495b6a7f95a4b6b49f8a78634d41301c0c0c0d101212100e0b08010000000000000000000000000000000000000000152a3f546a7f94a9aeaeaeaeaeaeaeb0b5c1c8c1b5b0aeaeaeaeaeaeaeaeaeaeaeaeb4bac7c5b8b3aeaeaeaeaeae9d88735e48331e0012273c51677c91a6bcb9a48e79644f46576175849aa2b4c0b6a49c86776259483b2a1d0d000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000f253a4f647a8fa4b9bba6907b66513b261100000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000000000000000d22364a5c6f849aafb49e8976614c39281600000000000000000010253a50657a8fa5bab29c87727c8a9ca4b4b5b1aca9a9abafb4bbbfb3ab9f948172604a3f2e1b030000001c31465b71869bb0b7b7b7b7bcc0c9d7d3cac7b7b7b7b7b7b7b7b7a28d78634d38230e00000000081c2e3f53697e93a2b4b5a49b85786a625a5a595460646e7c8a9eaabbb39e8976614c37210d000000000010253a4f657a8fa6b8ae98836e5c4a3a2c1f17131c2033434e63798c9fb5af9a846f54433d4b6074869cabbaa99a846f5f4d3a2a18040000000000000000000000000000000000000000000000000000000000152a3f546a7f9499999999999999999ba3b5c9b5a39b9999999999999999999999999fa9bab8a69e9999999999999988735e48331e0012273c51677c91a6bcb9a48e79644f3946576175849aa2b4c0b6a49c86776259483b2a1d0d0000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000316283952677c92a7bcc2a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000000000000061a2c3d4f647a8ea2b3a996806b5847331b0a00000000000000000010253a50657a8fa5bab29c8772657986969ea8afb3b5bcc8bbb4b0aaa1998c7f6d605443302110000000001c31465b71869baaaaaaaaaaadb2becec5b8b3aaaaaaaaaaaaaaaaa28d78634d38230e000000000e23374b5d72879cb2bbaa9c867562594d483c36434b4f5e667c8c9fb4b8a7937e69533b2b180500000000152a3f556a7f94aabcab907b66513e2e1c0e0400071521364a5b70869bb0b49f8a75604b354556657a8d9fb5b3a2927d675847331f11000000000000000000000000000000000000000000000000000000000012273c51677d848484848484848484859babbcb09b858484848484848484848484838b9fb4b39e8883848484848484826d58432d180012273c51677c91a6bcb9a48e79644f393946576075849aa2b3c0b6a49c86776259483b2a1d0d00000000000000000000000000000000000000000000000000000000000000000d22374d62778ca2b7bca7927c67523d2712000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000020f1e3246576d8297adc2b6a48c77624c37220d00000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000000000000000000000000000000000c2135495b6e8398aeb49f8b77624d3a29170000000000000000000010253a50657a8fa5bab29c87725b6374808992999d9faba3aa9f9b958e847a69614a4336251303000000001c31465b718595959595959598a0b2c5b8a79e9595959595959595958d78634d38230e0000000010253a50657a8fa5b6b49f8c796357483b352b263035404c5e6c8196abbcb09b8671594834200b00000000172c42576c8197acb59f8b76604b36211000000000071a2d3d566b8095abbbaa8c77624c37384b5d6c8197a6b7b39e8977614c3f2f1a0a000000000000000000000000000000000000000000000000000000001024394d5f676f6f6f6f6f6f6f6f6f778c9fb4ab95806f6f6f6f6f6f6f6f6f6f6f6f8399aeb39e88736f6f6f6f6f6f6d64533f2b160012273c51677c91a6bcb9a48e79644f39283945576074849aa2b3bfb6a49c86776259483b2a1d0d000000000000000000000000000000000000000002040707070707070707070d22374d62778ca2b7bca7927c67523d2712070707070707070707070000000000000012273c51677c91a6bcbba5907b66503b261106060001080b151d2d3e4b6175889eb3c6b19c86715947341f0b00000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000000000005182b3b4e63798c9fb4ab97826c5948341c0c0000000000000000000010253a50657a8fa5bab29c87725d56606b757d84888a8d8e8c8a86807a6f645c4f4330251808000000000013283e53687e7f7f7f7f7f7f8298adc2b39e897f7f7f7f7f7f7f7f7f7f76614c37210c00000001162c41566b8196abc3ae98836e5b4a392b2019141c2030404d62778c9fb5b5a38c77624d37220d00000000192e44596e8399aeb39e88735645321e09000000000013293e53687e93a8c8a48e79644f392e3f4c6176889db2b8a798826d5d4c382816030000000000000000000000000000000000000000000000000000000a1d30414d5159595959595959595970859ab0b19c86715b595959595959595959677d92aab8a68f7a6459595959595853463523100012273c51677c91a6bcb9a48e79644f3924283945566074839aa1b3bfb6a49c86776259473b2a1d0d0000000000000000000000000000000000071117191d1d1d1d1d1d1d1d1d1d22374d62778ca2b7bca7927c67523d271d1d1d1d1d1d1d1d1d1d1d0b09030000000012273c51677c91a6bcbba5907b66503b261b1b1b1b141d2027313e4a5c6a7f94a7b8c0ab95806b563b2a180500000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000000000000000000000000000000000b203448596d8297abb49f8c78634d3b2b18000000000000000000000010253a50657a8fa5bab29c87725d454b5760676f737578787774716a645c4e4a3e321c130800000000000011263a4e60686a6a6a6a6a6a7b90a5bab19c87726a6a6a6a6a6a6a6a6a615847331f0a00000004192e44596e8399aebca7927c67523d2d1b0d050108122034485971869bb0c1a48f7a644f3a250f00000000192e44596e8399aeb39e89735745321e09000000000013293e53687e93a8c8a38e79644e3924334658667c91a1b3b2a0907b655645321e0f00000000000000000000000000000000000000000000000000000000122330393c444444444444443b54697f94a9b6a48d78634e444444444444444c61768b9fb4ab96806b563d444444433f352818060012273c51677c91a6bcb9a48e79644f39241b2838455660748399a1b3bfb6a49c86776259473b2a1d0c0000000000000000000000000000000a18242b2e3232323232323232323232374d62778ca2b7bca7927c67523d323232323232323232323232211e160a00000012273c51677c91a6bcbba5907b66503b303030303026313538454b5c647a8a9fb4c5b4a28f7a644f3a250f0000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000000000000000000000000000004172a3a4d62778b9fb4ad98836e5b49351d0d000000000000000000000010253a50657a8fa5bab29c87725d4739454b525a56606263616054554f4a3e362d201400000000000000000b1e31424e535555555555657a90a5bab19c87725c55555555555555554c473a291704000000061c31465b71869bb0b9a48e79644f39240f0000000005182b3b586e8398adbca7917c67523c271200000000172c42576c8197acb8a78b76604b3621100000000008182d3d566b8095abbbaa8c77624c3722293a4d5e6e8399a8b9b29d8775604b3e2d190900000000000000000000000000000000000000000000000000000004121d24272f2f2f2f2f2f2f384d63788da4b6a9947f69543b2a2f2f2f2f3347586f849aafb29c87725b49352f2f2d2b23180a000012273c51677c91a6bcb9a48e79644f39240f1a2838455660748399a1b3bfb6a49c86776259473b2a1d0c000000000000000000000000000718283640434747474747474747474747474d62778ca2b7bca7927c6752474747474747474747474747473632281b0a000012273c51677c91a6bcbba5907b665045454545454537444b4f5660697a889da9babcab9a846f5c4b37220d0000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000000000a1f3347586b8196a9b3a18e79644f3c2c1900000000000000000000000010253a50657a8fa5bab29c87725d472832363d38454b4d4e4c4a433639362d211a0f010000000000000000021324313a3e4040404050657a90a5bab19c87725c47404040404040403733291c0c00000000081d32475d72879cb2b8a38e79634e39240e0000000002162838586d8298adbda8937d68533e281300000000152a3f556a7f94aac5a6907b66513f2e1d0e0401081325364a5c71869bb0b49f8a74604a35201b30404d6277899eb3b6a596806b5c4a37261401000000000000000000000000000000000000000000000000000000000a10121a1a1a1a1a1a2135495b71869cb1b09b85705947341f1a1a17293a53697e93abb6a48e79634e39231a1816100600000012273c51677c91a6bcb9a48e79644f39240f0a1a2838455660748399a1b3bfb6a49c86776259473b2a1d0c0000000000000000000000001124364653595c5c5c5c5c5c5c5c5c5c5c5c5c62778ca2b7bca7927c675c5c5c5c5c5c5c5c5c5c5c5c5c5c4b45392816030012273c51677c91a6bcbba5907b665b5b5b5b5b5b5b5b5560646a747e8b9da6b7c0b59f8d7a644f3e2e1b080000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000000031628394c61768a9eb4af99846f5c4a361e0e00000000000000000000000010253a50657a8fa5bab29c87725d47321e212727313638393735302524221b1007000000000000000000000006131e26282a2a2a3b50657a90a5bab19c87725c47322a2a2a2a2a2a211f170c0000000000061b30455b70859ab0bba5907b66503a2917090000030e1e3245566f859aafc7a6917b66513c26110000000010253a4f657a8fa7b8ae99836e5d4b3b2c1f18141c2530435464798ea3b5af9a846f5443301c1220344859697e93a3b4b49f8c7a645544311d0e00000000000000000000000000000000000000000000000000000000000000040404040406192c3c566b8095abb49f8b77624c37220d000d22374d62778b9fb5a9947f6a543b2b180501000000000012273c51677c91a6bcb9a48e79644f39240f000a1a2838455660748399a1b3bfb6a49c86776159473b2a1d0c0000000000000000000000172b4053646e7272727272727272727272727272778ca2b7bca7927d727272727272727272727272727272605745321e090012273c51677c91a6bcbba5907b70707070707070707172757a7f87939fa9b7c2b4a297816c5c4a362010000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000000091e3246576a7f95a8b4a38f7b65503e2d1b0000000000000000000000000010253a50657a8fa5bab29c87725d47321d0b12151d20232322201c130f0d070000000000000000000000000000020b11131515253b50657a90a5bab19c87725c47321d15151515150c0a0400000000000004192e43596e8398aec0ab96816b584633261c1315161e2b3b4b60758a9fb4baa98f79644f3a240f000000000b20354b6074889eb3b2a18f7a6459493d342a263036434a6072849aafbaa9937e695336251305182b3b4b6073859baabbaa9b8573604b3c2b19050000000000000000000000000000000000000000000000000000000000000000000000000f243a4f647a8fa6b7ab927d6853392916030b2034485970859bb0b09b8570594834200b00000000000012273c51677c91a6bcb9a48e79644f39240f00000a1a2838455660748399a1b3bfb6a49c86776159473b2a1c0c00000000000000000000192e43596e828787878787878787878787878787879cb2c7c8b39d8887878787878787878787878787878675604b36210b0012273c51677c91a6bcc6b19c8685858585858585858688898f949da6b4babfb3a49a8474604b3e2d1b02000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000000000000000000000000021527374b6175889eb3b09b85705d4b3720100000000000000000000000000010253a50657a8fa5bab29c87725d47321d080002090b0d0e0c0b07000000000000000000000000000000000000000000000010253b50657a90a5bab19c87725c38281603000000000000000000000000000014293f54697e94a9c0b39e8876614c443730252b28323c4859687e93a8bab49f8a76604b36210b00000000081c3043546c8197a9bab29d8777635b4c473b36434b54606b7f94a2b3b49f8b77624d37220d000d1c30435463798b9fb4b5a3937e695a483520120000000000000000000000000000000000000000000000000000000000000000000000000b20354a6074889db2ae99846f5746321e0a05182b3b546a7f94a9b59f8b77624d37220d00000000000012273c51677c91a6bcb9a48e79644f39240f0000000a1a2838455660748399a1b3bfb6a49c86776159473a2a1c0c0000000000000000001c31465b71869b9c9c9c9c9c9c9c9c9c9c9c9c9c9ca5b6cacbb7a69d9c9c9c9c9c9c9c9c9c9c9c9c9c9c8b75614b36210c0012273c51677c91a6bcc9b5a49c9a9a9a9a9a9a9a9a9b9d9fa9aab2b7c4bab4a199867661564531201000000000000000000000000000000000000000000000000000000000000000000000000013283d52687d92a7b8a38d78634e38231308080000000000000000000000000000000000081d314455697e93a7b6a4917c66513f2e1c020000000000000000000000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000010253b50657a90a5bab39d88735645321e0b0b0c10150c0b04000000000000000d23384d62788da2b4b8a797826d60554a43364039464b5a6277889db3c1ae99836e5745321e0900000000011426364d62778a9fb4b7a59c87796b615958575460657280949dafb8a796816b594834200b00011426364a5b6b8095a4b6b49e8a78624d41301c0c0000000000000000000000000000000000000000000000000000000000000000000000071c3043546c8197acb49f8a76614b36210c000e23384e63788da4b6ab937e685339291703000000000012273c51677c91a6bcb9a48e79644f39240f000000000a1a2838455660748399a1b2bfb5a49c86776159473a2a1c0c00000000000000001c31465b71869bb0b1b1b1b1b1b1b1b1b1b1b1b1b2b6c3d3d4c4b7b3b1b1b1b1b1b1b1b1b1b1b1b1b1a08b76614b36210c0012273c51677c91a6bcd2c2b5b1b0b0b0b0b0b0b0b0b0b2b4bac7c6b9b4a99f9483766158473827150200000000000000000000000000000000000000000000000000000000000000000000000011273c51667c91a6c7a48f7a644f3a3025231c11030000000000000000000000000000011426364b6074879db2b19c8673604a352011000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000000000f24394f64798ea4c6b7a68b76604b36221f2022252a221f180c0000000000000b2035485a70859babbcb19f96807365605456555757616978869ca6b8b5a3927c675239281603000000000008203448596b8095a2b4b6a59c8a8077706d6c6e747b85959eafbcab9e8976614c3b2b1805000008182d3d4b6074869cb2b9a899836f5f4d3a291704000000000000000000000000000000000000000000000000000000000000000000000013253650667b90a8b9a9917c6751372715010c2135495b71869cb1af99846f5746331e0a000000000012273c51677c91a6bcb9a48e79644f39240f00000000000a1a2738455660738399a1b2bfb5a49c86776159473a2a1804000000000000001c31465b71869bb0bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb6a08b76614b36210c0012273c51677c91a6bcbdbdbdbdbdbdbdbdbdbdbdbdbcbbc4b7b3ada89e968a7f726158473a2a1a0a0000000000000000000000000000000000000000000000000000000000000000000000000010253a4f657a8fa9baa7927d68524a4336382f21110000000000000000000000000000081c304354687d92a6b7a5927d675443301c07000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000000000d22384d62778da8bac4a38e79634e3e373435373a3f37342a1d0c000000000006192b3c4f647a8d9fb5beb09e96857b746e6b6a6c6f767e899ca4b5bcab9b8573604b35200b00000000000005182b3b4b6074849aa5b5b6a89f958b8583828488909ba3afbbb49f8d7c665847331d0d000000000f1e324556657b909fb1b3a1917c675847331f1100000000000000000000000000000000000000000000000000000000000000000000000b20364b6075899eb3ad98826d5544311d08061a2c3d556b8095aab49f8a76614c36210c000000000012273c51677c91a6a8a8a48e79644f39240f0000000000000a1a2738455560738398a0a8a8a8a49c8677615947341f0a000000000000001c31465b71869ba8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a08b76614b36210c0012273c51677c91a6a8a8a8a8a8a8a8a8a8a8a8a8a8a7a5a4a69d98928a80776a6054463a2a1c0c00000000000000000000000000000000000000000000000000000000000000000000000000000b21364b60768a9fb4b09a8470626054504b3f2f1c08000000000000000000000000000b20354b6073869cb1b29d8774604b36251300000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000000000b20364b6075899fb4bfaa957f6a5c4f4c474b4c50554c473b2a180400000000000e22374b5c6d8297a2b4bcb0a39b908883818081858a949ea7b5bcb49f8c7b655443301c08000000000000000d1d3145566177879ba3b4bab4ab9f9b9897999ea6b0b5b6aa9f937f695e4c3a2a170000000000021628384b5d6d8297a6b8b39d8876614c3f2e1a0a00000000000000000000000000000000000000000000000000000000000000000000091d3145566e8398a8a89e8974604b35200b000f24394f64798ea5a8a9917c67523c2712000000000012273c51677c91939393938e79644f39240f000000000000000a1a27374455607382929393939393938677614c37220c000000000000001c31465b71859393939393939393939393939393939393939393939393939393939393939393939393938b76614b36210c0012273c51677c91939393939393939393939393939392908e8c88827d776b62594a4336291c0c000000000000000000000000000000000000000000000000000000000000000000000000000000091e3245576f8499a9b4a29882787472655d4b38230e000000000000000000000000081c2f3f51667c91a4b6a7937e69554431180800000000000000000000000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000000081d3144556f8499aec3b49f8a7a6b6462596061656a615947341f0b0000000000081b2e3e4b6074849aa3b0bdb4b0a69d989695979a9fa9b3b8b9b39e937e695d4b3626140100000000000000021527384759627785979fabb5bcb4b0adacaeb3b8b8b3a59d8b7e69614f402f1c0c0000000000000a1a2e3f4c6176889eb3b8a697826d5d4b382815020000000000000000000000000000000000000000000000000000000000000000000215273852677d91939393907a65503b2510000d22364a5c728793939393836d58432e1803000000000d23384d62787e7d7d7d7d7e77614c37220c00000000000000000a192737445560737d7d7d7d7d7d7d7e7b65503a25100000000000000011273c51667c7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7e74604b35200b000d23384d62787e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7b7977736d6761584c473b3025180c00000000000000000000000000000000000000000000000000000000000000000000000000000000031628394e647a8b9fa9b2a0988d89867b65503b25100000000000000000000000000e23384b5d70859bb0b39e8875604b3727150000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000000000215273753687d93a5b7baa89f8b807a777475777a7f77614c37220c000000000000101e324556617685969fafb3bfb8b3aeabaaacafb4babab4a79e91806b604f3f2e18080000000000000000000a1a2a3a48596275818c999fabaeb0b3b4b2afaba69e93877b68604f433222120000000000000000111f334758677d92a1a8a89f8d7b655645321d09000000000000000000000000000000000000000000000000000000000000000000000c21364b61757e7d7d7d7e7a644f39240f00071b2d3e50657b7d7d7d7d7d67523d271200000000000c2035495a62686868686868615947341f0a000000000000000000091927374455606868686868686868655d4b37230e000000000000000f24394d5e6668686868686868686868686868686868686868686868686868686868686868686868686868605544311d08000c2035495a62686868686868686868686868686868676664625958524c473a342a1c13080000000000000000000000000000000000000000000000000000000000000000000000000000000000000a22364a5c687e8b9da6b2aea89e917b66513c26110000000000000000000000071b2d3e50657b90a3b5a8947f6a57453219090000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000000000b20364b6074879db2bcbaa99f958f8c8a8a8c8f8d78634d38230e0000000000000316283847586174818f9aa1aab0b4bbc8bac6b9b3aea99f96897c6b62504232211100000000000000000000000c1c2b3b4856606d79848c93999b9d9e9c9a968f887e74655d4e4232251404000000000000000004172a3a4d5f6f8393939393938775604b36200b000000000000000000000000000000000000000000000000000000000000000000000a1e334657616868686868645c4a36220d00001023384c5d6568686868675f4d392510000000000006192c3c494d5353535353534c473a2a18040000000000000000000009192737444b5253535353535353504b3f2e1c08000000000000000a1d30404d51535353535353535353535353535353535353535353535353535353535353535353535353534b44372715010006192c3c494d53535353535353535353535353535352504f4d483b3d37332a1f180d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071b2d3e4e5f6878889db2c6b9a6917b66513c261100000000000000000000000d22364a5c6f849aafb49e8976614c392816000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000000091d314556677c919eb4babab4aba4a99f9faba28d78634d38230e000000000000000a1a293a4756606c7b848e959b9faaa3a4a3a89e99938a8178675f5044332414030000000000000000000000000d1d2b38454b5c646f777e838688898785817a746960564b3f31241406000000000000000000000c1c30414d62787e7d7d7d7d7e78624d38230d0000000000000000000000000000000000000000000000000000000000000000000003172939464b53535353534f4a3e2d1b070000081c2f3f4c5053535353524d41301e0a0000000000000e1e2c35383e3e3e3e3e3e37342a1c0c00000000000000000000000009192731353d3e3e3e3e3e3e3e3a372e2111000000000000000000122230393c3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e35312719090000000e1e2c35383e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3b3937342b28211f170c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e32465762788399a6b7b3aba6917b66513c261100000000000000000000061a2c3d4f647a8ea2b3a996806b5847331b0a000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000000021527384d5f6a80939fa9b4bac7c7bab4b4bca28d78634d38230e00000000000000000c1c2938454b5d656f7980858a8c8e8f8e8c89837e776c62594d403326160600000000000000000000000000000d1a28323d4a4e5962686e71737472706c6560554b45382e211406000000000000000000000000132034485962686868686868625a4935200b00000000000000000000000000000000000000000000000000000000000000000000000b1b2933363e3e3e3e3e39362d20100000000011212f383b3e3e3e3e3d3930231301000000000000000e192023282828282828221f180c000000000000000000000000000009151d20282828282828282825231c110300000000000000000004121d242728282828282828282828282828282828282828282828282828282828282828282828282828201d150900000000000e192023282828282828282828282828282828282624222019120c0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364b61758699a1b3a79e9692907c66513c2611000000000000000000000c2135495b6e8398aeb49f8b77624d3a291700000000000000000000000000000000000010253a50657a8fa5a5a59c87725d47321d08000000000000000000000000000000000000000000000000000000000000000000000a1a304050616a7e8b979fa9aaacadacaaa8a68d78634d38230e0000000000000000000c1a27313f4b4f5c646a707577797a7876746e6962594d483b30221608000000000000000000000000000000000a161e2d363b484d53595b5e5f5d5a56504b443731271a11030000000000000000000000000005192b3b484d5353535353534d493c2b19060000000000000000000000000000000000000000000000000000000000000000000000000b171e21282828282824221b10020000000003111c23262828282827251e1305000000000000000000060c0d1313131313130c0a040000000000000000000000000000000001080b1313131313131313100e08000000000000000000000000000a0f11131313131313131313131313131313131313131313131313131313131313131313131313130b080100000000000000060c0d13131313131313131313131313131312110f0d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071a2d3d566b8196a4b3a69d89807d7b77614c37220c00000000000000000005192b3b4e63798c9fb4ab97826c5948341c0c00000000000000000000000000000000000010253a50657a8f8f8f8f8f87725d47321d0800000000000000000000000000000000000000000000000000000000000000000000001222334350606878828a909597989795938e8877624d37220d000000000000000000000a151d2e373e4a4e55566062646563616054534c473b342b1d1204000000000000000000000000000000000000030f1a212b34373e444648494745413a3531261d150a000000000000000000000000000000000d1d2b34373e3e3e3e3e3e38352b1e0e0000000000000000000000000000000000000000000000000000000000000000000000000000030a0c13131313130f0d070000000000000000080e101313131312100a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364a5b73889db2b29d88786b6866615947341f0b0000000000000000000b203448596d8297abb49f8c78634d3b2b18000000000000000000000000000000000000000c21364c61767a7a7a7a7a7a644f3a240f00000000000000000000000000000000000000000000000000000000000000000000000004152533424e5b636d767b7f818382807e797362594834200b000000000000000000000002111c232d363938454b4d4e4f4e4c4a433637342a20190d00000000000000000000000000000000000000000000070d182022292e31333432302c25201d1409020000000000000000000000000000000000000d1920222828282828282320190e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1012202020202020110f09000000000000000000000000000000000000030a0c1c2020202020202014120c0200000000000000020b111320202020202013110b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000711171a202020202013110b02000000000000000000000000000e24394e63798ea6b7aa95806a5a53504c473b2a1804000000000000000004172a3a4d62788b9fb4ad98836e5a49351d0d000000000000000000000000000000000000000a1f334658616565656565645c4a36220d00000000000000000000000000000000000000000000000000000000000000000000000000071524313c494d5761666a6c6d6c6b68636054483b2b18050000000000000000000000000008101b222427313637393a3937353025221f180d0500000000000000000000000000000000000000000000000000050b0d13191c1e1f1d1b17100b0801000000000000000000000000000000000000000000050b0d1313131313130d0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a10122020202020200f0d0700000000000000000000000000000000000000000000000004121d242735353535353526231c11030000000000000000000000000000000b161e21313535353535353529271f1406000000000006141f262935353535353528261f1406000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b19242c2f353535353528261f140600000000000000000000000011263b51667b90a6c4a58f7a65503c3b37342a1d0c0000000000000000000a1f3347586b8196a9b3a18e79644e3c2c1900000000000000000000000000000000000000000417293a464c50505050504f4a3e2e1b07000000000000000000000000000000000000000000000000000000000000000000000000000006141e2c3539464b505557585755534e4a43362b1d0d00000000000000000000000000000000070d0f151d202224252321201c130d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005131d252735353535353524211a0f0100000000000000000000000000000000000000000000122230393c4a4a4a4a4a4a3b382f221100000000000000000000000000000b1b293236464a4a4a4a4a4a4a3e3b32241402000000021424313a3e4a4a4a4a4a4a3e3a3124140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000719293640444a4a4a4a4a3e3a31241402000000000000000000000012273d52677c92a7b8a38e79634e3926221f180c000000000000000000031628394c61778a9eb4af99846f5c4a361e0e0000000000000000000000000000000000000000000b1b2933363a3a3a3a3a3a362e201000000000000000000000000000000000000000000000000000000000000000000000000000000000000e19212932363b40424342403e39353025180d000000000000000000000000000000000000000002090b0d0f100e0c0b07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080b1014161819181614100b0801000000000000000000000000000000000000040d131620202020202020202020202020202020202020202020202020202020202020200e0c06000000000000000000000000000000000000000000000001132330393c4a4a4a4a4a4a39362d1f0f0000000000000000000000000000000000000000000a1d30404d51606060606060504c402f1c0900000000000000000000000008182939464b5c60606060606060544f42321f0c0000000b1f31424e53606060606060534e42311a0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001124364754596060606060534e42311f0b000000000000000000000013293e53687e93a8b7a28d78624d38230d0b0400000000000000000000091e3246576a7f95a8b4a38f7a65503e2d1b00000000000000000000000000000000000000000000000b171f21252525252524221b1002000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b161e21262a2c2e2d2b2924201c130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b151d2025292b2d2e2d2b2925201d150b07000000000000000000000000000000071521282b35353535353535353535353535353535353535353535353535353535353535352320190e000000000000000000000000000000000000000000000a1d30414d526060606060604e4a3d2d1a0700000000000000000000000000000000000000001024394d5f67757575757575665e4c38230f000000000000000000000001142636465761717575757575757569604f3b271200000011263a4e606875757575757568604e3828160300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002172c4054656f757575757568604e3a2611000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000021527374b6175889eb3b09b85705d4b372010000000000000000000000000000000000000000000000000040a0c10101010100f0d0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c111517181716130e0b070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0d1216120d0b05000000000000000000000000000000000000000000000000000000000008131c202731363a3f40424442403e3a353127201c1308000000000000000000000000041526333d404a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a38352c1e0e0000000000000000000000000000000000000000001025394d5f67757575757575705c4a36210d000000000000000000000000000000000000000012273c51677c8a8a8a8a8a8a7b66503b26110000000000000000000003111c3043546175868a8a8a8a8a8a8a7e69543e291400000013293e53687e8a8a8a8a8a8a7e685645321e0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f838a8a8a8a8a7e68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000081d314455697e93a7b5a4917c66513f2e1c0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e192023282b272220190e010000000000000000000000000000000000000000000000000008131c25303537444b4f545658595755534f4b44373530251c1308000000000000000000000d213344505560606060606060606060606060606060606060606060606060606060606060605e493c2c1906000000000000000000000000000000000000000012273c52677d8a8a8a8a8a8a79644e39240f000000000000000000000000000000000000000012273c51677c919f9f9f9f907b66503b261100000000000000000001112131424b60728399a39f9f9fa297816c604f3b27120000000b20354b6074879c9f9f9f9d8875604b3a2917040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f84999f9f9f937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000000011426364b6074879db2b19c8673604a35201100000000000000000000000000000000000000000000000000040a0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0d0b050000000000000002090b0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0e0c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009151d2c35383d403d38352b1c140800000000000000000000000000000000000000000000000d18253036434a51556065696b6d6e6d6b69656055514a43363025180c00000000000000000013283d50626b7575757575757575757575757575757575757575757575757575757575757575705a4935200c000000000000000000000000000000000000000012273c52677c919f9f9f9f8e79644e39240f000000000000000000000000000000000000000012273c51677c91a6b5b5a5907b66503b26110000000000000000000f1f2f3f4e606b8096a1b3c2b6a49a8473604b42321f0c000000081d314455677c91a3b5b7a6947f695846331f0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aeb5a8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000000081c304354687d92a6b7a5927d675443301c070000000000000000000000000000000000000000000000000c171f2123232323232323232323232323232323232220190e00000000000a161e21242424242424242424242424242424242424242424242424242424242424211a0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091927313c494d5255524d483c30261808000000000000000000000000000000000000000003111d2b36434a5460666e757a7e80828382807e7a756e6760544a43362a1c100200000000000000162b40556b808a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a78634d38230e000000000000000000000000000000000000000012273c52677c91a7b5b5a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000c1c2c3d4b5d687e939eb0bfb8a79c867661554431241402000000011527374a6072869bb1c0b39e8976614c3b2a180500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000000000b20354b6073869cb1b29d8774604b3625130000000000000000000000000000000000000000000000000c1c293337393939393939393939393939393939393938352b1e0e0000000a1a283236393939393939393939393939393939393939393939393939393939393939362d1f0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002152737444b5a62676b67625a4b43362614010000000000000000000000000000000000000311222f3b48546068737c83898f949597999795938f89837c73676054473a2e201002000000000000162b40556b80959f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8d78634d38230e000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000a1a2a3a495b657b8c9fb4bcbbaa9e8978635846372715060000000000091c304354667b90a2b4b8a795806b5948341f0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000000081c2f3f51677c91a4b6a6937e69554431180800000000000000000000000000000000000000000000000417293a474c4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4d483c2b19050002162838454b4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4a3d2d1a070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d314455606a787d807c786a605443301c0f00000000000000000000000000000000000311222f404c5962727d8691999ea8a9abadaeacaaa8a79e9891867c7261584a3e2e2010000000000000152a40556a7f95aab5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a28d78634d38230e000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000215273847586379899eaabbbcb49f8c7b655a493a291909000000000000001325364c5e70849aafbfb49f8a77624c3c2c1906000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000e23384c5d71859bb0b39e8875604b3727150000000000000000000000000000000000000000000000000a1f334758616363636363636363636363636363636363625a4835200b00091e324556606464646464646464646464646464646464646464646464646464646464635b4a36210c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000081b2e3f4b6073808b9295928b7f72604b3d2d1a070000000000000000000000000000000011212f404c5e667784929ca4aeb4b9c6bebcbabcbec5b9b3aea49c918476645c4a3e2d1e0e000000000013283e53687d93a8bdcad4c4b7b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2a28d78634d38230e000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000004121d3145566176879ca7b9bfb09e927e685d4b3c2c1c0c000000000000000008182f404f647a8fa1b3baa896816c5a4935200f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000071b2d3e50657b90a3b5a8947f6a56453219090000000000000000000000000000000000000000000000000c21374c6176797878787878787878787878787878787978624d38220d000b21364b6074797979797979797979797979797979797979797979797979797979797979634e39240e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374b5d6c81959faaaaa99f94806b5b4a36210c0000000000000000000000000000000b1b2e3f4c5e667c899aa2b1b6c2b9b3aea9a6a5a7a9aeb4bac2b5b1a29a877a645c4a3c2b19090000000011263b50667b90a5c6d6cbb7a69d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d8d78634d38230e000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000002122232434b6074849aa5b6c1b3a196806b604e3f2e1e0e000000000000000000001222374b5d6e8399abbcb49f8b78624d3d2d1a070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000d22364a5c6f849aafb49e8976614c3828160000000000000000000000000000000000000000000000000013283d53687d8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e836f5a442f1a000e23394e63798e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e89745e49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f253a4f647a8c9fb4bbc7bab49f8b79634e39240e0000000000000000000000000000031729394b5d667c8b9ea7b4c0b8b3a89e999391909194999fa9b3b9c0b3a59d8a7a645a48372614010000000e24394e63798ea8b9cdc8b29d8888888888888888888888888888888888888888888888888778624d38230d000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000102030404f616d8297a2b4c3b5a3998372604b423121110000000000000000000000081b2e3f4e63798c9fb4bbaa98826d5b4a3621100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000061a2c3d4f647a8fa2b4a996806b5846331a0a0000000000000000000000000000000000000000000000000013283d53687d92a3a3a3a3a3a3a3a3a3a3a3a3a3a3a399846f5a442f1a000e23394e63788ea3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a39e89745e49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000001162b40566b8095abbcced8cebbaa947f69543f2a1400000000000000000000000000000a1e334657657b8b9fa9b8bfb3a79e9389837e7c7b7c7e848a949ea7b4c1b7a89d8878625544311d0b0000000b21364b6075899eb4c9b9a38e7a737373737373737373737373737373737373737373737373625a4835200b000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110000000d1d2d3e4d5e6a7f94a0b1c0b7a69b8575615443302313030000000000000000000000001021364a5b6d8298a9bab49f8c79634e3f2e1b0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000c2135495b6e8399aeb49f8a77624c3a2917000000000000000000000000000000000000000000000000000013283d53687d92a8b8b8b8b8b8b8b8b8b8b8b8b8b8af99846f5a442f1a000e23394e63788ea3b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b39e89745e49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc9daead8c8ad98836e58432e190300000000000000000000000006192c3c4b6175879da9babeb2a199887e766e69676567696f767f899ba3b3bfb7a69b8573604b392917030000091e3245566d8298adc3c0aa95806b585d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d4d483c2b1906000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000b1b2b3b4a5c667c8d9fb5bebaa99d88786257463626140500000000000000000000000000071a2d3d4d62788b9fb4bcab99836f5d4b37221200000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000005192b3c4e63798c9fb4aa97816c5948341c0c000000000000000000000000000000000000000000000000000013283d53687d92a8b3b3b3b3b3b3b3b3b3b3b3b3b3af99846f5a442f1a000e23394e63798e9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9e89745e49341f00000000000000000000000000000000000000000000000000000000000000000000000000000000000003182d43586d8298adc3d3dfd2c1ab96816c56412c17010000000000000000000000000c2135495b6c8197a6b7c1b2a0988377696157545150525457616a778599a1b3c2b5a3937e685746331e0a00000216283850667b90a5b7c8b39e8876614c40484848484848484848484848484848484848484838352b1e0e00000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100081828394859647a8a9fabbcbcab9f8b7a645948392818080000000000000000000000000000000f2035485a6c8196a8b9b3a18f7a654f402f1808000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000b2034485a6d8297aba89f8b78634d3b2b1800000000000000000000000000000000000000000000000000000013283d53687d929e9e9e9e9e9e9e9e9e9e9e9e9e9e9e99846f5a442f1a000e23394e63798a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a89745e49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000013293e53687e93a5b6c4cac4b5a3927c67523d2712000000000000000000000000011426364d63788c9fb5c4b4a398827362594b46393c3b3c39464b5962748399a4b6c1b39e8876614c36210c0000000b20354b6074879db2bfb8a796816b5e4c3e2f3333333333333333333333333333333333332320190e0000000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26110114263646576277889da8babeb59f8d7d675c4a3b2b1b0b0000000000000000000000000000000006192b3c4c61778a9eb4bfb09a85705e4c362513000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000d22384d62778b93939393826e5a49351d0d00000000000000000000000000000000000000000000000000000012283d52677d8989898989898989898989898989898989836e59432e19000c21364a5b707575757575757575757575757575757575757575757575757575757575746b5946311c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b21364b6075879ca6b2b5b2a69b8573604b35200b000000000000000000000000081c3043546b8095abbcbaa99b85736055473b322927262729323b48566175869cb1bfb8a6937e68533a2a17040000081d314455667c91a1b3c5b59f8d7c665c4c3f3025181e1e1e1e1e1e1e1e1e1e1e1e1e1e1e0d0b06000000000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611111c3043546175859ba6b7c0b2a0947f6a5f4d3e2d1d0d0000000000000000000000000000000000000e1f3447596b8095a7b8b4a2907b665443301c090000000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000e23394e63797e7d7d7d7e78624d3c2c190000000000000000000000000000000000000000000000000000000010253a4d5f6774747474747474747474747474747474746e6453402b1700071a2d3d4a5e60606060606060606060606060606060606060606060606060606060605e594d3d2a1600000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e324556647a88979d9f9c978879635544311d080000000000000000000000000b20354b6073889db3c9b49f8b78625544372a1e16121012161e2a384657647a8fa1b3c4af9a846f5847331f0a0000011527374d5e6f8399a7b8bcab9e8a7b655d4a43362a1c1001000808080808080808080808000000000000000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26112131424b60728399a3b5c3b4a298826d6150413020100000000000000000000000000000000000000004182a3b4c6176899eb3c0b19b8672604a3727150200000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000030a0c111114293e54697e93a9b7a28d77624d38220d0000000000000c21364a5b636868686868625a49351e0e000000000000000000000000000000000000000000000000000000000a1e30414d525e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e59534636241100000f1f2d36394a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a49463d2f1f0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000031628384b5c647782878a878176635b4a372715010000000000000000000000000d23384d62788da6adadab96816c5a493727190d03000000030d1a29394b5c6e8399aec7b49f8a76614c37210c000000091930404d6278899ea9bab9a89e8a7b696054473a2e1d15090000000000000000000000000000000000000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261e2e3f4e606b8096a1b3c1b7a59b8474604b433323120200000000000000000000000000000000000000000c1e334657697f94a6b7b5a3927d675544311d0a00000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e281300000000000b161e212626262a40556a7f95aac5a18c77614c37220c000000000000071a2d3d4a4e53535353534d493c2c190000000000000000000000000000000000000000000000000000000000011323303a3d49494949494949494949494949494949494340362818070000010f1a2123353535353535353535353535353535353535353535353535353535353534312a1f110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a2e3e4b59616d7275726c61584a3d2d19090000000000000000000000000011263b50667b90979797978e79634e3c2b1909000000000000000b1b2e3e51667c91a9babbaa907b65503b261000000000122035485a657b8b9fabbbb9a89e8c7f7261584b3f3127190e00000000000000000000000000000000000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b262c3c4b5d687e929eb0bfb9a89d877761564532251505000000000000000000000000000000000000000000031729394b6075879db2c2b29c8774604b39281603000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000b1b2932363c3c3c3d42576c8196acb8a68b75604b36200b000000000000000f1f2d36393e3e3e3e3e38352c1e0e00000000000000000000000000000000000000000000000000000000000005131e252834343434343434343434343434343434342e2b24180a0000000000070c0e20202020202020202020202020202020202020202020202020202020201f1c160d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010202e3b474c57566056574c473a2d1f0f000000000000000000000000000010253a50657a8282828282816c5b49351e0e0000000000000000001021364b61768a9fb4c8a7927d68523d28130000000006192b3c4b5d677d8d9faab9b9aa9f948376655d4b44372c1e14030000000000000000000000000000000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2a3a495b657b8c9fb4bcbbaa9e8a796359473828150700000000000000000000000000000000000000000000000b1e324556687d92a4b6b6a5937e685745321e0c000000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e281300000003162939464b51515152556072879cb1b39e88735645321d0900000000000000010f1a212328282828282320190e0000000000000000000000000000000000000000000000000000000000000000010a10121f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f19171107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101d2a343738454b45383733291c0f0100000000000000000000000000000e23374b5d656d6d6d6d6d6c62513d2c1a00000000000000000000091e32465772879cb1bfaa947f6a553f2a1500000000000e1e2e3f4d5f677d8c9ea8b7bbb4a199877b6a6055493c311e160a00000000000000000000000000000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b3747586379899eaabbbdb49f8c7c665b4a3a2a1a0a000000000000000000000000000000000000000000000000021628384b6073869cb1c1b39d8875604b3a2917040000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000a1e32465761666666676a6f7e93a4b6af9a856f5a38281502000000000000000000070c0e13131313130d0c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b0f14171a1b1c1d1c1b1815120c0a040000000000000000000000000000000000000000000000000000000000000000000000000e1e2b35383a3a3a3a3a38352c1e0e000000000000000000000000000000081c2e3f4b505858585858565144341f0f00000000000000000000031628395a6f859aafc0ab96806b56412b16000000000000102130414d5f677c8a9da5b3bfb3a59d8c8073635b4e4232281a0e000000000000000000000000000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b44556176869ca7b8c0b19f937e695e4c3d2d1c0c00000000000000000000000000000000000000000000000000000a1d314455677c91a3b5b7a6947f6a5847331f0d0000000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000c21364b61757c7b7b7c7f84939cadbcab957f6a55402a150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b131c2024292c2f30313231302e2a27211f170e0c06000000000000000000000000000000000000000000000000000000000000000006192b3c484d50505050504d493c2c190600000000000000000000000000000011212e373a4242424242413e3426160100000000000000000000021527375a6f849aafbea9947f69543f2a1400000000000002122330414d5e667a8799a1b4bbb7aa9f95857968604b45382b1e110300000000000000000000000000000000000000000000000000000000000012273c52677c91a7bcb9a38e79644e39240f000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66504c4c6073849aa4b6c2b3a297816c604f402f1f0f000000000000000000000000000000000000000000000000000000011426374d5f71859bb0c0b39e8976614c3b2b180500000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000e23384e63788d9191929499a1adbab49f8c78634d38230e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e1020202020201d1b140b000000000000000000000000030c1214202020202020201a0c0a03000000000000000000000000000000000000000000040a151d20253035393e4144464747464543403c3733292320190e090000000000000000000000000000000000000000000000000000000000000b2035485a626565656565635b4935210c00000000000000000000000000000003111c23252d2d2d2d2d2c21211e170b00000000000000000000081d31445571869cb1bca7927d67523d28120000000000000005132330404c5c647683949faab7bbb4a39b8a7e6d6056483c2f2115000000000000000000000000000000000000000000000000000000000008182c3c52677c91a7bcb9a38e79644e3a2a18040000000000000000000000000000000000000012273c51677c91a6bcbba5907b666161616d8197a2b4c3b6a49a8473604b443733291b130100000000000000000000000000000000000000000000000000000919304150657b90a2b4b9a795806b594834200e00000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000e23384e63788da3a6a7aaaeb3bab4a296816c5a4935200c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003111c23253535353535322f281c0e00000000000000000000071420272a3535353535353530211e160b000000000000000000000000000000000000030c171f28323636434a4f53575a5b5c5c5b5a5855514c473a38352c241c1208000000000000000000000000000000000000000000000000000000000d23384d62787a7a7a7a7a79634d3823120100000000000000000000000000000000080e10181920222832363633291b0b0000000000000000000b20364b6075899eb4c2a5907b66503b261100000000000000000513222f3e4a5861727f8c9da5b2beb5a89f938275625a4c3f321c1308000000000000000000000000000000000000000000000000000001142636495b6a7f94a9bfbca7927d675947341f130000000000000000000000000000000000000012273c51677c91a6bcbca6917d767676767f949fb1c0c7b19c87766c6660554c4639301c140800000000000000000000000000000000000000000000000000001223384c5d6f849aafbfb49f8a77624c3c2c1906000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000e23384e63788da3b0b0b0aeaca99f968475614b3c2c190600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011212e373a4a4a4a4a4a47443a2c1c0b0000000000000000011625323b3f4a4a4a4a4a4a4a453632291b0b000000000000000000000000000000000a161e2a3338454b50546064696c6f70717271706d6a676158544d493c382f221b10050000000000000000000000000000000000000000000000000000162b40556b808f8f8f8f8f826e5841301f100300000000000000000000000000000004121d242b343838454b4b46392919090000000000000005182b3b50657a8fa8b9b5a48c77624c37220d0000000000000000000311202d3a4754606a7b8798a0b4b9bab4a0988578655d4f433025180800000000000000000000000000000000000000000000000000091c30435463798a9fb4c9c8b39e8877614c41301d0d00000000000000000000000000000000000012273c51677c91a6bcbfac9b918b8b8b8b949daebdcec9b49f8b85817b746b61574d413026180800000000000000000000000000000000000000000000000000081c2f3f4f647a8fa1b2baa897816c5a4935200f000000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000e23384e63788d9b9b9b9b9997928a8074615746331e0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081c2e3f4b5060606060605d574a3a28140000000000000009141d33434f54606060606060605a4b46392916030000000000000000000000000001131b28323a474c5660666c74797e81848586878685837f7c767069635a514c40372e1f180d00000000000000000000000000000000000000000000000000152a3f556a7f94a5a5a59d88735f4d3d2e2113010000000000000000000000000000122230393c484d5356606157463727170c02000000000813203448596c8197acc6b19c86715947341f0b0000000000000000000002101c2a36434a5d657682929ea8b5beb2a39b897b69614a4336251808000000000000000000000000000000000000000000000009192c3d4b6073849aa8bacdcbb8a698836e5f4d3b2b1805000000000000000000000000000000000012273c51677c91a6bcc9b9aca6a1a1a1a1a9aebbccdbcdbaa99f9b9690888076675f4b4336261401000000000000000000000000000000000000000000000000001122364a5c6e8399aabbb49f8b78634d3e2d1a070000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000d22384d6278858686868584827d776b605646392917000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23374b5d657575757575726857442f1b0600000000000a19263144516169757575757575756f615746321e0a00000000000000000000000008141c3039454b58616b757b81888e9396999b9c9c9b9a9895918a857e7871665e4f4b3e342a1d1002000000000000000000000000000000000000000000000012273c52677c91a9bab7a6917c675b4b3f311d15090000000000000000000000000a1d30404d515a62686f767661554433291d15100d0e10182530434d62778b9fb4c0ab96816b563b2a18050000000000000000000000000c1825303f4b58616e7d8a9ba3b1bdb5a79e8c7f6c6054433625130000000000000000000000000000000000000000000001142637495b697f94a2b4c6d7d5c5b2a0927d675948342013000000000000000000000000000000000012273c51677c91a6bcd1c9bfbcb6b6b6b6bfc6c6c6c6c7c7bab4b0aba69d95887d6c605443301c1400000000000000000000000000000000000000000000000000071b2e3e4e63798c9fb4bbaa98826d5c4a3621110000000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000b2035485a6271717171706e6c6761594b4538291b0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657b8a8a8a8a8a87725d47321d08000000000b1a2737444b626b7f8b8a8a8a8a8a8a8476614b36210c00000000000000000000000b182630414d57606a76808990979da6a8acafb0b1b1b0afadaaaa9f9a948d867b70645c4c473b2d201205000000000000000000000000000000000000000000000c21364c61768a9fb4c3b49e8a79655d4e423127190b00000000000000000000001024394d5f6771787e84898473604c463a3127252323262e36434a616e8399a9bab4a28f7a644f3a250f000000000000000000000000000008131c2e3a464c5f677885979fb4bab8aa9f948172605443301c12000000000000000000000000000000000000000000091d31445563798b9fb4c0c4c1c4c7bfb39e8977624c41311d0d0000000000000000000000000000000012273c51677c91a6bcd4c3b7b2b1b1b1b1b1b1b1b1b1b1b3b4bbc8c4b7b2a69d928172604b42311e0e00000000000000000000000000000000000000000000000000102135495b6d8297a9bab59f8d79644e3f2e1c0800000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e281300000005192b3c484d5b5b5b5b5b5957524c473b32281a0b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8f9f9f9f9c87725d47321d080000000c1b29384555606d80949fab9f9f9f978374615746321e0a000000000000000000000e1b2936434b5f67757f89969ea8acb2b7c4c1c3c1bebebfc2c2c8bbb4afa9a39b90847a6e62594a3e302315070000000000000000000000000000000000000000000a1f3346586b8095a5b6b9a89e887b68604b4437291b0e0000000000000000000012273c51677c868d93999f97816e61584b45383a38393b3e4b54606b7f94a1b2bfaf9a846f5c4b37220d00000000000000000000000000000000101b2933414d5a637481929fa9b7bbb49f978172604a40301d0d0000000000000000000000000000000000000009192d3d4b6073859ba9babdb0abafb3bfb8a799836f5f4e3c2b190500000000000000000000000000000012273c51677c91a6bccab7a59d9c9c9c9c9c9c9c9c9c9c9d9faaabb3b7c4b8b39f96826d604e3c2c1906000000000000000000000000000000000000000000000000061a2c3d4d62788b9fb4bcab99846f5d4b37231200000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000e1e2b3538464646464644423d37342a1e160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5b5b29c87725d47321d0800000d1c2a394656607381959eb5bcaf9e968173605646392916030000000000000000000e1e2b3a4654606b7d88949ea7b4b9c6c7bab4b0adaba9a8aaacaeb2b6c3c5c1b5b0a29a8f8377645c4d413325150600000000000000000000000000000000000000000417293a4b6075879da9bab8a69e8b7e6c6055463a2c1e0e00000000000000000013283e53687d93a4a8aeb49f97837667605652504d4e50555c647280949daebfb3a1907b65503e2e1b0800000000000000000000000000000000000b171f313c4956606c7d8a9da5b7bdb19f95806b5e4d3b2a18050000000000000000000000000000000000021527374a5b6a7f94a3b5c3b09f9699a1b3c5b3a1927d685a4834201400000000000000000000000000000012273c51677c91a6bcc7b29d8786868686868686868687888a8f959da6b0bcbdb0a0937e695a4935200c000000000000000000000000000000000000000000000000000f2034485a6b8196a8b9b3a18f7a654f402f1808000000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e281300000000000e19202231313131302f2d28221f180c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d08010f1d2b3a4757617482979fb0bcb49d94807260554538291b0b0000000000000000000b1b2b3c4858617280919da6b3b9c5b9b3ada99f9a989694939597999ca5a9b0b4c1c0b4afa199877a675f50433324140300000000000000000000000000000000000000000c1e324556657b8b9faabbb8a99f9281736158493c2c1e0e00000000000000000f243a4f64798faabbc4bdb1a199877c756b67656263656a707a85959eaebbb7a599836e5d4c3820100000000000000000000000000000000000000004131e2c38454b5f687a879da5b7bdb59f8d7c665947341f0f00000000000000000000000000000000000a1d31445563798b9fb4c1b6a596818399a7b9bfb39e8978624d42311e0e000000000000000000000000000012273c51677c91a6bcbba5907c7171717171717171717273767a8088969eaebbbeb49f8b78624d3a2a170400000000000000000000000000000000000000000000000005192b3c4c6177899eb4bfb09a85705e4c362614010000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000050b0d1c1c1c1c1b1917120c0b0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d02101f2c3b485861758498a0b1bbab9f937f6b60544437281a0b00000000000000000008182939485a627683969eb3b7c4bab4a79e98918a8583817f7e808284878e949ba3b0b4c0bfb2a59d8a7d6a6150423121110000000000000000000000000000000000000000031628384b5d667c8c9faab8bab49f968476625a493c2c1c0c000000000000000b21364b60758a9fb4cacebfb2a59d9188817d7a78787b7f858f9aa2b0bcb8a99d8776614c3f2f1c020000000000000000000000000000000000000000000e1a2731414e5c6478879da5b7bcab9e8977624c3d2c1a060000000000000000000000000000000a1a2d3e4b6074859ba9babcab9c877578899eb3bfb9a79a846f604e3c2b18080000000000000000000000000012273c51677c91a6bcbba5907b665c5c5c5c5c5c5c5c5c5760646b7580949daebfbaa997816c5847331f0a000000000000000000000000000000000000000000000000000d1f3347586a7f95a6b8b4a2907c665443301c090000000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d11202d3d49596276859aa2b2baaa9f8d7e6a614a433626190a00000000000000000001142636465762788699a1b0bcbeb1a89f9589827c76706e6c69696a6d6f72787f858f9aa2b2b6c3b7a89f917f6a604e3f2e1e0e00000000000000000000000000000000000000000a1a2e3f4c5e677d8c9ea6b5bdb0a29a8678635a493a2a1a0a000000000000091e32455671869cb1c6d3cac3b7b2a69e96928f8d8e90949ba3b0b4c0b6a79e8b7b65584733211100000000000000000000000000000000000000000000000a151d313d4a5a6278879da7b8b9a897826d5b4935210c0000000000000000000000000000021527384a5c6a8095a3b5c3b59f8d7b65687d92a1b3c5b3a2937e685a493625130000000000000000000000000012273c51677c91a6bcbba5907b66504747474747474739454b4f57606b7f94a1b3c7b49f8a76614c37210c0000000000000000000000000000000000000000000000000004182a3a4b6175889eb3c0b19c8673604b3727150200000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000000000000080e10121212120d0b0500000000000000080e101c1c1c1c1c12100a0100000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d212e3e4a5b6378869ba3b4b9a89f8c7d68604f4330251809000000000000000000000a1c3043546175869ca4b3bfbbb4a0978a80766d676157585654535557595b636a707a85919da5b4c0bab49e937e685d4b3c2b19090000000000000000000000000000000000000000112130404d5f677b889ba3b1bdb3a49c887863584738281502000000000002162838586d8298adc2c2b6b1aab4b8b3aba7a5a2a3a5aab0b5c1b9b4a59d897b655d4b3a2a170300000000000000000000030303030300000000000000000002131f2d3c485a6278899eb3c1b59f8c79634e38230e00000000000000000000000000000a1d314556647a8c9fb4c1b6a596816c5d606f8399a7b8c0b49e8a78625443301c0e00000000000000000000000012273c51677c91a6bcbba5907b66503b31313131313128323639454b616f8499afc5baa9917c67513c271200000000000000000000000000000000000000000000000000000c1e324657697e93a5b7b5a4927d675544311d0a00000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000000000000000000000003111c2325272727272220190d0000000003111c2325313131313127251e1305000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d473222303f4b5c6479879ca4b5b7a79e8a7c675f4e42321c1308000000000000000000000a1a30414b60728399a4b6c2b8aa9f9382776b6157514b4639413f3e40423d494e545c64707c879aa2b1bdbcb49f8c7b655a49372715020000000000000000000000000000000000000003122230414d5d657885979fb4bbb6a69c8676615645321d0e00000000000014293f54697e94a9c9b6a49c959fa9b2b7c4bab7b8babec1b5b1a89e948779655d4b3f2e1c0c00000000000000010a1012181818181814120c02000000000000010f1e2b3c495a677c91a3b4bcab96806b563c2b19050000000000000000000000000a1a2e3e4b6074869caabbbcab9c8775604b4d6277899eb3bfb9a89a8472604a3c2c1808000000000000000000000012273c51677c91a6bcbba5907b66503b261c1c1c1c1c161e212832434f647a8fa7b8c7ac97826c57422d170200000000000000000000000000000000000000000000000000031629394b6074879db2c2b29d8774604b39281603000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000000000000000000000011212e373a3d3d3d3d37342b1d0d00000011212f383b46464646463c39302313000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d473231404d5d657a889da5b6b6a69d897b665e4d413124150000000000000000000000021628384d5f6b8096a1b3c2b8a79e8c7e6d62594b46393632292c2a292b2d2c35393e4b4f5e667684979fb1bdbbaa9e8978625544311d0b0000000000000000000000000000000000000000041323303f4b5a627481929faabbb6a49a8474604b3c2c1906000000000010253a50657a8fabbcb19c86808b959da6a7aaacadaba9a7a39b958a7f74635b4b3f2e21100000000000000005131e25282d2d2d2d2d29271f1406000000000000000e1e2c3c4d5f70859bb0c9b29d88735a4835200b0000000000000000000000021628384b5c6b8095a4b5c3b49f8c7b6557454859677d92a1b3c5b4a2937e695b49362614010000000000000000000012273c51677c91a6bcbba5907b66503b26110707070003090b1620354b6074889eb3c4af9a856f5a45301a0500000000000000000000000000000000000000000000000000000b1d314556687d92a4b5b6a5937e685745321e0c000000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000000000000000000000c1c2e3f4b4f525252524d483b2b190500081c2f3f4b505c5c5c5c5c524d413018080000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d4732414e5e667b8a9ea6b7b5a59d8879645d4c40302314060000000000000000000000091e324556677d919eb0bfbaa89e897b68604d483b3329211e1617141415181a21232e37404c58617381979fb1c0b8a79c8674604b3929160300000000000000000000000000000000000000000513212e3c4856606c7e8c9faabbb4a295806b5a4935200900000000000c21364c61768b9fb5b49f8a747880888d929596989694928d867f776a6056493d2e21100200000000000001132330393d43434343433e3b32241402000000000000000e1e304152677c91abbcb7a68d78624d38220d00000000000000000000000b1e324556647a8c9fb4c2b6a596816c5d4b393b4d5f6e8399a7b8c0b49f8a79635443301c0f0000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000081c30435470859bb0c5b19c86715c47311c070000000000000000000000000000000000000000000000000000021527384b6073869cb1c1b39d8875604b3a2a17040000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e2813000000000000000000000004172a3a4b5d656767676762594834200b000e23384b5d657171717171675f4d3626140100000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47434f60687c8b9ea8b8b4a49c8778635b4b3f2f22130500000000000000000000000417293a4b6075879db2bcbcb49f8a7a655d4e42342b1e170c0a030000000000060c101b22303a4755606d8197a2b4c4b5a4937e695746321e0c00000000000000050b0d0e0e0e0e0e0c0a0400000003111e2b38454b60687d8c9fb4bfb49f8b78624d37271502000000000a1f33465872879db2baa98e79646b73787d808182817e7c78716a62594b45382c1f1003000000000000000a1e30414d525858585858544f42321f0c00000000000000001221364c61768b9fb5c4a6917c67513c2712000000000000000000000b1b2e3f4b6074869caabbbcab9c8775604b3f2e30414c6277899eb3bfbaa99b8573604b3d2c190900000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000001142636596f8499aec4b29d88725d48331d080000000000000000000000000000000000000000000000000000000a1c304354667c91a3b4b7a6947f6a5847331f0d0000000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e281300000000000000000000000a1f334758657b7c7c7c7d78624d37220d0010253b50657b85868686867d675443301c0800000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d445161697e8c9fa9b9b3a39b8677635a4a3d2e2011040000000000000000000000000a1f334658697f94a5b7c3b09e927d675c4b3f3120180d03000000000000000000000008121c2a37444b6074849aa6b7c2b39e8875614b3b2a180400000000000d181f222323232323211f170c000000000e1a2832424e5f677d92a1b3baa996816c5544311d08000000000417293a596e8398aec7a7927d68555b63686a6c6d6b6967625a554c483b32281a0f0100000000000000001025394d5f676d6d6d6d6d69614f3b271200000000000000000a1f33465872879cb1bea9947e69543f2914000000000000000000031628394b5d6b8096a4b6c3b49f8c7b65574532211f344859677d92a1b2c5b4a3947f695b4937271501000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000071c30435470859bb0c5b19b86715c46311c07000000000000000000000000000000000000000000000000000000011426364c5e70859bb0bfb39e8976614c3b2b180500000000000000000000000000000000000000000000000000000000041a2f44596f8499aebda8937d68533e28130000000000000000000005182a3b4c61768a9292928976614c36210c000b20354b6074879b9b9b9b8673604b35201100000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d4b626b7f929faabab2a29a85766259493c2d1f1002000000000000000000000000011527374c6176899eb3c3b6a596806b5f4d3e2f2113050000000000000000000000000000000c19273144556277889db2c1b8a6957f6a5947341f0b000000000d1d2a343738383838383633291c0c000000000a151d31414d5f6f8399aabbb39e8975604b36200b0000000000152a3f556a7f94aabfac96816c57494d525557585654524d483c37342b1e160a0000000000000000000012283d52677d82828282827f69543e291400000000000000000417293a5a70859aafbfaa95806a55402b150000000000000000000b1e324657657b8c9fb4c2b6a496816c5d4b392816182a3b4d5f6e8399a7b8c1b49f8b79635544311d0f000000000000000012273c51677c91a6bcbba5907b66503b2611040404040005091420354a6074889eb3c4af9a846f5a452f1a05000000000000000000000000000101010101010101010101010101000818304050657b8fa1b3b9a796806b594834200e00000000000000000000000000000000000000000000000000030303041a2f44596f8499aebda8937d68533e2813000000000000000000000b1f3448596b8096a8aa96806b5746331e0a00081d314455697e93a6b1a4917c66513f2f1c08000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c877255606d80949db4bbb1a09883756158483b2c1e0f0100000000000000000000000000081d3144556b8095a7b8c2b29c8774604b41302011030000000000000000000000000000000000091527374759667c91a3b4c4b49e8977614c37220c00000005182a3b474c4d4d4d4d4d4c463a2917040000000002132330414d63788b9fb4b9a78f7a644f3a250f000000000011263b50667b90a5c4b09a85705443383d404143413f3d38352b2220180d020000000000000000000000152a3f556a7f949898989885705b3d2c1a060000000000000000192f44596e8499aec0ab96816b56412c1601000000000000000b1b2f3f4b6175879cabbcbcab9c8675604b3f2e1b0a0d1d30414c6177889eb3bebaa99b8573604b3d2d19090000000000000012273c51677c91a6bcbba5907b66503b261a1a1a1a1a1a19202631424f647a8fa6b8c8ac97826d57422d1802000000000000000000040d1316161616161616161616161616161616161623374b5d6f8499abbcb49f8a77624d3c2c1906000000000000000000000000000000000000000000050b0d181818181a2f44596f8499aebda8937d68533e281300000000000000000004172a3a4c62778a9fb49f8b78624d3929170300011527374b6075889eb3b09b85705d4b372310000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c8772607381959eaebbb09f9782746157473a2b1d0e0000000000000000000000000000000b20354b6074899eb3c5b5a4927d675544312313020000000000000000000000000000000000000009192a3b4c5e70859bb0c1b9a8947e69543a2a170400000b1f344759626363636363615846331f0a000000000005132035495a70859aafc5a9947e69543f291400000000000d22374c62778ca6b7b49e8974604b35282b2c2d2c29272320190e0b050000000000000000000000000013283d53687d92a8adad9d88735b4935210c00000000000000061a2c3d5b70859ab0bfaa947f6a553f2a1500000000000000031729394b5d6c8196a5b6c3b49f8c7b6556453221100000131f344759677d91a0b2c4b5a3947f6a5c4a3727150200000000000012273c51677c91a6bcbba5907b66503b2f2f2f2f2f2f2f2b3437444b606e8399aec5bbaa917c67523c2712000000000000000000071521282b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2e3f4f647a8d9fb5baa997816c5b4935211000000000000000000000000000000000000000000d1920222d2d2d2d2d2f44596f8499aebda8937d68533e28130000000000000000000a1f3347586c8196a8ad98826d5a48341b0b000000091e3245576a7f94a8b5a3907b65503e2d1b070000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87727482979fb0bbae9e95817260564639291c0d0000000000000000000000000000000010253b50657a90a7b8c8b19c8673604b372715050000000000000000000000000000000000000000000d1d304050657b90a3b4c6af9a85705847331f0a00000d22374c6277787878787876614c36210c00000000000006192c3c566b8196abc0ab96816b56412c1600000000000b1f34485973889db3b9a88d78634e38231517181614120d0b060000000000000000000000000000000011263b51667b90aabbb7a68e79634e3a2a18080000000000000c2135495b72889db2c9a8927d68533d2813000000000000000b1e334657657b8d9fb5c3b6a496816c5d4b38281603000004182a3b4d5f6e8398a6b8c1b49f8b79645544311d1000000000000012273c51677c91a6bcbba5907b665044444444444444453c484d55606a7e92a1b3c8b49f8b76614c37210c0000000000000000041526333d4041414141414141414141414141414141414141414a5c6e8398aabbb49f8b78634d3e2d1b070000000000000000000000000000000000000d1d2b343842424242424244596f8499aebda8937d68533e28130000000000000000021527374c61778a9fb4a28e79644f3c2b1900000000031628394c6176899eb4af9a846f5c4a36220f0000000000000000000000000000000000000000000000000010253a50657a8fa5bab29c87758499a1b1bcb49d94806d60544538281b0c00000000000000000000000000000000071a2d3d566c8196abc5bbaa927d67544330190900000000000000000000000000000000000000000000001223384c5d70859bb0c5b49f8b76614c37210c0000172d42576c818d8d8d8d8d806a55402b1500000000000000152a3f556a7f94aabfad97826d58422d18000000000005182a3b5a6f8499afc6a7917c67523c27120203010101010101010101010101000000000000000000000c21374c61768a9fb4c4aa957f6a59473625180e090202090f1c2c3c4e63798ea5b7bcab907b66513b26110000000000000b1b2f404b6175879dabbcbcab9c8675604b3f2e1a0a000000000c1d30414c6177889eb3bebbaa9b8674604b3e2d1a0a000000000012273c51677c91a6bcbba5907b6659595959595959595a5b5a6269737f8d9fb4bfbbaa99836e5847331f0a00000000000000000d21334450555656565656565656565656565656565656565656565663788b9fb4bbaa98836e5c4a36220e000000000000000000000000000000000005192b3c484d58585858585858596f8499aebda8937d68533e28130000000000000000081d3144556a7f94a9af9a846f5c4a361d0d00000000000a1f3347586b8096a9b3a28e7a644f3d2c1a0600000000000000000000000000000000000000000000000010253a50657a8fa5bab39d88869aa2b2bcab9f927f6b624b4336271a0b00000000000000000000000000000000000c21364a5b72879db2c7b49f8a76614c362614000000000000000000000000000000000000000000000000081c2f3f546a7f94a9c3bbaa927d67523d28120000152a40556a7f95a2a2a297826c573c2b1905000000000000132536566b8095abc0ac97816c57422c17000000000000162b40556b8095aac0ab95806b56402b1616161616161616161616161616160c0a04000000000000000a1f33475870859aafc5b39e8977615443362b211e16151d202d3a495a6b8096abc3b49f8b77614c37220c00000000000417293a4c5e6c8197a5b7c3b49f8c7b655645322110000000000000121f334758667c91a0b2c4b5a395806b5c4a382816020000000012273c51677c91a6bcbba5907b6f6f6f6f6f6f6f6f6f6f7173777e86949fabbcc0b49f8c79634e3a291704000000000000000013283d50626b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6c8297acc8b59f8d7a644e3c2b1905000000000000000000000000000000000b2034485a626d6d6d6d6d6d6d6d6f8499aebda8937d68533e281300000000000000000b20364b6074889db2a4907b66513e2d1b0000000000000417293a4d62778a9fb4ae98836e5b4935210d00000000000000000000000000000000000000000000000010253a50657a8fa5bab7a69d9ba3b4c0b49f8d7e696151443026180a0000000000000000000000000000000000000e24394e63798ea5b6c4af9a856f5746331808000000000000000000000000000000000000000000000000001124394e63798ea5b7c8ae98836e59382816030013283e53687d93a8c3b19b86715a483520100000000000071c3043546e8398adbfaa957f6a55402a1500000000000012273c51677c91a6c5af9a846f5a3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b221f180c00000000000004172a3a54697e93a7b8b9a79882726054483c3632282731363e4a5863788b9fb4c5b09a85705947341f0b00000000000c1f334658667b909fb1c3b6a496816b5d4b3828160300000000000004182a3a4d5e6d8298a6b8c2b49f8c7a645645321e100000000012273c51677c91a6bcc5b09b858484848484848484848486888d939ca4b4bcc1b4a297816c5b49351c0c000000000000000000162b40556b808080808080808080808080808080808080808080808080808298adc2bcab99846f5a4835200b000000000000000000000000000000000d22384d6277818282828282828282879db2bda8937d68533e28130000000000000006192c3c52677d92a6b19c8673604a352010000000000000000c203448596c8297abb49f8c79634e3b2b1905000000000000000000000000000000000000000000000010253a50657a8fa5bac4b7b3b0b5c1bca7917c68604f43331c14080000000000000000000000000000000000000013283d53687d92a8c3bea9947e695439291700000000000000000000000000000000000000000000000000000c21364a5b72879db2c7b29d87725645321e09000f24394e64798ea5b7b5a38d78624d3e2e1e120a03040a1627384a6073889eb3c2a8927d68533d28130000000000000d23384d62788da7b9b39e887359484141414141414141414141414141414137342a1c0c0000000000000c21364c6176889eb3c2b2a0968172625a504b453838454b505c6476869ca9bab8a7947f69543b2a1804000000000c1c2f404c6176889db2bdbcab9c8675604b3f2e1a0a00000000000000000c1c30404c6176889db3bebbaa9c8674604b3f2e1b0a00000012273c51677c91a6bcc9b5a39b9999999999999999999a9b9ea6a8b1b6c2bdb1a39a8473604b3d2c1a000000000000000000001f34495e748996969696969696969696969696969696969696969696969698a0b2c6c9b3a18d78624d38220d000000000000000000000000000000000b2034485a6b8095979797979797979da6b7bda8937d68533e2813000000000000000c2035495a70859bb0aa937e695443301c070000000000000005182b3b4d63788c9fb4ab97826d594834200c000000000000000000000000000000000000000000000010253a50657a8fa5babaa89f9fa9b9c6ae9983756158483c2d1f1103000000000000000000000000000000000000162b40566b8095abc0b9a48f7a644f3a250f0000000000000000000000000000000000000000000000000000071a2d3d586d8398adc2b59f8b75604b36210b000d22364a5c72879db2c2ac97816c5c4b3c2f211e17181f28324556667c91a6b8b6a48d78624d38230d0000000000000c2035495a74899eb3b8a68c776256565656565656565656565656565656564c473a2a180400000000000a1f334658697e93a4b5beb09f9684786d6560565a5a5660656d7a869ca4b6c1b39e8976614c37210c0000000004172a3a4c5e6d8297a6b7c3b49f8c7a65564532211000000000000000000000121f334758667c91a0b2c4b6a496806b5d4b39281603000012273c51677c91a6bcd1c1b5b0aeaeaeaeaeaeaeaeaeafb0b3b8c4c6c0b4af9f978576615544311f0f000000000000000000001f34495e74899eabababababababababababababababababababababababadb2becfd0bfa28d78634d38230e0000000000000000000000000000000005192b3c4a60728399a4adadadadadb2b7c4bda8937d68533e2813000000000000001325364d63788da2b49f8b77614c3625130000000000000000000d2035495a6e8398adb49f8b78624d3a2a17040000000000000000000000000000000000000000000010253a50657a8fa5bab49f8a8a9ea8b7b3a1998476625a4a3d2e2112040000000000000000000000000000000000192e43596e8398aec3c5a28d77624d38220d000000000000000000000000000000000000000000000000000000162c41566b8196abc0bcab8e79634e39230e00071b2d3e576c8197aabbb49f8c7a645a4c403633292a3438454b6074869cb1c5b19c86715a4935200b00000000000006192c3c5a70859aafc5a6907c6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b615947341f0a00000000000417293a4b6073869ca6b8bdb0a29a8b827a7571706f71757a828c9ca4b6c2b4a3937e695847331f0a000000000a1f334758667c91a0b1c4b6a496816b5d4b382816030000000000000000000004172a3a4c5e6d8298a6b7c2b49f8c7a645745321e11000012273c51677c91a6bcbdbdbdbdbdbdbdbdbdbdbdbdbdbdbcc9bcb4b1aba29a90817461584737271501000000000000000000001f34495e74899eb3bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb8a28d78634d38230e00000000000000000000000000000000000d1c3043546175869ca6b8c7bdbdbdbdbdbda8937d68533e2813000000000000071c3043546b8095aaaf99846f594734180800000000000000000006192c3c4e64798ea1b3aa96816b5847331f0b0000000000000000000000000000000000000000000010253a50657a8fa5bab29c877a8a9da6b6b3a39b8678635b4b3f30221406000000000000000000000000000000001a2f455a6f849aafc4b9a78b76604b36210b000000000000000000000000000000000000000000000000000000142a3f54697f94a9bec9a48f7a644f3a250f00001023384e63798b9fb4bbaa9d8878665e514b46393a474c56606d8197a4b5b8a7957f6a553c2b190600000000000000172c41566c8196abc1af9a8480808080808080808080808080808080808077614c37220c0000000000000b1d3144556278889da8b6c0b4a99f978f8a87858586898f989faab6c2b5a49b8573604b3a2a17040000000a1d30404c6176889db3bebcab9c8675604b3f2e1a0a0000000000000000000000000c1c30404c6176889db3bebcab9c8675604b3f2e1c080012273c51677c91a6a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7a5ab9f9b968f847b6c6056473a2a190900000000000000000000001f34495e74899ea8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a28d78634d38230e00000000000000000000000000000000000013253646576278889ea9a8a8a8a8a8a8a8a8937d68533e28130000000000000b20354a6073879db2a9927d67523a2a1800000000000000000000000e22364a5c6f8499afb49e8a77614c3928160300000000000000000000000000000000000000000010253a50657a8fa5bab29c877279889ca4b4b4a49c8879655d4d40312416010000000000000000000000000000001b30465b70859bb0c5b39e89745645321e0900000000000000000000000000000000000000000000000000000012283d52677d92a7bcbaa5907b65503b261000000c2135495b6c8197a7b8b7a69d897c706661575a5a5961687582979fb1c0b39e8976614c36210e000000000000000012283d52677d92a7c7b4a29a96969696969696969696969696969696968d78634e38230e00000000000001152737485a647a8a9ca4b5bcbab4ada99f9c9a9a9c9fa8adb4bbbcb5a49c8676615544311c0c000000001024394d5f6e8298a6a8a8a89f8c7a6556453221100000000000000000000000000000121f334758667c90a0a8a8a8a496816c5d4b37230e0012273c51677c919393939393939393939393939393939392908e8b86817a70655d4b45382a1c0c0000000000000000000000001f34495e7489939393939393939393939393939393939393939393939393939393939393938d78634d38230e00000000000000000000000000000000000008182839485a657b8b939393939393939393937e68533e281300000000000010253a4f657a8fa5b49f8a76614b36210c0000000000000000000000071b2d3e50657b8fa3b4a8957f6a5746321e0a00000000000000000000000000000000000000000010253a50657a8fa5bab29c87726378869ba2b3b6a69d897b675f4e42331d150900000000000000000000000000001c31465b71869bb0c6b39d88735443301c0800000000000000000000000000000000000000000000000000000012273c51677c91a6bcbba6907b66513b26110000061a2c3d4c6277899eaabbb7a79e90847c7672707072777e8798a0b1bdb4a2947f6a5846331f0a00000000000000000e24394e63798ea9bac0b4afababababababababababababababababa38d78634e38230e0000000000000009192b3c4a5c647986979fabb4bcc7bab4b1afafb1b4bac6bbb4ab9f968678625847372614000000000012273c51677c91939393939393806b5d4b3828160200000000000000000000000000000417293a4c5e6d829393939393938b7a65503a2510000d23384d62787e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7c7b7976716b645c504c3f32281a0c0000000000000000000000000013283d52687d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7e76614c36210c000000000000000000000000000000000000000b1b2b3c4b5d657b7d7d7d7d7d7d7d7d7d7e79634e39230e000000000006192b3c566b8095abaf9a846f5746331e0a0000000000000000000000001023374b5d70859bb0b39e8975614b38271502000000000000000000000000000000000000000010253a50657a8fa5bab29c87725a62768499a1b1b7a79e8b7d696050443127190a000000000000000000000000001b30455a70859aafc5b49f8a75604b35200b00000000000000000000000000000000000000000000000000000014293e53697e93a8bebaa58f7a65503a25100000000e1f344859657b8c9fabb9b8b3a29a918a878585878b939da6b2beb6a69a8473604b3a29170400000000000000000b20354b60758a9fb4bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb8a38d78634e38230e00000000000000000e1e2d3e4a5b6375828c989fabaeb3b8c5b9b9c5b8b3aeaa9f988d81746259483a2a1909000000000012273c51677c7e7d7d7d7d7d7e74604b3f2e1a0a000000000000000000000000000000000c1c2f404c61767e7d7d7d7d7d7e7c66513b2611000c2035495a6268686868686868686868686868686868686765646158564f4b3e382f1d150a000000000000000000000000000011253a4e60686868686868686868686868686868686868686868686868686868686868686868615746331e0a00000000000000000000000000000000000000000e1e2e3f4b5d6568686868686868686868635b4936210c00000000000b2035495a71869cb1a9947e695439291703000000000000000000000000081c2e3f51667c91a4b5a7937e695645311d08000000000000000000000000000000000000000010253a50657a8fa5bab29c87725d58617483979fafb9a99f8d7e6b624b4437281b0c0000000000000000000000001a2f44596f8499aec4bbaa8c77614c37220c000000000000000000000000000000000000000000000000000000162b40556b8095aac0c5a38e79644e39240f00000005182a3b4b5d687e8d9ea8b5c0b4afaa9f9c9a9a9c9fabb2b7bfb3a49c8877615544311b0b000000000000000000081d31445570869ba8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a38d78634e38230e00000000000000000010202d3d4a57616d79838b93989ea7a2a4a4a3a79e99948b837a6b6056483b2b1c0c0000000000001024394d5f6768686868686868605645322110000000000000000000000000000000000000121f3346586168686868686868665e4c38240f0006192c3c494d535353535353535353535353535353535352504e4c473a3a372e231c11020000000000000000000000000000000b1e31414e5253535353535353535353535353535353535353535353535353535353535353534c463929170300000000000000000000000000000000000000000011212f3f4b50535353535353535353534e493d2c1a0600000000000d23384d62788da4b5a68e79634e39230e00000000000000000000000000001120354a6073869cb1b29d8774604b362614010000000000000000000000000000000000000010253a50657a8fa5bab29c87725d4756607381959db4baab9f93806d605545392a1c0e0000000000000000000000172d42576c8297acc1c8a38e79634e39240e00000000000000000000000000000000000000000000000000000417293a576d8297acc2b9a78c77614c37220c000000000d1d2e3f4e60687d8a9ca4b2b7c3bbb4b1afafb1b4bcc2b5b1a19986786259473726140000000000000000000001142637576c81939393939393939393939393939393939393939393938d78634e38230e00000000000000000002101f2d39464b5b636e787e83898b8d8f8f8d8c88837e786e645c4b45382b1d0d000000000000000a1d30404d51535353535353534b45382816020000000000000000000000000000000000000417293a464c53535353535353514c402f1c0900000e1e2c35383e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3b3937332925221b10080000000000000000000000000000000000011323313a3d3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3633291b0b000000000000000000000000000000000000000000000311212f373b3e3e3e3e3e3e3e3e3e3e39362c1f0f00000000000014293e53697e93a8b29d88735b4936210c0000000000000000000000000000071c304354677d92a5b7a6927d685443301c080000000000000000000000000000000000000010253a50657a8fa5bab29c87725d384555606c7f929faabab49e9581736057473a2b1e0f0100000000000000000014293f54697e94a9c6bca7917c675236261401000000000000000000000000000000000000000000000000000a1f33475870859ab0c5b39e89745947341f0a0000000000112131424e5f677986929da5abb2b5bcc9b9c3b6b2aba49c908376625a493b2a190900000000000000000000000f24394e647a7e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7e76614c36210c00000000000000000000010f1b29323d4a4e5a62686e737678797a7876746e69625a4f4a3e32281a0d000000000000000000122230393c3e3e3e3e3e3e3e3632281a0a00000000000000000000000000000000000000000b1b2933363e3e3e3e3e3e3e3b382f2212000000000e1920232828282828282828282828282828282828272624211f170f0d08000000000000000000000000000000000000000005131e25282828282828282828282828282828282828282828282828282828282828282828211e170b00000000000000000000000000000000000000000000000003111c23252828282828282828282823211a0f01000000000005192b3c586e8398adad98836e583d2c1a060000000000000000000000000000001325364b6074879db2b19c8673604b3520110000000000000000000000000000000000000010253a50657a8fa5bab29c87725d4737444b616a7e8c9fa8b8af9f9783756158483c2d1f1103000000000000000010263b50657b90a8b9c2ad97826d5443301c08000000000000000000000000000000000000000000000000000c21374c61768b9fb4c5b09b85705b3a2a1804000000000003132431404d5b63737d8790969c9faba4a4a2a59c968f867b6f6158493c2b1d0c0000000000000000000000000d21364a5c646868686868686868686868686868686868686868686868615846331f0a0000000000000000000000000b161e2d363c484d5359576162646463616054544d483c362e1d150a0000000000000000000004121d242728282828282828211e160a000000000000000000000000000000000000000000000b171f212828282828282826241c12040000000000060c0d131313131313131313131313131313131312100f0c0a04000000000000000000000000000000000000000000000000010b111313131313131313131313131313131313131313131313131313131313131313130c0a03000000000000000000000000000000000000000000000000000000080e10131313131313131313130e0c06000000000000000b2035485a73889db2a9937e69543e291400000000000000000000000000000000081d314455697e93a6b6a4917c66513f2f1c0800000000000000000000000000000000000010253a50657a8fa5bab29c87725d472631435060687c8a9ea7b7b1a1998576625a4a3d2e211205000000000000000b21364b6075899eb4c8b39e8874604b35200f00000000000000000000000000000000000000000000000005182b3b52677c92aabbc3aa947f6a553f2a1500000000000000061322303d4a546067747b81878a8d8f8f8d8b87817a73665e4c463a2b1e0e00000000000000000000000000071a2d3e4a4e53535353535353535353535353535353535353535353534c463a29170400000000000000000000000000030f1a212b35383e39464b4d4f4f4e4c4a433638352b221b1002000000000000000000000000000a1012131313131313130b0903000000000000000000000000000000000000000000000000040a0c13131313131313110f0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22384d62788da6b7aa8f7a644f3a250f00000000000000000000000000000000011527374b6075889eb3b09b85715d4b38231000000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d33424e5e667a899da5b5b3a39b8678645c4b3f30231200000000000000091e3245566e8399aec9b8a68f7a644f3d2c1a0600000000000000000000000000000000000000000000000b203448596d8298adc8b7a58e79634e39240e000000000000000004121f2d36434b5560656c72757779797775726b6560544c4033291b0e0000000000000000000000000000000f202d36393e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3633291c0c00000000000000000000000000000000070e19202228293236383a3a38373530252220190e07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a10122020202020202020202020202020202020201f1d1b19140e0b07000000000000000000000000000000000000070d0f1f20202020202013110b02000000000000000000000000000002090b1b2020202020201a0b08010000000000000000000000080e1020202020201d1b140b000000000000000000000000000000000000000012273d52677c92a7b49f8a75604b36210b0000000000000000000000000000000000091e3245566a7f94a8b5a3907b65503e2d1b07000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d2431404c5c6479879ba3b4b4a49c887a655d4d41301c0c0000000000000216283852687d92abbcc4ad98826d5b493521110000000000000000000000000000000000000000000006192b3c4c62778a9fb4c7b29d87725b4a36210c000000000000000000010f18263037444b5056566062646462605656504b43362f1f170b00000000000000000000000000000000010f1a21242828282828282828282828282828282828282828282828211f170c00000000000000000000000000000000000000050b0d13161e212324252321201c130d0b05000000000000000000000000000000000000000000000000000000000a101220202020202020202020202020201f1d1c1a1816110c0a0300000000000000000000000000000000000000000000000004121d24273535353535353535353535353535353535353432312e2924201c1308040000000000000000000000000002101b22243435353535353529261f14060000000000000000000000000a151d20303535353535352f201d1409000000000000000003111c23253535353535322f281c0e00000000000000000000000000000000000001162b40566b8095abb19c86715645321e090000000000000000000000000000000000031628384c6176899eb4af9a846f5c4a36220f000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d13222f3e4b5b6377859aa2aaaaa69d8a7b675f4d3a2a18040000000000000c22374c61778b9fb4cab49f8c79634e3f2e1d0d000000000000000000000000000000000000000003112035495a6c8196a9babfab96816c563d2d1a07000000000000000000000008141c2731363b38454b4d4f4f4d4b45383a35302618110400000000000000000000000000000000000000070d0f13131313131313131313131313131313131313131313130c0a04000000000000000000000000000000000000000000000000030a0c0d0f0f0e0c0b0700000000000000000000000000000000000000000000000000000000000004121d242735353535353535353535353535353533312f2d2b26211e160f0d07000000000000000000000000000000000000000000122230393c4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a494746433e393530251f180c03000000000000000000000010202d36394a4a4a4a4a4a4a3e3b31241403000000000000000000000a1a273136464a4a4a4a4a4a4535312619090000000000000011212e373a4a4a4a4a4a47443a2c1c0b000000000000000000000000000000000002162838596e8499aeae99836e59382816020000000000000000000000000000000000000a1f3346586b8096a9b4a28f7a644f3d2c1a060000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0412202e3d49596275849495959595958a7c675847331f0a0000000000000a1f3447596f849aafbfbcab98836e5d4b3c2b1a0a00000000000000000000000000000000000003112232434d62788b9fb4c7b3a18f7a654f3a2510000000000000000000000000000109151d2026273136383a3a3836312725201c1408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000122230393c4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a48464442403c36322924221b10090000000000000000000000000000000000000a1d30404d516060606060606060606060606060606060605e5d5b59534e4a4336332a1e160a000000000000000000071b2d3e4a4f5f606060606060534e4231211100000000000000000002152738454b5b6060606060605a4b44372614010000000000081c2e3f4b5060606060605d574a3a28140000000000000000000000000000000000091e32455672879cb2ab95806b56402b16000000000000000000000000000000000000000417293a4c62778a9fb4ae99836e5b4935210d0000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0802101f2c3b485761747f7f7f7f7f7f7f7f77614c37220c00000000000004182a3a4f647a8fa0b2c8b59f8d7b655a4838281b0d000000000000000000000000000000000213212f404f616e8399aabbbcab99846f5d4b37220e00000000000000000000000000000002080b10151d2022242422201d15100b0801000000000000000000000000000000000000000000000000000000000000010a10122020202020202015130d0300000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d13171a1b1d1c1a18130e0b0700000000000000000000000000000a1d30404d5160606060606060606060606060605f5d5b595856514b463939362d241c1209000000000000000000000000000000001024394d5f677575757575757575757575757575757575757472706e696360544c473a32281b0f01000000000000000d22364a5c647475757575757568604e3f2e1d0d0000000000000002101d31455660707575757575756f605544311d0800000000000e23374b5d657575757575726857442f1b06000000000000000000000000000000000b21364b60768a9fb4a7927d68523d281300000000000000000000000000000000000000000c203448596c8197aab59f8c79634e3b2b190500000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000e1d2a39465660696a6a6a6a6a6a6a615847331f0a000000000000000c22374b5c6e8398aabbbcab9e8878625645392b1d1006000000000000000000000000010a161e313f4c5e6a7f94a1b3c7b49f8c79644e3f2e1b080000000000000000000000000000000000000002090b0d0f0f0d0b090200000000000000000000000000000000000000000000000000000000000000000005121d2427353535353535352a2820150700000000000000000000000000000000000000000000000000000000000000000000000002090e192022282d2f3032312f2d2924201c13080400000000000000000000001024394d5f6775757575757575757575757575757472716f6d6b666157544e4a3e382f241d1205000000000000000000000000000012273c51677c8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a898786837e79736a61584b45392d1f11040000000000000f24394f64798b8a8a8a8a8a8a7e685d4b3c2b1a0a000000000000102131424b6074858a8a8a8a8a8a8474604b35200b000000000010253a50657b8a8a8a8a8a87725d47321d08000000000000000000000000000000000e23384e63788daabba5907a65503b2510000000000000000000000000000000000000000005182b3b4d63788b9fb4ab97826d594834200c00000000000000000000000000000010253a50657a8fa5bab29c87725d47321d080000000d1b2938454b54555555555555554c473a2a180400000000000000071b2e3e4e63798b9fb4c2b8a69b85746057483b2e20190e0801000000000000000408141c2832414e5d667c8d9fb4bfbaa998826d5c4a362110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001122330393c4a4a4a4a4a4a4a3f3c33251505000000000000000000000000000000000000000000000000000000000000000000000a151d202b35383d424446474645423e393530251f170c0000000000000000000012273c51677c8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a88868482807b76706a645c514c40382f20180d0000000000000000000000000012273c51677c919f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa79e9c9b98938e8880776c60574a3d2f22110200000000000d22364a5c677d929e9f9f9f9f8b7b655a4838281602000000000d1d2e3f4e606c8197a29f9fa89c8776615544311d08000000000010253a50657a8f9f9f9f9c87725d47321d080000000000000000000000000000000010253a50657a8fa5c8a38e78634e39230e0000000000000000000000000000000000000000000d2035495a6e8398adb49f8b78624d3a2a1704000000000000000000000000000010253a50657a8fa5bab29c87725d47321d08000000000b1a2731363f4040404040404037332a1c0c000000000000000000102135495b6c8197a4b5c5b5a399837562594b3f352c201c14100e0c0b0d0f11181f263038454b5f687b899eabbcbdb49f8b78624d3d2d1a020000000000000000000000000000000000000000000000000000070b0f1417191b1c1c1a1816120c0a0400000000000000000000000000000000000000000a1d30414d5160606060606060555043332312020000000000000000000000000000000000000000000000000000000000000002121a2731363c484d5257595b5c5b5a58534e4a433633291c1302000000000000000012273c51677c919f9f9f9f9f9f9f9f9f9f9f9fa99f9d9b999795918a857f7970665e514c40342b1d1100000000000000000000000012273c51677c91a6b5b5b5b5b5b5b5b5b5b5b5b5b5b5c5b9b3b2b0aea8a69d958a8175635b4c402f20100000000000071b2d3e4d5f6b8096a2b3bbaa9e8878625645321e140300000a1a2b3b4b5d687e939fb1bcab9e8a7963584737261401000000000010253a50657a8fa5b5b29c87725d47321d080000000000000000000000000000000012273c52677c91a7bbaa8c76614c37210c00000000000000000000000000000000000000000006192c3c4e64798ea1b3aa96816c5847331f0b000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000a151d20292a2a2a2a2a2a2a221f180c00000000000000000000061a2c3d4b6175869ca7b8c1b3a1998577655d4d493c353026252321202224262a3436434b56606b7d8b9ea7b8c0b09e927d685a48351f0f0000000000000000000000000000000000000000000000000908131c20242a2c2e3032312f2d2b27221f180d0b0500000000000000000000000000000000001024394d5f67757575757575756a61504130201000000000000000000000000000000000000000000000000000000000000009151d2f38454b525a62686c6f7072716f6d686360544c463a301d150a0000000000000012273c51677c91a6b5b5b5b5b5b5b5b5b5b5b5bab4b2b0aeadabaa9f9a948e857b70665e4d483b2f1c13080000000000000000000012273c51677c91a6bcd8c8bbb4b4b4b4b4b4b4b4b4b4b4b4b5bcc9bdc4b8b3a99f968679665e4c3e2e1d0d0000000000102030414b6073849aa5b6b8a69b8574604b4232211100021528384859657b8b9fb4bdb59f8d7c665b4a3a29190900000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000014293f54697e94a9b49f8a75604a35200b000000000000000000000000000000000000000000000e21364a5c6f8499afb49e8a77614c392816030000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000002090b14151515151515150c0a040000000000000000000000000e1e3246576278899eaabbbfb3a39b887a6e635a4f4b43363b383635373a3c3a474c5460677580929fa9b8c2b3a296816c604e3c2b19010000000000000000000000000000000000000000000009121c24253035393f41434547464442413d37332a221f180d0400000000000000000000000000000012273c51677c8d8a8a8a8a8a8a7f6a5f4d3e2e1e0e0000000000000000000000000000000000000000000000000000000009192731404c56606871787d828485878684827e79736961584d4132281a0a00000000000012273c51677c91a6bccacac1bdb8b8b8b8b8b8b8b9bbbcbec1c8bbb4afa9a39b90857c7062594b3f3025180900000000000000000012273c51677c91a6bccebbaa9f9f9f9f9f9f9f9f9f9f9f9f9faba3a8adb4babab4a49c8b7c665c4b3b2a18050000000002131d3144556176879ca8b9b5a398826d604f3f2f1e0e111d3245566277889da9bab3a195806a5e4d3d2d1c0c0000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000162b40566b8095abb39e88735443301c0700000000000000000000000000000000000000000000071a2d3e50657a8fa3b4a895806a5746321e0a0000000000000000000000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000003162939485a657b8c9fabb9c1b5a69d8f83786c65605452504e4c4b4d4f5154596168737d87969eb4babfb3a49a8473604b42311e0e00000000000000000000000000000000000000000004111c232f3836434a4f5457595a5c5b595856524c473a37342a1f180c00000000000000000000000000001024394d5f6a7f94a09f9f9f9f8d7d675c4b3c2b1b0b000000000000000000000000000000000000000000000000000008182737444b5e66747d868d9297999b9c9b9a97938e877f76675f4b4538281808000000000012273c51677c91a6bccabaada8a3a3a3a3a3a3a3a4a5a7a9abb1b5bcc9c1b4b0a39b908477655d4a4336261909000000000000000012273c51677c91a6bcc9b49f8b89898989898989898989898a8c8e92989fa9b1bdb6a99e8a7a645947341f10000000000001142637475863798a9eabbcb2a0937e695d4b3c2b1b2132424b6074859ba6b7b6a4998372604a40301f0f000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000172c41566c8196abb29d88725d4825130000000000000000000000000000000000000000000000000f23374b5d70859bb0b39e8975614b3827150200000000000000000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000000000b1b2b3c4b5d687e8d9ea8b6c3b7b2a0988b817a746d67656361606264666970777d86929da5b0bcbcb0a19986766155443123130000000000000000000000000000000000000000000c181f2f38404c51546064696c6e7071716f6d6b676158554c483b332a1c14010000000000000000000000000a1d304150616d8298a2b4bcab9f8b7a645a4839291909000000000000000000000000000000000000000000000000001325364455606c7c88929ca4a7acaeb0b1b0afada8a59d94897d6e605645362614010000000012273c51677c91a6bcc1ad9c938e8e8e8e8e8e8e8e909294969b9fabadb4bbc1b5b0a29a887b6a605444372618080000000000000012273c51677c91a6bcbba5907c74747474747474747474747576797d838b979fb4bbb9a89e8977624c3e2d1b07000000000009192a3a4a5b667c8d9fb5beb49f8c7b655a4839282e3f4f606d8297a3b5b9a79c867561544330221201000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000172c42576c8197acb29c87725d47321d000000000000000000000000000000000000000000000000081c2e3f51667c91a4b5a7947e695645311d0800000000000000000000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000000000e1e2e3f4e60687c8a9da5b4c0beb2aa9f978f88827d7a78767577797b7f858b929ba3b2b7c3bab49e9683766158473726140500000000000000000000000000000000000000010f1d2a343f4c505e666d74797f81838587868482807c77706a62594c473a311d1509000000000000000000000001122333434b6074849aa5b6baa99d8878625746372614010000000000000000000000000000000000000000000000081c3043546073818d9da6b1b5c2c1bfbbbabbbec2c3b6b2a79e928274605443301c0f0000000012273c51677c91a6bcbda8937e79787878787878797b7d7e81868b92989faab4bbc0b4a69e8d7f726055443625130000000000000012273c51677c91a6bcbba5907b665f5f5f5f5f5f5f5f5f54606163686d7781919faabbb8a797826d5c4a3622090000000000000c1c2d3d4d5e6a8095a1b2bbaa9e8978625745323c4b5d697e939fb1bcab9e89796357463625130400000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000182d42586d8297adb19c86715c47311c070000000000000000000000000000000000000000000000001120354a6073869cb1b29d8874604b36261401000000000000000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000000000000112131424e5e6679879aa2b2b6c3bbb4aca69e9792908d8b8a8c8f91949a9fabb1b5c1bbb4a99f9280736158473a2919090000000000000000000000000000000000000004121f2d3b474c5d65707b82888e9496989a9c9b999796928b8580776b61584e423127190b000000000000000000000005151d3145566176879da7b9b8a69c8675615544311d140300000000000000000000000000000000000000000008182e3f4a607282969fabb7c4bcb4afa9a6a5a6a9afb4bcc5b9b3a0988272604b3d2d1a0700000012273c51677c91a6bcbba5907b66636363636363646667696c71777c838b979faab4c1b8ab9f948273605443301c1100000000000012273c51677c91a6bcbba5907b66504a4a4a4a4a4a4a4a434b4c4e5359626c7d8c9fb4c1b49f8c7a644f372614010000000000000f1f30404a60728399a4b5b8a79b8575604b43485a657b8c9fb4beb49f8d7c665b49392918080000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000182e43586d8398adb09b86715b46311c06000000000000000000000000000000000000000000000000071c304354677d92a5b7a6927d685443301c08000000000000000000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000000000003132331404c5b637684919ca4b3b7c4c5b8b3ada7a5a3a1a0a2a4a6a9b0b4bcc9bfb3aa9f978a7d6b6055463a291c0c000000000000000000000000000000000000000112222f3d4a59616f7b8590989ea6a9acaeafb1b0aeadabab9f9b958a807768604b4437291b0b00000000000000000000000215273847586379899eaabbb5a4998373604b423122110100000000000000000000000000000000000000001325364b5d6b8096a0b5bcbfb3ab9f9a94919091949a9fabb4c0beb2a096816c5c4a36210f00000012273c51677c91a6bcbba5907b66504e4e4e4e4e4f505254565961676e78828b9ba3b0bdbcb4a0978272604a402f1a0a000000000012273c51677c91a6bcbba5907b66503b34343434343426303537393b474c5f687e93a3b5bcab97826c5544311d0800000000000001121c3043546175869ca7b8b5a398826e614f566278889eaabbb2a0947f6a5e4c3d2c1b0b000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000182d43586d8298adb19b86715c46311c07000000000000000000000000000000000000000000000000001325364b6074879db2b19c8773604b352011000000000000000000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000000000000051322303d4a5861727c87939da6aeb4b9c6c2bcbab8b6b5b7b9bbbec4c2b6b1aba1998c8278685f4b4437291c0c00000000000000000000000000000000000000000f1f2f404c5c647784909ba3adb3b8c5c1c1bfbdbec0c2c9bcb4b0a89f968a7e6c6055463929160300000000000000000000000a1a2a3a495b657b8c9fb4bdb3a196816c604e402f1f0f00000000000000000000000000000000000000071c304354657b8f9eb0bebbafa1998c847f7c7b7c7f848c9aa2b1bebeb49f8c79644e3e2d1a07000012273c51677c91a6bcbba5907b66503b39393939393b3d3f3b474c525b636d7885969fb4bbbeb1a0957f6a5e4c382816030000000012273c51677c91a6bcbba5907b66503b261f1f1f1f1f141c2021232a34414a6072859bb0c9b39e8874604b35200b000000000000000013253646576378899eaabbb2a0947f695e6075859ba6b8b5a498836e6150402f1f0f00000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000172d42576c8297acb19c87725c47321d0700000000000000000000000000000000000000000000000000081d314455697e93a6b6a4917c67513f2f1c080000000000000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000000000000000004121f2d3a47546067747e8892999ea8acb1b4bac7b9bab9c4b7b2afa9a49c968e83796d62594e413126190c00000000000000000000000000000000000000000c1c2d3d4c5e667a879aa2b0b4c1c7bab4afacaaa8a9abadb2b6c3c6bab4a89e938173615746321e150300000000000000000000000c1c2c3d4c5d687e939fb0bfb09f937e695e4c3d2d1d0c0000000000000000000000000000000000000b20354a6072859bb0bcbdaf9d9483786f6a666566696f7984979fb1c1bcab9a846f5c4a36210d000012273c51677c91a6bcbba5907b66503b26232323242628292a34373c494d5a637481929faabbbeb49f8d7c665645321e0d0000000012273c51677c91a6bcbba5907b66503b26110a0a0a0001080b0c0e181f304354687d92a7c6b8a68f7a654f3a2510000000000000000008182939495a657b8c9fb4beb49f8d7c666d8298a3b5b8a79c8675614b433322120100000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000172c41576c8196acb29d87725d48321d0000000000000000000000000000000000000000000000000000011527374b6075889eb3b09b85715d4c3823100000000000000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000000000000000000010f1c2a36434a556068757d838990979c9fa9a3a4a5a4a3a69d9a948d87807a6e635b4d483b311d140900000000000000000000000000000000000000000417293a4a5b667c8a9da5b3c0c0b4b0a99f9a9695939495979da5aab3b9c5b9b49f978475614b433221110000000000000000000000000f1f2f3f4e606c8196a1b3bdb49f8c7c665b4a3b2a1a0a000000000000000000000000000000000114263651667b90a3b5c5b19f947f6e635a54515051545b63738197a3b5c9b3a28e79644e39240f000012273c51677c91a6bcbba5907b66503b26110e0e0f111214181f222c353c4955606c7d8c9fb4bdbcab9d8775604b3b2a180500000012273c51677c91a6bcbba5907b66503b2611000000000000000000051325364c61778ca8b9c5a7927d68523d28130000000000000000000b1b2c3c4c5d697f94a0b2bcab9e89787f94a0b2bbaa9e8978625746322515040000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000162b41566b8096abb29d88735d392816030000000000000000000000000000000000000000000000000000091e3245566a7f94a8b5a3907b65503e2e1b0700000000000000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000000000000000000000c18253037444b5761686e757b8286898c8e8f8f8e8d8b88847e78726b645c4e493d342b1d13010000000000000000000000000000000000000000000a1f33475863798a9ea8b7c3b7b2a29a918a85817f7e7e8082878d959ea7b0bdbdb1a298826e614f3f2e1c08000000000000000000000001112131424b60738399a4b5bbaa9e8a7963594738281502000000000000000000000000000000081c3043546d8297acc1b8a797816c614d493c3c3b3c3d49556074859bb0c2c0aa947f6a55372715010012273c51677c91a6bcbba5907b66503b2611000000000000040b0e19212c37444b5f697e939fb1c1b7a5947f6a5947341f0c00000012273c51677c91a6bcbba5907b66503b261100000000000000000000081f34475974899eb4bfaa947f6a553f2a15000000000000000000000e1e2f3f4f616d8298a3b5b8a79d878c9fb4beb49f8c7b655a4939281607000000000000000000000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000152a3f556a7f94aab49e89745745321e090000000000000000000000000000000000000000000000000000031628384c6176899eb4af9a846f5c4a36220f00000000000000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000000000000000000000000008131c273139464b525660666c717477797a7a797876736f69635b564f4a3e362c20190d00000000000000000000000000000000000000000000081c2e3f4c6176879ca8b9c1b5a69d90857b766f6c6a68696b6d72787f89969fb4bac0b2a0947f6a5d4b37231100000000000000000000000003141d3144556175869ca6b8b9a89d8777615645321d150500000000000000000000000000000b20354b6074889eb3c8b39e8976614c43352c2726272c374556657b90a4b6c5b09b85705544311d080012273c51677c91a6bcbba5907b66503b2611000000000000000000060e192731414f606c8197a3b5c3b49e8977624c3b2a1804000012273c51677c91a6bcbba5907b66503b26110000000000000000000005182b3b5d72889db2c1ac96816c57412c170000000000000000000000112132434b6074859ba6b8b7a59d9faabbb2a0947f695d4c3c2c1b0b00000000000000000000000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000013283d53687d92a8b9a88b76604b36210b0000000000000000000000000000000000000000000000000000000a1f3346586b8096a9b4a28f7a644f3d2c1a06000000000000000010253a50657a8fa5a5a59c87725d47321d080000000000000000000000000000000000000000000000000000000000000000000000000000000000000009151d28323638454b5157546062636465646361575a544e493d39362d211a0f0500000000000000000000000000000000000000000000000e23374b5d6e8399a5b6c2b5a39b887b706660575755535456585a636a7681929fa9babfb49f8c7b6550402f1c090000000000000000000000000114263746576278889da9bab7a59b8574604b4333231302000000000000000000000000000e23384e63788da6b8bfac97816c58473320191110111927384c5d72879cb1c7b49f8a75604b35200b0012273c51677c91a6bcbba5907b66503b2611000000000000000000000009151d32424b6073859bb0bfb9a897816c5947341f0b000012273c51677c91a6bcbba5907b66503b2611000000000000000000000b2034485974899eb4c0ab96806b56412b16000000000000000000000003141e3245566278889da9bab7b2b4bbb5a398826d614f3f2f1e0e0000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000011263b51667b90a6c6a28d78624d38230d0000000000000000000000000000000000000000000000000000000417293a4c62778a9fb4ae99836e5b4935210d000000000000000010253a50657a8f8f8f8f8f87725d47321d080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b161e212832363b36434a4d4e4f504f4e4b46393f38352c24221b1006000000000000000000000000000000000000000000000000081b2e3f50657a8fa1b3c3b6a49b8577665e514b4539403e3f403c494d58616c7e8b9fb4bdbbaa9b85705e4c38230f0000000000000000000000000009192939485a647a8b9fabbcb4a398826d6150413020100000000000000000000000000010253b50657a90a5aaaaa6917b66513a2917060000000a1a2f3f576c8197acc1bcab8c77624c37220d0012273c51677c91a6bcbba5907b66503b261100000000000000000000000002141d314455657b90a1b3c6b49f8b77614c37220c000012273c51677c91a6bcbba5907b66503b2611000000000000000000041426364c62778ca8b9bfa9947f6a543f2a15000000000000000000000000021628384859657b8b9fb4c9c7cab8a69b8575604b43322111000000000000000000000000000000000010253a50657a8fa5bab29c87725d47321d00000000000000000000000000000000000f24394e64798ea3c5a48f79644f3a240f000000000000000000000000000000000000000000000000000000000c1f3448596c8197aab59f8c79634e3c2b1905000000000000000c21364c61767a7a7a7a7a7a644f3a240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090c161e212625303537393a3a39383632292923211a0f0d0700000000000000000000000000000000000000000000000000000e22374b5d6f849aafbfb9a89c867562594c403632282a29292b2c353a464c60687d929fb1c5b4a3907b65503d2d1a07000000000000000000000000000b1b2b3c4b5c677d8d9fb5beb2a0957f6a5f4d3f2e1e0e00000000000000000000000012273c52677c91949494948e79634e39240e000000000013283d53687d92a8bdc9a38e79644e39240f0012273c51677c91a6bcbba5907b66503b261100000000000000000000000000011527374b5d6f8499afc3bbaa927d6853392816030012273c51677c91a6bcbba5907b66503b2611090909090002090b0d181f304354687d92a8c6c1a6917c67513c2712000000000000000000000000000a1a2b3b4b5d687d93a8bdd2c8b39e887862564532251403000000000000000000000000000000000010253a50657a8fa5bab29d87725d36261401000000000000000000000000000000000c22374c61778ca7b8a6917c66513c27110000000000000000000000000000000000000000000000000000000005182a3b4d63788b9fb4ab97826d5a4834200c000000000000000a1f334658616565656565645c4a36220d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b11131c20222425252423211e16140e0c06000000000000000000000000000000000000000000000000000000000010253a4f657a8fa2b4c6b49e8a796357483b2f211e161513141619202933414e5f6c8197a7b8c1b09b85705b4a36210c00000000000000000000000000000e1e2e3e4d5f6a7f95a0b2beaf9e927d675d4b3c2b1b0b00000000000000000000000f24394f647a7f7f7f7f7f7f76614c36210c000000000011263c51667b91a6bbbaa5907b65503b26100012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000009192e3f4f64798ea5b6c8ae99846f5746321e090012273c51677c91a6bcbba5907b66503b261e1e1e1e1e1e151d20232a34414b6073869cb1c6b4a38c77624c37220d000000000000000000000000000818293a4a5c697e93a8bed3c8b39e8978625645311d1301000000000000000000000000000000000010253a50657a8fa5bab39e89735443301c08000000000000000000000000000000000a1f34475973899eb3a9947f6a543f2a1500000000000000000000000000000000000000000000000000000000000d2035495a6e8398adb49f8b78624d3a2a17040000000000000417293a464c50505050504f4a3e2e1b0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b0d0e0f100f0e0c0a030000000000000000000000000000000000000000000000000000000000000000071a2d3d586d8298adc0b9a8957f6a5b4a392b1d11090300000000060c171f31414b6075889eb3c8b4a28e79634e39240e00000000000000000000000007121c2329334150616d8298a2b4bcb49f8b7b645a4939291909000000000000000000000d22364a5c646a6a6a6a6a6a615746331e0a000000000010253a4f657a8fa4babba6917b66513c26110012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000001122364a5c72879cb2c7b49f8a75614b36210c0012273c51677c91a6bcbba5907b66503b33333333333333283236383a474c5f697e94a4b5c1b09b85705947341f0b000000000000000000000000001325364758647a8b9fb4c9c9ccb8a79b8574604b41301f0f000000000000000000000000000000000010253a50657a8fa5bab49f8a75604b35200b0000000000000000000000000000000004182a3a5b70859ab0ac97826d57422d18000000000000000000000000000000000000000000000000000000000006192c3c4e64798ea1b3aa96816c5847331f0b000000000000000b1b2933363a3a3a3a3a3a362e20100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364a5b73889db3c8b49e8a76614c3d2d1b0d00000000000000000004131e3245576a7f94aabbc0a9937e695437271502000000000000000000010f1a212f3839464b52556074849ba5b6baa99e887862574637261401000000000000000000071b2d3e4a4f5555555555554c463929170300000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000071b2d3e566c8196abc1baa9917c67513c27120012273c51677c91a6bcbba5907b6650494949494949494938454b4d5259616c7d8d9fb4c2b4a3917c67523b2a18050000000000000000000000000d1c3043546176879da9bab9b3b9c5b5a396816c5f4d3d2c1b0a0000000000000000000000000000000010253a50657a8fa5babcab8c77624c37220d0000000000000000000000000000000000172d42576c8297acb09a85705b3c2b190600000000000000000000000000000000000000000000000000000000000e21364a5c6f8499afb49f8a77614c39291603000000000000000b171f21252525252524221b10020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b0e11141516151412100c0a0400000000000000000000000000000000000e23394e63798ea6b7c9ac97816c5847331f0f0000000000000000000000031628394c61768b9fb4c4ae99846f5544311d08000000000000000001141f2d36404c505761676a6d6f77879db2c7b8a69c8675615544311d140400000000000000000010202d36393f3f3f3f3f3f3633291b0b0000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000010263b50657b90a5c5c7ab96816b56412c160012273c51677c91a6bcbba5907b665e5e5e5e5e5e5e5e5e5e566062676d7781919fabbcb9a89b8573604b35200d0000000000000000000000000d1d2e3f4a60728399a5b7b9a79ea7b1bdb19f917d675b493928160300000000000000000000000000000010253a50657a8fa5bac9a6917c6651372715020000000000000000000000000000000014293e54697e93a9b39e88735a4935200b0000000000000000000000000000000000000000000000000000000000071a2d3e50657a8fa2b4a895806a5746321e0a0000000000000000040a0c10101010100f0d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d141d202326292a2b2b292726211f170f0d08000000000000000000000000000014293e54697e93a9c4bcab917c66513a2a17010000000000000000000000000a1f33475870859bb0c5b49e8974604b36200b0000000000000009141d323d4a4e5e666e767c80828483859bb0c5c5b5a4998373604b4232221200000000000000000002101b22242a2a2a2a2a2a211e170b000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000b21364b60758ba7b8c4ae99846f59442f1a0012273c51677c91a6bcbba5907c73737373737373737373737475787c828a979fb4bcb6a89e8a79635544311d08000000000000000000000008182a3b4b5d6a7f94a1b3bbaa9e89979fb1bdb49e8a79635745321e1301000000000000000000000000000010253a50657a8fa5bac1ab96816c5544311d0b000000000000000000000000000000000f253a4f647a8fa9b8a78d78624d38230d0000000000000000000000000000000000000000000000000000000000000f23374b5d70859bb0b39e8976614b3827150200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080d192022263135383c3e3f40403e3d3b36332925221b1008010000000000000000000000182d43586d8298adc2b59f8b76614c37210c000000000000000000000000000417293a566b8095abc0b9a88e79634e39240e00000000000009192631424f5b636f7b838a91959799999ba3b4c8d2c2b3a197816c604f402f1e0e00000000000000000000070d0f1515151515150c0a0300000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000091e32455673899eb3c7b19c87725c47321d0012273c51677c91a6bcc9b39e898888888888888888888888898b8d92979fa9b1b8b3a59c8a7b655b493726140100000000000000000000011426364759657b8c9fb4bfb49f8c7a8197a3b5b9a89c8675604b42311f0f000000000000000000000000000010253a50657a8fa5bac8b29d8774604b392917080000000000000000000000000000000b20364b60758a9fb4a7917c67523c2712000000000000000000000000000000000000000000000000000000000000081c2e3f51667c91a4b5a7947e695645311d080000000000000000000000000000000000000000000000000000000000060c0e12151718191918171613100d0b050000000000000000000000000000000000000000000000000000000000000000000005111c232b343737444b4d51535556555352504c463a3a372e201c1408000000000000000000001a2f445a6f8499afc4b29d87725847331f0a000000000000000000000000000011273c51667c91a6bbc6a5907b65503b2510000000000001142637444b6069798490999fa9aaacafaeb0b4c1cbd5d0bfb19f937e695e4c3c2c1b0a00000000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000021628385c71879cb1c6b39e88735e49331e0012273c51677c91a6bcccb9a89e9e9e9e9e9e9e9e9e9e9e9e9ea8a2a7adb4bab4a69e94877a655d4b3d2c190900000000000000000000000d1c3043546277889daabbb2a1947f6974859ba7b9b5a497826d604e3d2d1b0b0000000000000000000000000010253a50657a8fa5bacbb7a6927d675746332618100f111513110b0100000000000000091d31455670859aafab96816c563a2917040000000000000000000000000000000000000000000000000000000000001120354a6073869cb1b29d8874604b3626140100000000000000000000000000000000000000000000000003090b111a2123272a2c2d2e2e2d2c2b2825222019150f0b0700000000000000000000000000000000000000000000000000000000010d181f2e373b484d5455606366696a6b6a6967656158574f4b3f353026180d0000000000000000001c31465b71869bb0c5b09b86705b3a2a1704000000000000000000000000000010253a50657a8fa5babca7917c67523c27120000000002101d314455606c7e8c9aa2aeb4bab9b4b0aeaeb0b3b8c5c9cdbdb49f8c7c665a4939281603000000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000001a30455a6f859aafc4b49f89745f4a341f0012273c51677c91a6bcd6c6b9b3b3b3b3b3b3b3b3b3b3b3b3b4b9c6bcc2bcab9f94887f75645c4b3f2e1f0f00000000000000000000000d1d2f404b6072849aa6b7b6a499836e616278899eb3bcb1a0927d685c4a3929170300000000000000000000000010253a50657a8fa5bad4c4b29c8775614b43362d2624262a28251e130500000000000002152738566b8095abb09b85705846331f0a000000000000000000000000000000000000000000000000000000000000071c304354677d92a5b7a6927d685443301c0800000000000000000000000000000000000000000000060a161e21262c35383c3f424344444342403d3b38352b2a24201c13080400000000000000000000000000000000000000000000000008141c2a343f4b4f5962696f75787b7e7f80807e7c7b76716c645d524b43362b1d1204000000000000001d33485d72879db2c4ae99846f59442f1a0000000000000000000000000000000e23394e63788ea3b8bea8937e69533e291400000000102031424b607381939faab3bcb5ada89e9b99999b9ea6acb4bac7bbaa9e8978635745321e11000000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000041a2f44596f8499aec4b49f8a755f4a35200012273c51677c91a6bcd2c2b5b1afafafafafafafafafb0b1b4bac7cacab49f8b7f756a61574a3d2e2111010000000000000000000009192b3b4c5e6a8095a2b4baa99c8676614c5a667c919eb0beb49f8a7a645746331e1402000000000000000000000010253a50657a8fa5bac7bab4a598826d60544a3d3b3a3b3f3d3a3123130100000000000010253b50657b90a7b49f8b76614c36210c000000000000000000000000000000000000000000000000000000000000001325364b6074879db2b19c8773604b3520110000000000000000000000000000000000000000050e19202832363b3d494e51545758595958575553504d483c3f3a3530251f170c000000000000000000000000000000000000000000000a1826303b474c5d656f777e84898d91939495959392908b86817a70676054483b2f2212040000000000001f34495f74899eb4c2ad98836d58432e180300000000000000000000000000000d22374d62778ca2b7bfaa95806a55402b15000000071b2d3e4e606c81969fb4bbb5ab9f98908986848385888f969fa9b3bfb9a79c8675604b3f2f19090000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000001325365b71869bb0c6b39e89735e49341e0012273c51677c91a6bcc9b5a49c9a9a9a9a9a9a9a9a9a9b9c9fa9adb4bcbcab9a8476625a48392d1f110300000000000000000000021527374859667c8d9fb4bdb49f8a796357464c5e6b8096a2b4baa99c8676614c42322010000000000000000000000010253a50657a8fa5babaa99fa9a0978172635b53504f5054524e41311e0b0000000000000b20364b6075899eb3aa917c67513c271200000000000000000000000000000000000000000000000000000000000000081d314455697e93a6b6a4917c67513f2f1c080000000000000000000000000000000000000d181f2c3538454b51575b63676a6c6d6e6e6d6c6b6865625a59554f4a4336332a1c0c00000000000000000000000000000000000000000a1a2836434b59626d7a848b93999fa8a6a8aaabaaa8a7ab9f9b968f857c7362594c402f22120200000000001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b160000000d22364a5c687e939fb0bdb3a49c8d837b75716e6e70747a818b99a1b0bdb5a497826d5d4b3727150200000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000071c30435473889db2c7b29d88725d48331d0012273c51677c91a6bcc6b19c8685858585858585858585878a90989fabb7b3a19a8778625544311d0c00000000000000000000000e1d3144556278899eabbcb19f927d685b4a39404b6073849aa6b8b6a498836e604f3e2e1c0c0000000000000000000010253a50657a8fa5bab49f8b9ba39f9784796f686564666a68604e3a2511000000000000081d3144556e8398adac97826d573e2e1b07000000000000000000000000000000000000000000000000000000000000011527374b6075889eb3b09b85715d4c3823100000000000000000000000000000000008131c2a343c494d5660666c72787c7f818283838281807d7a78736f6a6460544c473a2a17040000000000000000000000000000000000000a1a28384554606977828f999faaafb4bac6bab7b5b5b7c9bcb4b1aca39b918478665e4c402f201000000000001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b160000091c2f404f647a8b9fb4bdb3a19a867a6e65605659595460646c7883969eb0beb1a0907b655544311d0800000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000b20354a60748a9fb4c5b09a85705b45301b0012273c51677c91a6bcbba5907b7070707070707070707072757a838c9da5b7b3a59b8574604b3a2917040000000000000000000e1e30404b6074859ba7b8b5a397816d604e3d2d3144556277889eabbcb2a0937e695c4b3a2a180800000000000000000010253a50657a8fa5bab29c87859bb0a29a8c847e7b797b7f7d68523d28130000000000000215273752677d92a9b29d88735c4a36220900000000000000000000000000000000000000000000000000000000000000091e3245566a7f94a8b5a3907b65503e2e1b0700000000000000000000000000000a1825303b474c5a626d757b81878d91949798999998979592908d88847f7a746c615847331f0a000000000000000000000000000000000002152738455660727e8998a0aeb4bbb8b3aca7a4a2a0a0a2a5aab1b5c1b4b0a29a897c665e4c3e2d1b0b000000001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b1600000f24384c5e70849aaabbb5a39a8375645c504b453836434a4f5a62728096a0b1beb19c8674604b36201000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000e23384e63788daabbc2ac97826d57422d180012273c51677c91a6bcbba5907b665a5a5a5a5a5a5a5a5b5660656e7a879da6b7b4a396806b5847331f0a00000000000000000a1a2c3c4d5e6b8196a3b4b9a79b8574604b41311f27374859657b8d9fb4beb49f8b7a64584736251300000000000000000010253a50657a8fa5bab29c877b90a0b2aa9f9a93908f9094816c56412c17000000000000000c21374c61768a9fb4a68f7a644f37261401000000000000000000000000000000000000000000000000000000000000031628384c6176899ea8a89a846f5c4a36220d000000000000000000000000000d1a2836434a59626c78828a90979da5a6a9acadaeaeadacaaa8a5a79e99948f888176614c37210c0000000000000000000000000000000000091d314556607483939ea7b2beb4afa79e97928f8d8b8b8c90959ba3b0b4c0b4a79e8c7c665c4a392816030000001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b160005182a3b51667b90a2b4baa89b857461574a3e3631272530353c4854606d8297a4b5b6a4947e69543f2e1b08000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000417293a54697e94a9c8c2a9937e69543e29140012273c51677c91a6bcbba5907b66504545454545454538454b505c6478889db3c1b49f8a76614c37210c0000000000000002162838495a667c919eb0bcb39e8978635645322313192b3b4c5d6a8095a2b3bbaa9d8776615443301c11000000000000000010253a50657a8fa5bab29c87728298a3b2b4afa8a5a4a596816c56412c17000000000000000a1f3347586e8398aeab96816c5544311d08000000000000000000000000000000000000000000000000000000000000000a1f3346586b80939393938f79644f3a240f0000000000000000000000000e1d2a384554606a77818b989fa9acb2ada7a4a2a89f9e9fa9a1a4a7aaafaeaaa69d8e79644e39240f00000000000000000000000000000000000b20364b60748499a1b3b9b9b3a29a9189817c7a787576777a8086909ba3b4bcb8aa9e8a7a645746321e0c0000001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16000b1f34475970859ab0c0b49f8a78625646392d201d15131c202b36434b6074869cb1c2b29c87725d4b37220d000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000a1f3346586f849aafc4b5a48d78634d38230e0012273c51677c91a6bcbba5907b66503b3030303030302832363e4a5a667c90a3b5baa9937e69533e291400000000000000091e3245566378899eb3bcb09e917c665a49382816050d1d2f3f4b6072849aa6b7b7a5998372604a3f2e1c080000000000000010253a50657a8fa5bab29c8772748498a0b0b4c0bab9ab96816c56412c17000000000000000417293a51667b90a6b39d8874604b35200e000000000000000000000000000000000000000000000000000000000000000417293a4c61777e7d7d7d7e7a644f3a250f00000000000000000000000e1e2b3b475660727f8a969faab4aca79e98928f8d8b89898a8b8c8f92959a9fa9aca38e79644e39240f0000000000000000000000000000000001162c41566b8196a2b2bfb4a79e92847c756c676562606062656a717b85959fabbcb9a89d8875614b3a2a180400001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16000d22374c62778b9fb4bbaa95806b5a4838291b10090200070e1826324556667c90a4b5b6a58f7a644f3a250f000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000004182a3b4c61768b9fb4c6b19c86715a4935200c0012273c51677c91a6bcbba5907b66503b261b1b1b1b1b151d202e3c4c5e70859bb0c7b09b86715b3a2a1804000000000004182a3a4b6074859ba7aaaaa296806b5e4d3c2c1a0a0000111c3043546177889daaaaaaa1947f6a5d4b37230e0000000000000010253a50657a8fa5aaaa9c8772617583909ba2aaadb1ab96816c56412c1700000000000000000c20354b6074889db3a6907b65503c2b1905000000000000000000000000000000000000000000000000000000000000000c1f344759616868686868645c4b37220d000000000000000000000a1a2b3c4859627482949ea8b4aa9f978f88827d79787674737475777a7d80858a90969e8e79644e39240f00000000000000000000000000000000000d22384d6278879da5b4a29a897d6f666056524f4d4b4b4d50555d6573808d9fb4bdb7a6947f6a5947341f0a00001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b160013283e53687d93abbcb49f8b77614c3c2b1a0b000000000000081528384c5e71869cb1c3ac97826c57422d17000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b261100000000000000000000000000010f1f3447596a8095aabbc2aa95806b553c2c19060012273c51677c91a6bcbba5907b66503b2611050505000209101e2f40546a7f94a9bfb49f89745847331f0a00000000000a1f3447596c829595959595958473604b40301e0e000000011426364759657b8c95959595958a7a65503a25100000000000000010253a50657b8f95959595877257616e7b858f95989b9b96816c56412c170000000000000000081d3144556b8096aaad98836d5a4835200b0000000000000000000000000000000000000000000000000000000000000004182a3a474c53535353534f4b3e2e1b0800000000000000000002162838485a62778598a0b4ab9f988b817a746d67646261575e55606164676b6f757b81898e79644e39240f00000000000000000000000000000000000b2035485a6278879da39a8477685f514b45383a383636373b3f4b55606b7e939fb0c4b49e8977614c37220d00001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b1600182e43586d8398adc9af9a85705847331e0e00000000000000000a1a2f40556a8095aabfb19c86715c3a2917040000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000f1f2f404c61778a9eb4c8b5a38e79644f39240f000012273c51677c91a6bcbba5907b66503b26110000000000000012263b50667b90a5bbbaa98c77614c37220c00000000000c22374c61777f7f7f7f7f7f7f77625544312212000000000008182a3a4b5d667c7f7f7f7f7f7f7e68533e2813000000000000000d22384d62787f7f7f7f7f7e69534b5e65707a7f838686837d67523c27120000000000000000011527374d62788b9fb49f8b78624d39291703000000000000000000000000000000000000000000000000000000000000000c1c2a34373e3e3e3e3e3a372e2010000000000000000000000d1e3245566278879ba3b2a69d8c82786c646054524f4d4b4639444b4c4f52555660656c757d78624d38220d080100000000000000000000000000000005192b3c485a62788799857562594e413631272523202122252f37444b606c8196a6b8b9a895806a553b2a1805001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16001b30455a70859aafbfaa957f6a553a2a170000000000000000000012253b50657a90a5bab39e89745846331f0a0000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611000000000000000000000002101c2c3d4c5e6c8196a8b9bfb19b86715c4a36220d000012273c51677c91a6bcbba5907b66503b2611000000000000000f243a4f64798fa4b9c7a48e79644f39240f00000000000a1f344759616a6a6a6a6a6a6a625948372715040000000000000c1c2e3f4d5e666a6a6a6a6a6a68604e3a2611000000000000000b2035485a626a6a6a6a6a69604f404c505d656a6d71706e675f4d392510000000000000000000092035485a6e8398aeaa96806b5746331e0900000000000000000000000000000000000000000000000000000000000000000c181f22282828282825221b10020000000000000000000d1d31424b6074859ba5b3a39b887a6d625a4f4b43363a383632283136373a3d38454b50576168625a483525201c14080200000000000000000000000000000e1e2b3c485a627884766157483b31201d151a1c1e1b1916192631424b6175889db3c6b09b86715947341f0b001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16001d32475d72879cb2bda8927d68533d2813000000000000000000000e23384d63788da2b8b9a88b76614c36210c0000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611000000000000000000000814202d3a495b657b8c9fb4c6b3a1907b65503e2d1b07000012273c51677c91a6bcbba5907b66503b26110000000000000011263b50667b90a5bbc8a48f7a644f3a250f000000000004182a3a474c555555555555554d483b2b19090000000000000000102130404d51555555555555534e42311f0b0000000000000005192b3c484d5555555555534f4232383f4b5055585c5b59524d41301d0a00000000000000000005192b3c4f647a8fa3b39e8976614c372715010000000000000000000000000000000000000000000000000000000000000000040a0c13131313130f0d080000000000000000000005182b3b4e606d8197a3b3a1998577645c4d493c35373d4042413f3c363329252828323639464b534d483c403a3530261d150900000000000000000000000000000e1e2b3c485a626e615847392b21232a2d303233312e2b27201e324657697e93aabbb59f8b77624c37220d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16001e34495e73899eb3bba6917c66513c2711000000000000000000000c21374c61768ca1b6c6a38e79634e39230e0000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611000000000000000108101b22313e4a596379899eaabbbbaa99836f5d4b38201000000012273c51677c91a6bcbba5907b66503b26110101010100050e1d2f3f54697f94a9bebbaa8d77624d38220d0000000000000c1c2a34374040404040404037342b1d0d00000000000000000002122230393c4040404040403e3a3124140200000000000000000e1e2b353840404040403e3b3224232e373a40434646443c3930231301000000000000000000000e22374b5c70859bb0a8947f695544311d0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20344859687e929fb1a599837562594a3e363a474c5255575754514b4639372e1f3137444b515557595755504b43363127191002000000000000000000000000000e1e2b3c484d594c473a292c35383f434547484643403c363129394c61768b9fb4bcab927d67523d2812001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16001d32475d72879cb2bda8927d68533d2813000000000000000000000e23384d63788da2b8bcab8d78624d38220d0000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b2611060600030a0c0e141d202e37424e5c6477879ca7b9c1b49f8b79634e3f2f1c0200000012273c51677c91a6bcbba5907b66503b2616161616161718202c3b4b5d70859bb0c5b49f8a75604b36200b000000000000000c181f222a2a2a2a2a2a2a2220180d000000000000000000000004121d24272a2a2a2a2a2a28261f1406000000000000000000000e1920222a2a2a2a2a29261f14111c23252a2e31312e27251d13050000000000000000000000081b2e3e50657b90a2b29d8774604b35200f00000000000000000000000000000000000001080b10131518191714110d0b050000000000000b0b0b0b0b0a090400000000000005182a3b4c62778a9fb4a99c87766157483b3d4a4e5861676a6c6c69676157504b3f34424e5560666a6c6e6d6a6560544b44372d201002000000000000000000000000000e1e2b353844373333363d494e54585a5c5d5b5856514b453836475870859ab0c9ab95806b56402b16001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16001b30455a70859aafbfaa957f6a553a2a170400000000000000000010253b50657a90a5bab59f8a73604b36200b0000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b261b1b1b1c171e21232631353f4b4f60687a879ca5b6c3b4a396816c5b493521110000000012273c51677c91a6bcbba5907b66503b2b2b2b2b2b2b2c2b343c4959657b90a2b4c6af9a846f5544311d080000000000000000040a0c151515151515150d0b0500000000000000000000000000000a0f1115151515151513110b02000000000000000000000000050b0d151515151514120c0200080e1015181c1b1912100a01000000000000000000000000001023384c5e70859ab0a5927d67523d2d1a070000000000000000000000000000000808141c2025282b2d2e2c29262220190e0903050b0d2020202020201e191004000000000b1f3448596c8196a9b49f8a7a64584639434a5b636f777d8082817f7c766e655d4c484a6068747b7f828482807a746a60554a3e2e201002000000000000000000000000000e192022273139464c555b636a6d6f7173706e6b6660564e4a3d556b8095aac0ad97826d58422d18001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b1600192e43586e8398adc3af9a85705847331f0e00000000000000000a1a2f40556b8095aac0b39e88735544311d080000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b66503b30303030312933363937444b505d656f7e8b9da5b6c3b7a59b8574604b3d2c1a030000000012273c51677c91a6bcbba5907b665041414141414141413b484c5a6377879db2c0b9a8937e6953372715020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091c2f4050657b8f9b9b9b86715b4a36210c0000000000000000000000000006101b222630353a3e404243413e3c38352b211e16192022353535353535332c2214040000031628384c62778a9fb4a5937e685c4a3a4354606b79848b9295979694918a837a6d6259606c7e879194979997958f887f74645c4b3f2e201000000000000000000000000000010f1d2b37444b57616a72787f828587888683807c756c635b4b53697e93a8beae99846f59442f1a001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b160014293e53697e93a8c2b49f8b77614c3c2b1a0b000000000000081528384c5e71869cb1c9ae99846f59372715020000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b665045454545454639464b4e535560656f7a84939fa9b7c2b6a69d8778625645311f0f000000000012273c51677c91a6bcbba5907b665656565656565656575859626b78869ca5b7c2b39e8977614c37220c000000000000000000000000000000000000000000070b13131313130f0d0700000000000000000000000000000000000000060c0e20202020202020202020202020202020202020202020202020202020191710070000000000000000000000000000001123374b5d6d828686868579634e39230e0000000000000000000000000e19212e3736434b4f535557595654514d483c3632282b354a4a4a4a4a4a4a483f3222100000091e3245566b8196a9b29d8774604b3d43546072808c999faaaaacaca9a99f998f8277627281939da5aaacaeacaaa69d94867a645d4b3e2d1a0a000000000000000000000002101f2d3b48556068767f878d94989a9c9d9b9895918881796b6056677c91a6bcb09b86705b46311b001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16000d23384d62788da4b5bbaa95806b5a4838291b10080200070e1826324556667b90a4b5bcab937d68533e2813000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b665b5b5b5b5b5b5b5d576163686e747b848f9aa2b4babeb2a49c887963594838271501000000000012273c51677c91a6bcbba5907b6b6b6b6b6b6b6b6b6b6c6e7177808a9ca4b5c3b5a4947f6a5847331f0a0000000000000000000000000000000000000008131c20282828282824221b1002000000000000000000000000000000010f1a2123353535353535353535353535353535353535353535353535353535352e2b24180a0000000000000000000000000000081c2e3f52646d71717171635b4a36210c0000000000000000000008131c2c353f4b4f546065686a6d6e6c6966625a524b45393c485e60606060605f5c503f2c1900000b21364b60758a9fb4a6937e6855443e4a607282959fabb4b4aca6a4a5a8aeaea09887777e929fb2b6b2ab9faba4acb3a49c8a7b645c4a382715020000000000000000000010202d3d4a5962737e88959ca4a9adafb1b2b0adaba79e968c807464657b90a5bab19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16000b2035485a71869cb1c3b49e8a78625646392d201d15131c202b36434b6074869cb1c2b59f8c77624c37220d000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbba5907b7070707070707071727476787e8389909aa2afb3c0bab4a0988679635b493b2b1a0a00000000000012273c51677c91a6bcc3ae98828080808080808080808183868c959ea8b5c2b7a69c8674604b3a2a180400000000000000000000000000000000000008182530353d3d3d3d3d39362d20100000000000000000000000000000000f1f2c35384a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a43403628180700000000000000000000000000001121354552585b5b5b5b4e4a3d2d1a070000000000000000000a1825303c494d5d656c747a7d808283817e7b786f6760574e485a707575757575756e5c48331e000011263b50667b90a8b29d8875604b374a5c6a7f94a0b4b4a89e97918f9093999faaa59c87889eb3b6a59c8f8a8b8e979faaa89e8a7a645645311d0b0000000000000000000c1c2d3e4a5b637785939ea6b1b6c2bcb4b3b1b0b2b4b8b3aa9f95867a657a90a5bab19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b160006192b3c53687e93a5b6b9a89b857461574a3e3631272530353c4854606d8297a4b5bbaa99836e594834200b000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcc6b19c86858585858585858688898b8e93999ea7afb4c0bfb3a99f938275635b493d2c1d0d0000000000000012273c51677c91a6bcc6b2a09896969696969696969696989ca4aab4b9c0b3a69d8878625645321c0c00000000000000000000000000000000000000132536434a53535353534f4a3e2d1b0700000000000000000000000000061a2c3d495e606060606060606060606060606060606060606060606060606060605953463624100000000000000000000000000000031727353f424646464639362d1f0f0000000000000000000b1a2736434a5b636e7a81888f939597989693918b847d7568604d62788a8a8a8a8a8c755f4a35200005192b3b566b8196abac96816c56453c4f647a8c9fb4b4a39b8a827c7a7a7d838b99a1a49c9ea6b8b29c877b757679818c9ea8a89c8674604b3a2917040000000000000008182a3a4a5c6479879ba3b3b8bbb4adab9f9d9b9b9d9fa9aab2b4a49c89797b90a5bab19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b1600000e20364b6074879cb2beb5a3998375645c504b443736434a4f5a62728096a0b1c2b49f8c79634e3b2b1805000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcc9b5a49c9a9a9a9a9a9a9a9b9d9fa9a3a8aeb3b9c5bcb5aea1998b7e6e6157493d2c1f0e000000000000000012273c51677c91a6bccfbfb2aeabababababababababacadb1b5c2c2b5b1a29a877a645a4838281600000000000000000000000000000000000000071c304354606868686868645c4a36220d000000000000000000000000000c2135495b70757575757575757575757575757575757575757575757575757575756e6453402b170000000000000000000000000000000917232b2d3131313123211a0f0100000000000000000b1b28384554606a78838f979da6a8aaacaeaba9ab9f9a92897d6f6262778d9f9f9f9f8a755f4a3520000b2034485971869cb1aa917b665138495b6e8399abb6a49b85786c676465686e7883949db2b3b8bcab8f7a656060646c7c8a9eb4a495806a5846331f0a000000000000011426364758647a8a9da6b5bfb3aa9f98918b88868587898e959da5b3a79d877d92a7bdb19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b160000081d314455677d92a0b2c1b3a199867a6e65605559595460646c7883969eb0beb6a497816c5b49351d0d00000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcd2c2b5b1b0b0b0b0b0b0b0b0b2b4bac7bdc3c3b7b2ab9f998e837969604b46392c1f0f00000000000000000012273c51677c91a6bcbdbdbdbdbdbdbdbdbdbdbdbdbdbdbbc3b6b2aca49c918477645c4a3c2b1a0a000000000000000000000000000000000000000b20354a60727d7d7d7d7d7a644f39240f000000000000000000000000000e23384e63788a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a826e59432e1900000000000000000000000000000000061016181c1c1c1c0e0c070000000000000000000316283946566072808b99a1acb3b8c4c8bbb4b3b9bcb5afa79e92847863778da2b5b49f8a755f4a3520000d22374d62778ca4b49f8a76614c384d63788c9fb5b19c8676625a514f50535a636e7f949eb0c1b59f8b76604b4b4f5e677d92a1b49f8a76614c36210e000000000000081c3043546176879da8b7bcb5a1998c837c767371707274797f87939ea7a69d899eb4c7b19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b160000021527374d5f6d8298a3b5bfb3a49c8d837b75706e6e70747a818b99a1b0bcb8a79c8676614c3d2c1a0000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6bcbdbdbdbdbdbdbdbdbdbdbdbdbcbbc5b9b3aea8a59d978c837a6e645c4e4232291b0f0100000000000000000012273c51677c91a6a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7a6a4a59c9790867c7361594a3e2d1e0e00000000000000000000000000000000000000000b20354b60748a92929292806b55402b16000000000000000000000000000e23384e63788d9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f98836e59432e190000000000000000000000000000000000000000000000000000000000000000000000010f1e324657617482959faab3bfb6b2aba4aa9f9ea7a2a7aeb4b3a1998979788da2b7b49f8a755f4a35200010263b50657b90a5b09b857057463e53697e93abb5a3907b6558483c3a3b3c494d616b8095a3b5b39e8974574636404d5f6f8499afa8937e69533c2c190600000000021527374b6073849aa5b7bcab9f9483796d6761585c5b5460646a747e899ca5a89ea8b9c7b19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16000000091930414b6074859ba4b2bfb5ab9f98908986838385888f969fa9b3bfb5a79e8978625746331f0f0000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91a6a8a8a8a8a8a8a8a8a8a8a8a8a8a7a6a4a79e99938d8781796e645c4e4a3d311e160b000000000000000000000012273c51677c9193939393939393939393939393939392908f8c87817b73676054473a2d20100000000000000000000000000000000000000000000b20354b60758aa0a8a895806b55402b16000000000000000000000000000e23384e63788da3b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5ae98836e59432e190000000000000000090f11121212120c090300000000000000000000000000000000000f1f31424b61758498a0b4bbb8b3a59d968f8c8a898b8d92989fa9b5a79d877a8fa4bab49f8a755f4a35200012283d52677d92a7ad98836e583944596e8399aeb19b86715d4b3a2b25252c35434b6073859bb0b9a78b76614b36304150657a8fa5b19c86715a4935200c00000000081d314455687d92a2b3bdb59f8d7f6e635b514c463a36434a4f56606979879ca5b4b9c6c7b19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b1600000000131e32455662778698a0b3b8bcb5ada89e9b99989a9ea6abb4babbb4a39b897b645a49392917010000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c26110012273c51677c91939393939393939393939393939291908f8c89847e78726c645c4f4a3e362d1f14030000000000000000000000000d23384d62787e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7b7977726c6660544b43362a1c10020000000000000000000000000000000000000000000b20354b60758aa0b5aa95806b55402b16000000000000000000000000000e23384e63788da3bdced8c7bab4acacacacacacacacacacacacacacacacacacac98836e59432e1900000000000004121d242627272727211e160b000000000000000000000000000000061a2c3d4e606d8298a2b2beb4a69d9287807a77757475787d838a989faba59d889db3c8b49f8a755f4a35200014293f54697e94a9ac96816c5741475c72879cb1ab95806b563f2f1b0f101920314455657a8fa3b5a38e79644e3924374b5d72879db2a48d78634d38230e000000000b20364b6074879db2c0b19f937e6a614e493d36332925303538454b5b6376879ca9bacdc7b19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b1600000000021628384859627583939ea7b4bac6b9b3b0aeaeb0b3b8c4bcb4aa9f968578645d4b3c2c1b0b000000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c2611000d23384d62787e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7c7b7976746f69635b574e4a3e362d211a0f01000000000000000000000000000c2035495a6268686868686868686868686868686868686664625957514a43363026180c00000000000000000000000000000000000000000000000b20354b60758aa0b5aa95806b55402b16000000000000000000000000000e23384d63788d9fb1c0cebaa99f9797979797979797979797979797979797979797836e59432e1900000000000012222f383c3d3d3d3d3632281b0b00000000000000000000000000000c2136495b687e93a0b2bfb3a29a887d736b656160566062676e78828d9fa8a69da6b7cab49f8a755f4a352000162b40566b8095abaa957f6a5540495e73899eb3a7917c67523c27120000061426374b5d71869bb0a7927d68523d282e3f576c8297aca7927d67523d271200000005182b3b53687e93a5b7b8a697816d604f43352c211f17131c2027313d4958647a8a9fb4c5c7b19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b1600000000000a1a2b3b485761727e89959fa8acb2b5bcc9b9c5b8b3aeab9f988b8175625a4b3f2e1e0e00000000000000000000000000000000000000000000000000000000000f243a4f64798fa4b9bba6917b66513c2611000c2035495a62686868686868686868686868686868676664615859534e493d39362d221b100700000000000000000000000000000006192c3c494d5353535353535353535353535353535352514f4d483b3b3530251c14080000000000000000000000000000000000000000000000000b20354b60758aa0b5aa95806b55402b16000000000000000000000000000c2035495a6d8297a2b4c4b49f8b81828282828282828282828282828282828282827e68533e29130000000000091d2f404c51525252524b4639281603000000000000000000000000071a2d3d4e63798b9fb4beb3a19984766860544f4c4a454b4d5259626d7c8a9ea8b3b7c4cab49f8a755f4a352000182d42586d8297ada8937e68533e4a5f758a9fb4a5907b66503b261100000009192e3f556a7f95aaac97816c573828283d52677d92a7ac96816c57412c170200000b2034485971869bb1c3b39d8875604b4232211a0f0a0400070b151d2c3a4a5c6a7f95a7b9c7b19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b160000000000000d1d2b394654606976808a91979d9faba4a4a2a79e98928b82786c6057483c2e20100000000000000000000000000000000000000000000000000000000000000f243a4f64798fa4a8a8a6917b66513c26110006192c3c494d53535353535353535353535353535352514f4c473a3e38352c24211a0f070000000000000000000000000000000000000e1e2c35383e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3b3a37342b26201c130801000000000000000000000000000000000000000000000000000b20354b60758aa0b5aa95806b55402b160000000000000000000000000006192c3c4b6074849ba6b7baa995806d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d68604e3a261100000000000f24384c5e6667676767615746321e0b0000000000000000000000000c21364a5b6e8398a9bab6a499837461584b433637353236383b484d5e667a8a9eb3bdcecab49f8a755f4a352000182d43586d8298ada8937e69533e495e74899eb3a5907b66503b26110000000010263b50657b90a5b09b8671564532243a4f64798fa4b09b85705b46311b0000000d22374d62778ca3b5baa9947f69574532241506000000000000020f1c2d3d4c6176899eb3c7b19c87725c47321d001f344a5f74899fb4c2ad98826d58432d180300000000000000000000000000000d22374c62778ca1b7c0aa95806b55402b16000000000000000d1b2836434a58616b767b82888a8c8e8f8d8b88837d776d625a4b45392b1e10020000000000000000000000000000000000000000000000000000000000000f243a4f647a8f93939393917c66513c261100000e1e2c35383e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3c3b3a37332a2923211a0f0d070000000000000000000000000000000000000000000e19202328282828282828282828282828282828282624222018110b0700000000000000000000000000000000000000030a0c0e0e0e0e0e0e0e20354b60758aa0b5aa95806b55402b160e0e0e0e0e0e0d0b0600000000000e1d3145566277879da9baaf9e917d675b57575757575757575757575757575757534e42311f0b000000000011263c51667c7d7c7c7d75614b3929170300000000000000000000011527374e63798c9fb5bbaa9c86756156473a302622201d20232b34404c5c677d919fb1c8cab49f8a755f4a352000172c41576c8196acab95806b5640475c72879cb1a7927d68523d2813000000000e23394e63788ea3b49f8a75604b3621374c61768caab29d87725d36261401000013283d53687d92a8c2b49f8a76614b392816060000000000000000000f1f3346586c8196abc9b19c87725c47321d001f344a5f74899fb4bdad98826d58432d180300000000000000000000000000000d22374c62778ca1b7bdaa95806b55402b1600000000000000000b1825303a464c5761666d737577797a7876736e6761584d493c32281b0e00000000000000000000000000000000000000000000000000000000000000000c22374c61777e7d7d7d7d7e78624d38230d0000000e192023282828282828282828282828282828272624211f17140e0c0600000000000000000000000000000000000000000000000000060c0d1313131313131313131313131313131313110f0d0b050000000000000000000000000000000000000000000b171e212323232323232323354b60758aa0b5aa95806b55402b232323232323232320190e00000000021527384859647a8b9fb4bcb49e8a7963584737424242424242424242424242423e3a312414020000000000162c41566b81929292927f6a5746331e0c00000000000000000000081d3144556d8298abbcb49f8c7963574638291c140c0b090b0d19202f3e4d5f6d8297aabbcab49f8a755f4a352000162b40566b8095abad97826d5842455a70859aafab95806b563d2d1a070000000d22374d62778ca2bbaa8f7a644f3a24334758758a9fb39e89745443301c080003192e43586e8398adc3af9a856f5746331b0a000000000000000000000417293a50667b90abbcb19c87725c47321d001f344a5f748a9fa8a8a898826d58432d180300000000000000000000000000000d22374c62778ca1a8a8a895806b55402b1600000000000000000008131c293339464b5157556062646462605659524c473a352b1e160a0000000000000000000000000000000000000000000000000000000000000000000b1f34475961686868686868625a4835200b00000000060c0d13131313131313131313131313131312110f0c0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1b2933363939393939393939394b60758aa0b5aa95806b5540393939393939393938352b1e0e000000000a1a2a3b4a5c677d929eb0b9a89d8776615544312d2d2d2d2d2d2d2d2d2d2d2d29261f14060000000000000d22384d62788b9fa79e8976614c3a2a17040000000000000000000b20354b6075899eb3c2ad97826d5b4a39281a0c01000000000005122030414d62788b9fb4c9b49f8a755f4a35200013293e53687e93a8af99846f5a3a41566b8096abb09b86715b4a3621120200000e23384e63788da3c8a8937e69533e29293a5e74899eb39f8a75604b35200b00061b30465b70859bb0bfaa957f6a553929170000000000000000000000000b21364b60768a9fb4b19c87725c47321d001f344a5f748b9393939393826d58432d180300000000000000000000000000000d22374c62778c9393939393806b55402b1600000000000000000000000c171f2832363c37444b4d4f4f4d4b45383d37332a20190e030000000000000000000000000000000000000000000000000000000000000000000004182a3b474c5353535353534d483c2b1906000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003172939464b4e4e4e4e4e4e4e4e4e4e60758aa0b5aa95806b554e4e4e4e4e4e4e4e4e4d483c2b1906000000000d1d2d3e4d5f6b8096a1b3b6a59a8473604b4131201818181818181818181813110b02000000000000000b2035485a6e8398ada7957f6a5847331f0900000000000000000010253a50657a8fa8b9b5a48d79634e3d2d1b0b000000000000000002122034485a6d8297adc8b49f8a755f4a35200010253b50657b90a5b19b867158463b50657b90a8b5a38e79634e402f2012080515273750657b90a5baad98826d583a2928385d73889db2ab8c76614c37210c00081d32475d72879cb2bda7927d68523d2813000000000000000000000000091e32455773889eb3b19c87725c47321d0013283d53687d7d7d7d7d7d7b65503b25100000000000000000000000000000000b21364b60757e7d7d7d7d7e7a644f3a240f000000000000000000000000040b161e212627313637393a3836322828221f180c06000000000000000000000000000000000000000000000000000000000000000000000000000c1d2a34373e3e3e3e3e3e38352b1e0e0000000000040a0c15151515150b0801000000000003090b15151515150c0a040000000000000000000000000000000000070d0f101010100b0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1e334657616363636363636363636363758aa0b5aa95806b63636363636363636363625a4835200b0000000000102030414b60738399a4b6b4a296816c5f4e3e2e1d0d0002020202020202000000000000000000000005192b3c4f647a8ea2b39e8976614c372715020000000000000001162b40566b8095abc6b19c86715b49351f0f0000000000000000000005192b3c51667b90aabbb49f8a755f4a3520000d22374d62778ca5b49f8a76614c364b6075899eb3ad98836e5e4c3e30201d18203144556b8095aac0b19c877258463332455673899eb3a78b75604b36200b000a1f34495f74899eb4bba5907b66503b2611000000000000000000000000031628395c71869cb1b19c87725c47321d0011263a4e60686868686868655d4b37230e000000000000000000000000000000091e32455660686868686868645c4a36220d000000000000000000000000000003090c11151d2022242523211e16120c0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000c181f222828282828282320190e00000000000c181f222a2a2a2a2a201c14080000000a161e212a2a2a2a2a211f170c000000000000000000000000000002101b222425252525211e160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364b617679787878787878787878787a8ea3b9ac9781797878787878787878787878624d38230d000000000002131d3144556176869ca8b9b09f927d685c4b3b2b1a0a000000000000000000000000000000000000000e22364a5c70859aafa8947f6a5544311d0800000000000000051a2f455a6f849aafc0ab96816b563d2c1a0100000000000000000000000d21364b61768a9fb4b49f8a755f4a3520000b2034485972879db2aa917c67523745566b8096a8b2a0917c665c4d4035312b34404b6074879db2c7b59f8b76614c36364b60758ba7b39e89735645321d09000a20354a5f758a9fb4baa5907a65503b2510000000000000000000000000001325365b71869bb0b19c87725c47321d000b1e31424e535353535353504b3f2f1c0800000000000000000000000000000003162838454b5353535353534f4a3e2d1b0700000000000000000000000000000000000002080b0d0f0f0d0b0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b0c1313131313130d0b0600000000000c1c2a3337404040403f3530261808000a1a28323640404040403633291c0c0000000000000000000000000311202d36393a3a3a3a3632281b0a000000000000000000000000000000000000000000000000000000000000000000000000000000000011263b51667b8e8e8e8e8e8e8e8e8e8e8e8e98a9bcb19f978e8e8e8e8e8e8e8e8e8e8e846f5a452f1a00000000000001142637465863798a9eabbcb49f8b7a64594838281502000000000000000000000000000000000000071b2d3e51667c91a4b39d8874604b36201000000000000000071c31465c71869bb1bca7927c67523d27120000000000000000000000000a1e32465771869cb1b49f8a755f4a35200005182b3b576d8297acad98836e5544384c61778a9eb4b49e8a7a675f504b443b484d5e697e93a5b7c6bcab907b65503b384d62788da2b19c86715c3828150200081e33485d73889db2bca7917c67523c2712000000000000000000000000071c30435472889db2b19c87725c47321d00021324313a3d3e3e3e3e3e3b372f211100000000000000000000000000000000000a1a2832363e3e3e3e3e3e3a362d201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004182a3a474c55555555544b4336261403162838454b55555555554c463a291704000000000000000000000011212f3e4a4e4f4f4f4f4b45392816030000000000000000000000000000000000000000000000000000000000000000000000000000000011263b51667b90a3a3a3a3a3a3a3a3a3a3a3a9b6c6bdb1aca3a3a3a3a3a3a3a3a3a39a846f5a452f1a000000000000000919293a495b667c8d9fb5baa99d8877625645321d14030000000000000000000000000000000000001020354a6073869cb1a6927d67523e2d1b07000000000000091e33485e73889db3baa5907a65503b2510000000000000000000000000031629395a6f859aafb49f8a755f4a3520000012273c51677c91a7b39e8975604b3747586a7f94a2b3a89e8a7c6f6560555a59626b7c8c9fb4aeb2bfa9947f6a543f3a4f647a8fa4af9a846f5a452f1a0000061c31465b71869bb0bea9937e69543626140100000000000000000000000b20354a60748a9fb4b19c87725c47321d000006131e2628282828282825231c11030000000000000000000000000000000000000a161e2128282828282824221b10020000000000000000050b0d1216120d0b060000000000000000050b0d1216130e0c060000000000000000040a0c1115130e0c070000000000000000000000000002090b101514100b0801000000000000000000000000000000000a1f334758616a6a6a6a6a605443301c0c1e324556606a6a6a6a6a615846331f0a000000000000000000000c1c2f3f4b5c6465656565605745321e090000000000000000000000000000000000000000000000000000000000000000000000000000000011263b51667b90a6b8b8b8b8b8b8b8b8b8b9bcc6d4cec5c1b8b8b8b8b8b8b8b8b8af9a846f5a452f1a00000000000000000c1c2c3d4c5e6a7f94a0b2b7a69b8574604b42322111000000000000000000000000000000000000071c304354687e93a8b19b86715c4a36220a0000000000000a20354a5f758a9fb4b8a38e79634e39240e00000000000000000000000000192e43586e8398adb49f8a755f4a352000000b20364b6075899eb3a7917c6655443a4b6072849aa5b5a89e91847b75706f7277808c9faaa199a1b2ae99836e593b3b546a7f94a9ad97826d58422d180300041a2f44596f8499aec3ad98836e5443301c0800000000000000000000011426364f64798ea9bab19c87725c47321d000000020b11131313131313100e0800000000000000000000000000000000000000000003090b1313131313130f0d070000000000000000010e192022272b282320190e0100000000000d192022272b282320190e0200000000000c181f22272b2823211a0f03000000000000000000000a161e21262a2925201d14090000000000000000000000000000000c22374c61777f7f7f7f7f72604b3a2a192c3c4b60747f7f7f7f7f76614c36210c0000000000000000000417293a4b5d65797a7a7a7a75604b36210b0000000000000000000000000000000000000000000000000000000000000000000000000000000011263b51667b90a5a5a5a5a5a5a5a5a5a5a6abb8c8beb2ada5a5a5a5a5a5a5a5a5a59a846f5a452f1a0000000000000000000f1f2f4050616e8298a3b5b4a397816d604f3f2e1e0e0000000000000000000000000000000000001325364b6075899eb3a38f7a644f3827150200000000000a1f34495f74899eb4b9a48f79644f3a240f00000000000000000000000004192f44596e8499aeb49f8a755f4a35200000091d3245566c8197abb19c8674604b3943546176879ba3b2b3a19990898685878b959faaa1998399aeb39d88735948485970859bb0aa927d67523d2712000000152a3f556a7f94aac4b39e8974604b35201301000000000000000000081c3043546a7f94aac7b19c87725c47321d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141d2b35383d403d38352b1d1509000008131c2b34373c403d38352c1d150a000005131c2a34373c403d39362d1e160b0000000000000002101a2832363b3f3f3a353126190e00000000000000000000000000000a1f3347586f84959595937e685847332035495a6a8095959595836e5846331f0a0000000000000000000e1f334758657b8d8f8f8f8775604b35200b0000000000000000000000000000000000000000000000000000000000000000000000000000000011263b51667c9090909090909090909090909aabbeb2a0989090909090909090909090846f5a452f1a00000000000000000001122233434b6075859ba7b8b19f937e695d4b3c2b1b0a0000000000000000000000000000000000081e3245566d8297adac96816c5645311d090000000000081d32475d72879cb2bba6917b66513c2611000000000000000000000000061a2c3d5b70859bb0b49f8a755f4a35200000021528384e63798c9fb4a4937e68574636475862778598a0b0b3afa79e9b9a9c9faab4a399837b8fabb7a68c77624d4c62778c9fb49f8b76614c36210c0000000f24394e64798ea6b7b8a7907b665141311f100000000000000000091729394b6073869cb1c6b19c87725c47321d0000000001080b1819191916140e0400060b0d18191915130d0400000000000000000000000000000000000000000000000000000000091926313c484d5255524d493c31271909081825303b484d5255524d493c31271a0a051323313a474c5155534e4a3d32291b0b00000000000010202d38454b505454504b44372c1f0e0000000000000000000000000004182a3a4d63788b9faa9e8977614c3f2f404d62788a9faa9f8a78624d3a29170400000000000000000e1e30414c6176879daba5927d685544311d08000000000000000000000000000000000000000000000000000000000000000000000000000000000c22374c61777b7b7b7b7b7b7b7b7b7b7b7c90a6bbad98827b7b7b7b7b7b7b7b7b7b7b79644f39240f0000000000000000000004151e3245576278899eaabbb49f8c7b655a4839281603000000000000000000000000000000000316283850657b90a6b39e8975604b36200b0000000000061b30455b70859ab0bea9937e69543827150200000000000000000000000c2136495b73889db3b49f8a755f4a35200000000a2135495b6d8298a9b39e8875614b433a48596275828f9ba3aab1b3b0afb1b1ab9f988576768b9faaa6917c6651596a7f94abaf9a846f5846331f0a0000000b20354a6074889db3c5b09b85715f4e3d2d1c130803000000070e1927334657677c91a4b6c7b19c87725c47321d00000008141c202d2e2e2e2b2921160e1920232d2e2e2b28211507000000000000000000000000000000000000000000000000000001142637444b5a62676b67625a4b44372715132536434a5962676b68635a4b45382715132331414d5961666a68635b4b4639291603000000000e1e2d3e4a5660656a69656055493d2c1c0c000000000000000000000000000c2035495a6a8095a5a797826d5d4b384c5e6f8399a9a4947f6a5a48351c0c000000000000000009192b3c4d5f6e8298a6b29d8774604b37261401000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f344759616666666666666666666666748aa0b5aa95806b66666666666666666666645c4a36220d000000000000000000000003162839485a657b8c9fb4bbaa9e8978625745321e1504000000000000000000000000000000000b20354b6074889db3a7917c6651382715020000000003182e43586d8398adc2ae99836e5645311d0900000000000000000000011426364e63798ea6b7b49f8a755f4a3520000000061a2c3d4e63798b9fb4a697816d614f413b4857616d7a858e959b9ea7a89e9b978c827561728694949494806b566277899eb3a7937e68533a291704000000071c3043546b8196a8b9b5a3927d685b4a3e30251e161514161a212c37444c6176879cb2c2c7b19c87725c47321d0000081826303542434343413d34261e2b3538434343403c3325150000000000000000000000000000000000000000000000000000081d314455606a787d807d786a605544311d1c3043546069787c807d786b605645311d1c31414e5f67777c807d796d615746321e1301000006192c3c4a5c64757b7f7e7a73635b493a2a180400000000000000000000000006192c3c4b6075879db29f8d7a64554556667c91a1b29c8774604b3c2b19000000000000000001142637485a677d92a0b2a5927d685544311909000000000000000000000000000000000000000000000000000000000000000000000000000000000004182a3a474c5050505050505050505060758aa0b5aa95806b555050505050505050504f4a3e2d1b070000000000000000000000000a1b2b3c4b5d687e939fb1b8a79b8575604b4332221201000000000000000000000000000000081d3144556c8197acae98836e5645311d09000000000013283d53687d92a8c2b49e8975604b37261401000000000000000000081c304354697e93a9c4b49f8a755f4a3520000000000f2135495b6a8095a4b19f947f695f4d3f39464b5d6571798086898b8c898681786d6157677d7f7f7f7f7d675d6d8297a8b39e8976614c37210c00000000001325364c61778a9eb4c1b49f8a79645c4a433632282a292b2d363c4955606e8399a5b6cac7b19c87725c47321d0001142636434b5859595956514434303c494d585959555043331e0e000000000000000000000000000000000000000000000000071a2d3e4b60737f8b9295928b8073604b3e2e2c3d4a60727f8a9195928b8074604b3f2e2a3a4e5f687d899195928e8175614b41301e0a00000c2135495b647a869094948f8579635847331f08000000000000000000000000000e1e324556667c91a1ab9b8673604b6075879db2a0907b665645311e0e00000000000000000a1d3144556278899eb3b29d8774604b372715000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1c2a34373b3b3b3b3b3b3b3b3b4b60758aa0b5aa95806b55403b3b3b3b3b3b3b3b39362d201000000000000000000000000000000e1e2e3f4e606c8197a2b4b5a398826e614f402f1f0f0000000000000000000000000000000114263751667b90a9b49e8975604b36200b00000000000d22374d62778ca4b5b9a8927d685544311d1202000000000000000a182a3a4b6073869cb1c7b49f8a755f4a352000000000061a2c3d4b6074869ca8b59f8d7d675d4a43363f4b4f5c646b7173767774716c635a4b4d5f676a6a6a6a675f657b8d9fb4a4937e695847331f0a0000000000081f3447596b8095a5b7baa99d887a6860544b45393f3e403d4a4e5a62748197a1b2c3cec7b19c87725c47321d00081c304354606d6e6e6e6b62513e414d5a626d6e6e6a61503c2c190600000000000000000000000000000000000000000000000d21364a5c6b80949faaaaaa9f95816c5c4b3735495b6a7f949fa9aaaa9f95816d5d4b37344759687d929ea7aaa89f97836f5f4d392510000417293a4d63798b9ca4a9a9a39b8876614c36251300000000000000000000000000031628384c5e6f8399a9a3937e695a6a7f95a5a898836e5e4c38271500000000000000000a1b2d3e4b6073849aa8b7a5927d68554431190900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c181f222626262626262626354b60758aa0b5aa95806b55402b2626262626262624221b1002000000000000000000000000000000112131424b6074849aa5b7b2a0947f6a5e4c3d2c1b0b0000000000000000000000000000000b21364b60758a9fb4a8907b65503b261000000000000b2034485971869cb1c3b29c8773604b402f1e160a04000000070f1a28364758677c91a4b6cab49f8a755f4a352000000000000f1d32455663798a9eabab9f8b7c6a6054463a373e4a4e555c566061595c574d493c414d52555555555b647a8a9eabb19c8674604b3a291704000000000004182a3b4c6176879da9bab7a69d8a7d7266605757555456585b636c7884979fb4acb1bdc7b19c87725c47321d000b20354b607381838383806b5c4a4b5f6778828383806a5a4935200d00000000000000000000000000000000000000000000000f24394e64798b9fb4bbc8bbb49f8c7a644f3a384e63798b9fb4bac7bbb49f8f7b65503a374c6177899eb3b9c5bdb1a1927d67523d2712000a1f33475870859aa9b6c2c1b4a698826d5443301c07000000000000000000000000000a1a30404d63788b9fb39e897762788a9fb49f8a78624d402f1a0a00000000000000031628394a5c6a7f94a2b4b29d8774604b37271500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c1111111111111120354b60758aa0b5aa95806b55402b161111111111110f0d07000000000000000000000000000000000003141d3145566277879da9bab49f8d7c665b493a2918080000000000000000000000000000091e3245566f849aafac96816c573b2b18050000000005182b3b53687e93a5b7b6a595806a5e4c4032281f171514161a212c3845546176879db2c2cab49f8a755f4a35200000000000021528384a5b677d8d9fb5a99f8d7f7261584b443736394038454b4c473b4238352c30393c39464b5f6779889ea8af9e907b665544311c0c000000000000000c1f334758647a8b9fb4bbb7a89e92867c766f6c6a696b6d7279818b9aa2ab9f979fb1c7b19c87725c47321d00081c3043546b819698988e7a6457606d7d899898988c78634d3b2a180500000000000000000000000000000000000000000000152a3f556a7f94aabbced8cebcab95806b56403e54697e93a9bacdd7cebdab96816b56413c51677c91a7b9ccd6cebfae98836e59432e19000c21374c61768ca2b4c7d3d1c5b39e8974604a35200b0000000000000000000000000000122035495a6a8095a5a898826e8399a9a4947f6a5a4834221100000000000000000c1e324557647a8b9fb4b7a5937e685544311909000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0b5aa95806b55402b160000000000000000000000000000000000050b0d0d0d0d0d0d0d0d0d1527384759647a8a9fb4bcab9e897963584636261401000000000000000000000000000316283854697e94a9b29d8772594834200b00000000000d20364b6074879db2c0b49f8d7c665e4b453833292a292b2d363d495660728399a6b7cbcab49f8a755f4a35200000000000000a1a2d3d4d5f697e939db4ab9f9483766860554b44373733323637342a2c2c2a34373b474c57616d7d899ea6b19f95806b5e4c37271500000000000000000417293a4a5c687e929faab9b9b4a39b918a84817f7e8082878e969fa9b49f8d8197acc1b19c87725c47321d00011426364d62788b9fad98826d647582919ea7aeab97816c5947341f0b00000000000000000000000000000000000000000000192e43596e8398aec8d9eadac9af99846f5a4442586d8297adc7d8e9dac5af9a85705a4540556b8095aac5d6e8dcc7b29c87725d47321d0010253a50657a8fa5c0d1e5e1ccb9a88d78634d38230e000000000000000000000000000006192c3c4b6075879db2a0968096a1b19c8674604b3c2b1903000000000000000c1d2f404b6075869caabbb29d8774604b37271500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0b5aa95806b55402b16000000000000000000000000000000000d181f22222222222222222222222a3b4a5c677d929eb0b9a79c8676615443301c1201000000000000000000000000000f243a4f64798fa9b6a58c77624d37220d0000000000091d314556687e93a2b4bcab9f8a7c6a60564c473a3f3e403d4a4e5b63748298a1b3c4cdcab49f8a755f4a3520000000000000000f1f30414f60697f929fa9b4a199877e74686055524c473a42403e3e40413b484c5259616a7582919ea7b1a197816d6250402f19090000000000000000000c1c2d3e4e60687e8c9ea8b3bfb5b1a99f9996949395989da5abb4aa9f937e7b90a5bab19c87725c47321d0000082034485a6d8298ad9f8c787986979fa49ca4b49f8a77624c39291603000000000000000000000000000000000000000000172c42576c8197acc2d2dfd3c3ad97826d584241566b8096abc1d1dfd4c3ad98836e58433e53697e93a8bfd0dfd6c5b09a85705b45301b000e23394e63788ea7b9ccdedecab59f8b76614c36210c0000000000000000000000000000000e1e324556667c91a1b09e969eb0a0907b655645311d0d0000000000000004182a3b4c5e6c8197a4b6b7a6937e68564531190900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0b5aa95806b55402b160000000000000000000000000000000d1d2a34373737373737373737373737373e4d5f6b8096a1b3b6a4998372604b41301f0f000000000000000000000000000b20364b60758a9fb4a6917c67513c27120000000000021527384b6073859ba7b8baa89f8c7f7568615857555456585c646c798598a0b0abb0bdcab49f8a755f4a35200000000000000001122332424f61697d8b9da5b2a69d93877d746d67615859575553535557585962676d778089979fb3b39f978373604b443322110000000000000000000000102031424e60687c8a99a1b0b4c1bab4afacaaa9abadb2b6b2a49c8b7f697b90a5bab19c87725c47321d000005192b3c4e63798ea1aa9b858b9ca49f96879aa2a995806b5746321e0900000000000000000000000000000000000000000012283d52677d92a4b5c4cac4b6a4937e68533e3c51667c91a3b5c3cac5b7a5947e69543f3a4f647a8fa1b3c2cac6b8a796806b56412c16000b20354b6074899eb3bec9c9bcb19c86715746331e0a000000000000000000000000000000031628384c5e6f8399a9b0abb0a898836e5e4c38271500000000000000000b1f344759667c909fb1c2b29d8875604b3827150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0b5aa95806b55402b16000000000000000000000000000005182a3b484c4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d60728399a4b6b3a195806b5f4d3d2d1909000000000000000000000000091d31455670859bb0ab96816c563626140100000000000a1d3144556278899eaab9baaa9f94877d766f6c6a696b6d7279818c9ba3b09f969fb0cab49f8a755f4a3520000000000000000005142432434f5f677b8798a0afb2a59d9288827c76716e6c6a68686a6c6e72777c828a959ea7b1a89e92827460554431261503000000000000000000000002132431424e5e6678838f9ba3a9afb3b5bcc5b9b3b1aca59c94867a69657a90a5aaaa9c87725c47321d0000000d21364a5b6f8499afa39b9fa69e8d8075849ab09e8976614b3727150200000000000000000000000000000000000000000b20364b6074869ca6b2b6b2a69c8675604b36354b6073859ba5b1b5b2a79d8775614b36364a5c6e8399a4b1b4b3a89e8977624c37220d00081c304354697e93a0b0b4b4af9e917c665139291703000000000000000000000000000000000a1a2f404d62788a9fb4c2b49e8a78624d402f1a0a00000000000000031628384c6177889ea5a5a5a6937e695645321a0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0aaaa95806b55402b1600000000000000000000000000000b1f34485962626262626262626262626262626262626276869ca9baaf9e917d675c4a37261401000000000000000000000002152738566c8196abb09b86715443301c080000000000011527374859657c8c9ea8b8bbb4a59d928b85817f7e8082878e969faab49e958196abc1b49f8a755f4a352000000000000000000006152532414d5d6576828f9aa2afb2a69e98918b8683817f7d7e7f8183878c91979fa9b3afa29a897d6d605645372715070000000000000000000000000006142431404c5a636e7b858d939a9d9faba3a79e9b978f877f74645c657b909595959586725c47321d000000071a2d3d50657b8fa3b0b0a29a887c6b667c91a4a7947e695544311d080000000000000000000000000000000000000000091d314556647a88979ca59d97887a64564532314455637987969c9f9d97897b655746322e3e4c627786959c9f9d988a7c66594834200b00011426364a607282929a9f9e9a90806b5e4c391b0b000000000000000000000000000000000000122035495a6a8095a5a8a4947f6a5a483421110000000000000000091e3245566f848f8f8f8f8f8f8874604b382815000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758a95959595806b55402b1600000000000000000000000000000d22374c62777777777777777777777777777777777777777b8a9fb4bcb49f8a7a645544311d0800000000000000000000000013283d53687d92a8b49f8975604b35200b00000000000009192b3b4c5e667c8a9da6b4bcb7b2aa9f9a97949395989da5acb4ab9f9580788da2b7b49f8a755f4a352000000000000000000000071523303f4b58616d7a848f9aa2abb1adaa9f9b99979593939596989ca4a7adb3ada19a908578675f4b45382819090000000000000000000000000000000614222f3c494d5d6570787e85888a8c8e8b8986827a726960564d62787f7f7f7f7f7e69533e2914000000000f23374b5d71859b9b9b948477665e6073869b9b9b8875604b36200b0000000000000000000000000000000000000000021527384a5c647681878b878277645c4a38282637495b637681878a878277655d4b392920344859627480868a888378665e4c3b2b18050000081c304354606e7d858989857c6b625140301d0000000000000000000000000000000000000006192c3c4b6074879393938674604b3c2b190300000000000000000b21364b60757b7a7a7a7a7a7a79635645321a0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354a60727f7f7f7f7f7b65503b251000000000000000000000000000081d32485d72878c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c909fa9bacdbaa89d8774604b35200b00000000000000000000000010253a4f657a8fa4baa98d78624d38230d000000000000000d1d2f404c5e667a88979fabb4bcbbb4afacaaa9abadb2b6b2a49c8c806b788da2b7b49f8a755f4a352000000000000000000000000513212e3a464c5d646f7a858f969ca4a9afb0aeacaaa8a8aaacadb1aea9a79e988e847b70625a4d4132281a0a000000000000000000000000000000000004111e2c353f4b505a62696f737577787674716d655d544b45495a626a6a6a6a6a69604e3b261100000000081c2e3f51667c8585857f7262594c54677d858585857b65503a25100000000000000000000000000000000000000000000a1a2d3d4a58616c7275726d61594a3e2e1a192c3d4957616c7275726d62594b3f2e1b182b3b4856606b7175736e635a4c40301d0d00000000132536434a5f6770757570665e514434221200000000000000000000000000000000000000000e1e324556647a7d7d7d79635645311d0d000000000000000000091e3245566065656565656565635b493828160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c304354606a6a6a6a6a655d4b37230e00000000000000000000000000081d32485d72879da2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a5b4bac7d7c6b7a58b75604b36200b0000000000000000000000000c22374c61778ca7b9a6907b66513b2611000000000000000011212f404c5c6477828c9a9fabafb3b4bcc5b8b3b1aca59c94867a6b62778da2b7b49f8a755f4a352000000000000000000000000003101c29333f4b4f5d65707a81878d93999d9faba3a5a4a2a99f9d99938e8882796f655d4d493c301e160a00000000000000000000000000000000000000000e19202e373c484d545a5560626361585c574f4b3f36313c494d5555555555534e42311f0b00000000001124384c5e66707070696054483b4d5f6770707070655d4b37230e000000000000000000000000000000000000000000000f1f2d3a474c57566056574c473a2e20100f1f2c39464c57566056584c483b2e21100d1d2b38454b55566056594d493c302212000000000008182530414d5255606054514c40342616040000000000000000000000000000000000000000021628384a5c64686868635b4a3827150000000000000000000003162838454b505050505050504e493d2c1a0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000132536434a5555555555504b3f2e1c0800000000000000000000000000081d32485d72879db2b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7babfbfbfbfbfc3a08b75604b36200b0000000000000000000000000b1f34475974899eb3a9947f69543f2a1400000000000000000312222f3e4a59626d7a848b939a9d9faba3a79e9b978f877f75645d62778da2b7b49f8a755f4a352000000000000000000000000000000c171f2e373f4b505d656b72787e84888b8d8e8f8f8d8b8a88847e79746d645c504b3f352c1e13030000000000000000000000000000000000000000000006111c232b35383e37444b4d4e4c463a423a372e201d2b353840404040403e3b312414020000000000091d2f404c515b5b5b544a433630414d525b5b5b5b504b3f2e1c0800000000000000000000000000000000000000000000010f1c2a333738454b453837342a1c1002010f1b29333638454b453837342a1d1003000d1a28323638454b453838352c1e120400000000000008131c303a37444b4b4336382f221608000000000000000000000000000000000000000000000a1a2d3e4a4f5353534e4a3d2d1a0a00000000000000000000000a1a2832363a3a3a3a3a3a3a38352c1f0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081825303540404040403b372e21110000000000000000000000000000081d32485d72879daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa08b75604b36200b00000000000000000000000004182a3b5c71869bb1ac97816c57422c170200000000000000000412202d3b474c5c646f777e84888a8c8e8b8986827a726a60564d62778da2b7b49f8a755f4a352000000000000000000000000000000004101b222e373f4b4f565a63696f727678797a79787674736e696360544f4a3e372e20190e0000000000000000000000000000000000000000000000000000080e1920222927313637393633292d25221b100e1920232a2a2a2a2a29261f14060000000000000012222f383b4646463f3530252330393d464646463a372e2111000000000000000000000000000000000000000000000000000c171f212832363228221f180c000000000b171e212832363228221f180d000000000a151d2028323632282320190e00000000000000000000131e25273135353026241d120400000000000000000000000000000000000000000000000010202d36393e3e3e39362d1f0f000000000000000000000000000a161e212525252525252523211a0f01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131c202a2a2a2a2a25231c11030000000000000000000000000000081d32485d728795959595959595959595959595959595959595959595959595958b75604b36200b000000000000000000000000001a2f445a6f8499afae99846e59442f190400000000000000000002101d2a343e4a4f5962686f737577787673716d655d544b454d62778da2b7b49f8a755f4a3520000000000000000000000000000000000008111c232e373a3c494d545a5660636465646261575d59544e4a4336362d231c11060000000000000000000000000000000000000000000000000000000000050b0d14151d202223211f1718100e080000060b0d151515151514110b02000000000000000004121d24263030302a201c13131e25273030303025231c11030000000000000000000000000000000000000000000000000000040a0c151d201d150c0a04000000000000030a0c151d201d150d0b0500000000000002090b151d201d150e0c060000000000000000000000010a09151d20201c140809000000000000000000000000000000000000000000000000000002101b222428282824211a0f01000000000000000000000000000003090b101010101010100e0c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b1515151515100e08000000000000000000000000000000000014293e54697e7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f73604b35200b00000000000000000000000003182d43586d8298adb09b86705b46311b0000000000000000000000000d181f2d363b474c535a5560626361585c574f4b3f36384d62778da2b7b49f8a755f4a35200000000000000000000000000000000000000008101b22252c35383e38454b4d4e504f4d4b4639443e39353025221b1008000000000000000000000000000000000000000000000000000000000000000000000002080b0d0e0c0a0400000000000000000000000000000000000000000000000000000000090f111b1b1b140b0700010a10121b1b1b1b100e080000000000000000000000000000000000000000000000000000000000000002090b090200000000000000000000000002090b090200000000000000000000000002090b0902000000000000000000000000000000000001080b0b0801000000000000000000000000000000000000000000000000000000000000070d0f1313130e0c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273b4f60696a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a605544311d0800000000000000000000000001162b41566b8096abb29d88725d4825130000000000000000000000000005101b222a34373e37444b4d4e4c463a423a372e22384d62778da2b7b49f8a755f4a3520000000000000000000000000000000000000000000080e101920232928323638393a3a383633292f2924201c130807000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f15172020202020202020202020202020202020202020202020202020202020202020202020200f0d0700000000000000000000000000000000000000000000000000000000000000000000000000000c1f32424f545555555555555555555555555555555555555555555555555555554b443726140100000000000000000000000000152a3f546a7f94a9b49f8a745443301c070000000000000000000000000000070d181f222927313537393633292d25231c22384d62778da2b7b49f8a755f4a3520000000000000000000000000000000000000000000000000060c0e14161e212324252423211e1719140e0b0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d12141618191715130e0c060000000000000000000000000000000000000000070d0f1d1d1d1d1d1a181208000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d1215130e0c06000000000000000000010a101220202020202014120c030000000000000000000000000000000000000000000000000000000000040e1416202020202020110f0a000000000000000a1012202020202020110f0900000000000000000000000000000000000000000000050b0d20202020202015130d04000000000917222a2c35353535353535353535353535353535353535353535353535353535353535353535353524211a0f01000000000000000000000000000000000000000000000000000000000000000000000000021424323b3e4040404040404040404040404040404040404040404040404040403531261909000000000000000000000000000014293e54697e93a9baa98a75604a35200b00000000000000000000000000000000050b0d13151d202223211f1718100e0d22384d62778da2b7b49f8a755f4a35200000000000000000000000000000000000000000000000000000000002090b0e0f100f0d0c0a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d182022282a2c2e2e2c2a2823211a0f0d0700000000000000000000000000000002101b222432323232322f2d25190b000000000000000000000000000000000000000000000000000000000000000000000000000d182022272b282321190e0200000000000005131e25273535353535352927201407000000000000000000000000000000000000000000000000000000081621292c35353535353527241d120400000004121d242735353535353526231c1103000000000000000000000000000000000000000d1820353535353535352a282015070000051727353e424a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a39362d1f0f0000000000000000000000000000000000000000000000000000000000000000000000000006141f27292a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a201d140900000000000000000000000000000013293e53687e93a8b5a08b76604b36210b000000000000000000000000000000000000000001080b0d0e0c0a040000000d22384d62778da2b7b49f8a755f4a352000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e1920222b34373d3f414343413f3d38352c24211a0f060000000000000000000000000010202d363a47474747474541372919080000000000000000000000000000000000000000000000000000000000000000000008131c2b34373c403d38352c1d150a0000000001132330393d4a4a4a4a4a4a3f3b3225140000000000000000000000000000000000000000000000000000001626343d414a4a4a4a4a4a3c39302212000000122230393c4a4a4a4a4a4a3b382f22110000000000000000000000000000000000000d1d2b344a4a4a4a4a4a4a403c33251504000f22354552576060606060606060606060606060606060606060606060606060606060606060606060604e4a3d2d1a0700000000000000000000000000000000000000000000000000000000000000000000000000020c12141515151515151515151515151515151515151515151515151515150b08010000000000000000000000000000000013283d52687d92a7b6a18c76614c37210c000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a352000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b0f14171a1b1c1d1b1a1915110d0b050000000000000000000000000000000000000000000000000000000000000c171f2b35383b484d52545658595755534e493d39362d20190e0000000000000000000000071b2d3e4a4f5c5c5c5c5c5a5447372512000000000000000000000000000000000000000000000000000000000000000000081825303b484d5255524d493c32281a0a0000000a1e30414d52606060606060544f43321909000000000000000000000000000000000000000000000000000b1b34445156606060606060514d40301d0a000a1d30404d51606060606060504c402f1c090000000000000000000000000000000005182b3b485e60606060606055504333200d00152a3e52636c757575757575757575757575757575757575757575757575757575757575757575757575705c4a36210d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273d52677c92a7b7a18c77624c37220d000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a352000000000000000000000000000000000000000000000000000000000000000000000000000000002090b131c2024292c2f303132312f2e2b272220190f0b070000000000000000000000000000000000000000000000000005131c2a333c484d55596267696b6d6e6c6a68635b564e4a3d352b1e15020000000000000000000d22364a5c6472727272726f6554412d18030000000000000000000000000000000000000000000000000000000000000000132536434a5962676a68635b4b453828150200001025394d5f6775757575757569614f3726140100000000000000000000000000000000000000000000000316293951626b757575757575665e4d39240f001024394d5f67757575757575665e4c38230f000000000000000000000000000000000b20344859707575757575756a61503c281300172c42576c818a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7a644e39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012283d52677d92a7b6a18c77614c37220c000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a352000000000000000000000000000000000000000000000000000000000000000000000000000040a151d20253035393e4144464747464443403c38352b25201c130802000000000000000000000000000000000000000000071523303a474c5a626a71777d7f818383817f7d78726b645c4d483c331d150a00000000000000000f243a4f647a8687878787836f5a452f1a0500000000000000000000000000000000000000000000000000000000000000071c3043546069777c807d786b605645321d11000012273d52677d8a8a8a8a8a8a7f695544311d0800000000000000000000000000000000000000000000000a1e3246576b808a8a8a8a8a8a7c66513c27110012273c51677c8a8a8a8a8a8a7b66503b2611000000000000000000000000000000000d22374d62778a8a8a8a8a8a7f6a55402a1500172c42576c81979f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8e79644e39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013283e53687d93a8b6a08b76614b36210c000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a35200000000000000000000000000000000000000000000000000000000000000000000000030c171f28323636434a4f53575a5b5c5c5b5a5855514d483c3a3530251d150a0000000000000000000000000000000000000009172533414d58616b7880868c92949698989694928d8781796d625a504331271a0a0000000000000010253a50657a8f9c9c9c9c87725d47321d0800000000000000000000000000000000000000000000000000000000000006192c3c4a60727e8a9195928c8074604b402f1c09000b20364b6074889d9f9f9f9d8774604b35201000000000000000000000000000000000000000000000011426364b6176899e9f9f9f9d8773604b35200b0012273c51677c919f9f9f9f907b66503b2611000000000000000000000000000000000d22374d62778c9f9f9f9f957f6a55402a1500172c42576c8197acb5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a38e79644e39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8bbaa8a75604b35200b000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a3520000000000000000000000000000000000000000000000000000000000000000000000a161e2a3338454b50546064696c6f707172706f6e6a66625a564f4a433631271c1308000000000000000000000000000000000617273543505f6776808a959ba3a7a9abadaeacaaa8a49c968c82786a614b4538281b0a00000000000010253a50657a8fa5b1b19c87725d47321d080000000000000000000000000000000000000000000000000000000000000c2035495a6a7f939fa9aaab9f96826d5e4c38230f00081d3144556a7f94a8bab7a5917c67513e2e1b07000000000000000000000000000000000000000000081c304354697e93a7b9b9a7937e695443301c080012273c51677c91a6b5b5a5907b66503b2611000000000000000000000000000000000d22374d62778ca2b5b5aa957f6a55402a1500172c42576c8197acc2d2cacacdc4c0babababababababababababababababababababababababab9a38e79644e39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000142a3f54697f94a9b49f8a755544311d08000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a3520000000000000000000000000000000000000000000000000000000000000000001131b28323a474c5660666c74797e8184858687868483807c78726b6460544b45383025180f0100000000000000000000000000021424354552616a7d89969fa9b0b5c1bebdbbbbbdbfc2b6b1ab9f988b7f6d60564539281603000000000010253a50657a8fa5bab29c87725d47321d080000000000000000000000000000000000000000000000000000000000000e23384d63788a9fb4bac7bcb4a0907b66503b261100021527374c61768a9fb4c3b09b85705c4a36220d0000000000000000000000000000000000000000000b20354b6073879cb2c5b39e8976614b362614010012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500152a3f546a7f94a3b5c7d8cdbcb0aba5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a38e79644e39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152b40556a8095aab39e89735e49271501000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a35200000000000000000000000000000000000000000000000000000000000000008141c3039454b58616b757b81888e9396999b9c9c9b999895918d87817a736860564a43362c1f13000000000000000000000000001020324252636c7f8d9ea7b4babcb5b0aaa8a6a5a7aaafb4bbbcb5a99f948274605745321e14000000000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000014293e53697e93a9bacdd7cfbeac97816c57422c170000091f3347586c8197abbcb4a28f7a644f3b2b190500000000000000000000000000000000000000071a2d3e51667c91a5b6bbaa96806b5746331808000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a15000b20364b6074869ba9bacec4b09e968f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8e7a644e39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002172d42576c8297acb19c87715c47321c00000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a35200000000000000000000000000000000000000000000000000000000000000b182630414d57606a76808990979da6a8acafb0b1b1b0afadaaa6a59d968f877d74686054493d311c1308000000000000000000000a1a2e3e4f606c81949fabb9bbb4ab9f9b9592909092949a9faab4b9bab4a0988475604b42311e0e0000000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000182d42576d8297acc7d7e9dac5b09b85705b46301b000004172a3a4e63788c9fb5c0ad98836d594834200a000000000000000000000000000000000000000d21364a5c70849aafc3b49f8b78624d39291700000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500091d31455663798b9fb4c0c0ab96807b7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7b75614b36210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004192e44596e8399aeaf9a846f5a452f1a05000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a352000000000000000000000000000000000000000000000000000000000000e1b2936434b5f67757f89969ea8acb2b7c4c1c3c1bebdbec0c3bfc3b7b2aba59c93887e72635b4e41302518080000000000000000021528384b5c697e939fb5bcb6aa9f978c86807d7b7b7d7f848b959ea8b4beb2a298826d604e3c2c190600000010253a50657a8fa5bab29c87725d47321d08000000000000000000000000000000000000000000000000000000000000162b40556b8095aac1d1dfd4c4ae99836e59442e190000000c2135495b6f8499aec2b49f8b78624d39281603000000000000000000000000000000000005182a3b4e64798ea2b4c0ad98836e5a48351b0b00000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500021527384a5b6a7f94a2b4c6b39e88776565656565656565656565656565656565656565656565656565615746321e090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021528385b70859bb0ad98826d58432d1803000000000000000000000000000000000000000000000000000000000000000d22384d62778da2a5a59f8a755f4a3520000000000000000000000000000000000000000000000000000000000e1e2b3a4654606b7d88949ea7b4b9c6c7bab4b0adaba9a8a9abadb2b5bcc9c3b6b2a69d93847968604a433626180800000000000000091d324556647a8b9fb4bdb5a59d8c8178716b686666686a6f767f8a9aa2b2beb2a0937e685a4935200e00000010253a50657a8fa5bab29c87725d47321d0800000000000000000000000000000000000000000000000000000000000011263c51667c91a3b4c3cac5b7a6947f6a543f2a15000000061a2c3d50657b90a3b5bbaa95806b5745321e0800000000000000000000000000000000000b1f3448596d8298adc0b4a28f7a644f3c2b190000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500000a1a2d3d4b6073849aa8b9b8a699836e5f5050505050505050505050505050505050505050505050504b46392816030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091d32455672879db2ab95806b56402b1601000000000000000000000000000000000000000000000000000000000000000d22384d62788d8f8f8f8f8c755f4a35200000000000000000000000000000000000000000000000000000000b1b2b3c4858617280919da6b3b9c5b9b3ada99f9a989694939495989c9fabafb5bcc4b7b2a29a8b7d6b605443362614010000000000021527374b6074879daabbb5a39b87796c625955535150525558616a778498a0b2beb49f8b78634d3c2b1906000010253a50657a8fa5bab29c87725d47321d080000000000020402000000000000000000000000000000000000000000000b20354b6073859ba5b1b5b2a79d8876614c36210c000000000e23384b5d71869bb1c4b39e8975604b36251300000000000000000000000000000000021628384c62778b9fb4c3b09b85705c4b371e0e0000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a150000000f1c30435463788a9eb4bfb3a1927d685a48363a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3632281b0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20364b60758a9fb4a7927d67523d281200000000000000000000000000000000000000000000000000000000000000000b20364b60747b7a7a7a7a7b65503a2510000000000000000000000000000000000000000000000000000008182939485a627683969eb3b7c4bab4a79e98918a8583817f7e7f8083878b929a9fabb4bcc0b4a99f928072605443301c150300000000081d314455687e93a5b7b8a79b8577635b4d483b3d3b3b3d3a464c5961748298a3b5baa997826d5a4935200b000010253a50657a8fa5bab29c87725d47321d00070d0f121517191715130e0c060000000000000000000000000000000000081c304354637987969c9f9d98897b655846331f0a00000000081c2f3f52687d92a6b8b8a7937e685443301c11111111111111111111111111111111111e3245566a8095a9bab7a5917c67513e2e1b000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500000001142636495a687e93a1b3bfb39e8978625443302525252525252525252525252525252525252525211e160b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e24394e63798eabbcab8e79644f39240f0000000000000000000000000000000000000000000000000000000000000000091d324556606565656565655d4b37230e0000000000000000000000000000000000000000000000000001142636465762788699a1b0bcbeb1a89f9589827c76706e6c6968696b6e72777d848c989fabb6c2bab49e958272604b43332111000000000b20364b6074879db2c2b39e897862594a3d342b2826262829333b47566074859ba9bab49f8b78624d38230f000010253a50657a8fa5bab29c87725d47321d101b2224272a2d2e2c2a282320190e0b05000000000000000000000000000001142636495b637581878a888277655d4b3a29170400000000001120364b6074889db3c5b19c8773604a3526262626262626262626262626262626262626364b6075889eb3c6b29d8774604b352010000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a150000000008182c3c4e606f8399a7b8b9a89a8472604a3d2c191010101010101010101010101010101010100c0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011273c51667c91a6b59f8b76614b36210c000000000000000000000000000000000000000000000000000000000000000002152838454b5050505050504b3f2e1c08000000000000000000000000000000000000000000000000000a1c3043546175869ca4b3bfbbb4a0978a80766d676157585654535456585861686f79828c9ca4b1bdbcb0a097816c61503f2e1b0b00000114263652677d92a5b7b5a3917c675a483b2d201913111113171f2a38455663788b9fb4bbaa96816c573d2c1a060010253a50657a8fa5bab29c87725d473220222d36393c3f4243423f3d38352c2220190e030000000000000000000000000008182c3d4957616c7275726d62594b3f2e1b0b000000000000091d3145566a7f95a9bab6a4907b66513d3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3f53687d92a6b8b9a8947e695544311d08000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500000000000e1e31424c6277899eb3beb4a2937e695b4937271501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f556a7f94aab29d87725746321e0a0000000000000000000000000000000000000000000000000000000000000000000a1a2832363a3a3a3a3a3a372e2111000000000000000000000000000000000000000000000000000a1a30414b60728399a4b6c2b8aa9f9382776b6157514b4639413f3e3f403a474c535b636d7a86979fafbbbeb19f947f6a5d4b3a29170400081c3043546e8398aec3b19b86715f4d3c2b1d0f0500000000040c1a2838495b6d8297acc2b29d88725b4935210c0010253a50657a8fa5bab29c87725d472b34373e4a4e525457595755524d493c38352b1e160b000000000000000000000000000e1f2c39464b56566056584d483b2e211100000000000000021527384c61778a9fb4c2af9a846f5b5151515151515151515151515151515151515151515d71869cb1c5b39e8976614c37261401000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a150000000000001420344859677d91a0b2c0b49f8b79635544311d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005192b3c596e8399aead98836e5839291603000000000000000000000000000000000000000000000000000000000000000000000a151d20252525252525231c1103000000000000000000000000000000000000000000000000021628384d5f6b8096a1b3c2b8a79e8c7e6d62594b46393632292c2a292a2b2a33373d494e5c647481949dafbbbdb49f8d7b655846331f0a000b20354b6073899eb3bbaa927d675240301e0e00000000000000000a1a2c3c4e63788da4b6b7a58d78634e38230e0010253a50657a8fa5bab29c87725d473b484d545c64676a6c6e6c6a68635a554d483c32281b11040000000000000000000000000e1b29333638454b453837342b1d110300000000000000000a1f3447596d8297acbfb3a28e7966666666666666666666666666666666666666666666667b90a4b5bbaa96816b574633190900000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500000000000005182b3b4d5f6d8298a6b7baa99b8573604b3e2d1a0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2035485a73889db3a9937e69543e291400000000000000000000000000000000000000000000000000000000000000000000000002090b1010101010100e080000000000000000000000000000000000000000000000000000091e324556677d919eb0bfbaa89e897b68604d483b3329211e161714131416171f212c363e4b56606d7f949dafbdbcab9d8776614c36210c000f243a4f647a8fa7b8b49f8b76614c362112000000000000000000000e2135495b71869cb1c3a8937e69533e29140010253a50657a8fa5bab29c87725d454b59626a72797c7f8283817f7d78716a625a4b46392f22130600000000000000000000000417293a464c4f4f4f4d483c2b190500000000000000000004182a3a4e63798ea1b3c0ae99837b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b849aafc2b49f8b78624d3929170000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a15000000000000000d1d30414c6176889db2bdb5a3957f6a5c4a382816030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22384d62778da6b7a88e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000417293a4b6075879db2bcbcb49f8a7a655d4e42342b1e170c0a030000000000040a0f1a212e38454b616a7f949fb1ab9f97887a654f3a25100014293e53697e93a8c5b09b86705746331e0a00000000000000000000061a2c3d576c8196acc1ad98826d58432e180010253a50657a8fa5bab29c87725d57606c777f878e919497989794928d867f786b61574c4031241507000000000000000000000a1f33465861656565625a4835200b000000000000000000000c2136495b6f849aafc2b2a19990909090909090909090909090909090909090909090909aa2b4c1ae98836e5a48351b0b0000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a150000000000000000121f334758667b909fb1c1b49f8c7a645645321e1100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273c51677c91a6b49e8975604b35200b0000000000000000000000000000000000000000000000000000070b0f14171a1b1c1c1b191715110c0a030000000000000000000000030b0b0b0b0b0b0b0a0000000000000000000a1f334658697f94a5b7c3b09e927d675c4b3f3120180d03000000000000000000000006101a28324350616c8197a39b8c8176655d4b37230e00152b40556a8095aabfac96816c5739291703000000000000000000000012283d52677d92a7bcaf9a846f5a452f1a0010253a50657a8fa5bab29c87725d6575818b949ca4a7a9acaeacaaa7a49c958a8075665e4e42332515050000000000000000000c21364c61767a7a7a78624d38220d00000000000000000000061a2c3d50667b90a4b6bfb2aea6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6afb4c0b4a38f7a644f3c2b19000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500000000000000000417293a4c5e6c8197a5b6bbaa9c8675604b3f2e1b0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071a2d3d576c8297acae99846f5544311d080000000000000000000000000000000000000000000002090b131c2024292c2f303132302e2c2b26211e160e0c06000000000001080b18202020202020202013110b0200000000011527374c6176899eb3c3b6a596806b5f4d3e2f2113050000000000000000000000000000000a151d33434b60748593857a6c61584b3f2e1c0800172c42576c8197acbfaa957f6a55402a1500000000000000000000000010263b50657b90a5bab19b86715c46311c0010253a50657a8fa5bab29c8772677b87969faab1b6bbb4b3b5bcc9c2b5b1a99f95887c6860504333231301000000000000000012273c51677c8f8f8f816b56412c1601000000000000000000000f23384c5e71869cb1c5c6c3bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc5c8c3b09b85705c4b371e0e000000000000000012273c51677c91a6bcbba5907b66503b2611111111111111111111111111111111111122374d62778ca2b7bfaa957f6a55402a150000000000000000000c1c2f404b6175879caabbb6a496816c5d4b392917030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364a5b72879db2a8937e6853372715010000000000000000000000000000000000000000040a151d20253035393e4144464747454442403b36322923211a0f07000009141d202d353535353535353528261f1406000000081d3144556b8095a7b8c2b29c8774604b4130201103000000000000000000000000000000000002151d31455663797e73645c4c473a2e21110000192e43596e8398aebda8937e68533e29130000000000000000000000000f24394f64798ea4b9b39d88735e48331e0010253a50657a8fa5bab29c87727d8d9ca5b4b3aca5aa9f9e9faba6adb3b9bab4a69d8c7e6a615041301f0f000000000000000013293e53687e93a498836d58432e180300000000000000000000091c2f4053687d93a7b8ccd1c0b4b0adadadadadadadadadadadadadadadadadb1b5c2d2cab7a5917c67523e2e1b00000000000000000012273c51677c91a6bcbba5907b66503b2626262626262626262626262626262626262626374d62778ca2b7bfaa957f6a55402a1500000000000000000000111e324657647a8c9fb4c1b59f8d7b655746331e120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23394e63798ea5b5a38c77624d37220d00000000000000000000000000000000000000030c171f28323636434a4f53575a5b5c5c5b595755504b463939352c201c130a19263135424a4a4a4a4a4a4a4a3e3a3124140200000b20354b6074899eb3c5b5a4927d675544312313020000000000000000000000000000000000000002152738495b636860544a3e332a1c110300001a2f455a6f849aafbca7927d67523d28120000000000000000000000000e23384d63788da2b8b49f8a745f4a341f0010253a50657a8fa5bab29c877b8c9fabb4a69d97908c8a898a8c91989ea7b4bbb7aa9f927f6a5f4d3d2c190900000000000000152a40556a7f95aa9a846f5a452f1a0500000000000000000000001121364b6075889eb3c7c8b4a29b98989898989898989898989898989898989ca4b5c9c6b29d8774604b35201000000000000000000012273c51677c91a6bcbba5907b66503b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b4d62778ca2b7bfaa957f6a55402a1500000000000000000000031628394b5c6b8095a3b5bcab9d8776614c40301d0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006192b3c54697f94a9b09b8671594834200b0000000000000000000000000000000000000a161e2a3338454b50546064696c6f707171706e6c6a666157564e493d3530251a2837444b58606060606060605f534e42311f0b000010253b50657a90a7b8c8b19c8673604b372715050000000000000000000000000000000000000000000a1a2c3d494e534b43362d1f170c000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5bab39e8a899eaaa89e9488817b77757375777c8289969faab8bbb49d927d675b4937261401000000000002172c41576c8196ac9b86715c46311c000000000000000000000000091e3245566a8095a9bac5b09b848383838383838383838383838383838383869cb1c6b9a8947f695544311d0800000000000000000012273c51677c91a6bcbba5907b6650505050505050505050505050505050505050505050505062778ca2b7bfaa957f6a55402a1500000000000000000000000b1b2e3e4b6074859ba9bab7a597826d5e4c3b2a18040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2035485a70859bb0ab947f6a553b2b18050000000000000000000000000000000001131b28323a474c5660666c74797e8184858687858381807b76706b635b514a43362f384555606d757575757575757568604e3a261100071a2d3d566c8196abc5bbaa927d67544330190900000000000000000000000000000000000000000000000f1f2c35393e35302618100400000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5bab9a89e9ea8a49c8a7f756c656260556062666d76818b9ea6b7bcb49e8a79635544311d09000000000003192e43586e8398ad9d88735d392917030000000000000000000000021628384c62778b9fb4c2ad98826e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e71869bb0c9b49e8976614c3726140100000000000000000012273c51677c91a6bcbba5907b6666666666666666666666666666666666666666666666666666778ca2b7bfaa957f6a55402a15000000000000000000000000101d31445563798b9fb4c0b1a0917c665947341f130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d23384d62788da3b59f8c78624d38220d0000000000000000000000000000000008141c3039454b58616b757b81888e9396999b9c9c9a999795908a8580796f6660544c3f46566073828a8a8a8a8a8a8a8d7d68533e2813000c21364a5b72879db2c7b49f8a76614c362614000000000000000000000000000000000000000000000000010f1a212329201c1408000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5bac6b9b3b4a39b86786a6056504c4b444b4d5158616c7a889da5b7b9a89c8673604b3727150100000000051a30455a6f859aaf9f8a745746331e0a0000000000000000000000000a1f3448596d8297adc0b49f8b776258585858585858585858585858657a8fa3b5bcab96816c58463319090000000000000000000012273c51677c91a6bcbfaa947f7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7d92a7bcbfaa957f6a55402a15000000000000000000000000021527374a5b697f94a2b4beb39e8877614c41311e0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071b2d3e546a7f94a9af9a846f5a4835200b0000000000000000000000000000000b182630414d57606a76808990979da6a8acafb0b1b1b0aeacaaaa9f9b958e847b73655d4c57617483979f9f9f9fa89e8b7d68604e3a2611000e24394e63798ea5b6c4af9a856f57463318080000000000000000000000000000000000000000000000000000060c0e130b080100000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5bad6ccb8a79b8576625a4b453837353135373a474c5c6478879daabbb5a4927d675544311d0800000000001325365c71869cb1a98b76614c36210c00000000000000000000000005182a3b4e64798ea2b4bbaa95806b5645434343434343434343485a6e8398aec1b49f8c78624d3a2917000000000000000000000012273c51677c91a6bcc2af9d949090909090909090909090909090909090909090909090909090929bacc0bfaa957f6a55402a150000000000000000000000000009192d3d4b6073849aa8b9b8a699836e5f4e3c2b18080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c71869cb1a8927d67523c2b190500000000000000000000000000000e1b2936434b5f67757f89969ea8acb2b7c4c1c3c1bebdbfc0c1c8bbb4b0aba29a90867b6d6161758499a1b1beb7a79e8a7c675f4e42311f0b0013283d53687d92a8c3bea9947e69543929170000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5bad2c2b39e89786258493c322822201d202229333e4a5a647a8c9fb4c2b29c8774604b35200b00000000071c30435473889db3a28d78634d38230e000000000000000000000000000d21364a5c6f849aafc2b39e8875604b362e2e2e2e2e2e29394d62788b9fb4c1ae99836e5a49351b0b000000000000000000000012273c51677c91a6bcccbbafaaa5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a7acb9cabfaa957f6a55402a1500000000000000000000000000000f1c30435462788a9eb4bfb3a1927d685a48362513000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005192b3c4f647a8fa4b39e8975614b36210e00000000000000000000000000000e1e2b3a4654606b7d88949ea7b4b9c6c7bab4b0adaba9a8aaabaeb2b7c4c5c0b3afa49c90827777859aa2b2bfb6a69d897a655e4d413124140200162b40566b8095abc0b9a48f7a644f3a250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5bac9b5a3917c675a483a2c1e160d0b080b0d171f2e3c4b5c6a7f94a7b8b6a5927d6752372715020000000b20354a60758a9fb4a48f7a644f3a250f00000000000000000000000000071a2d3d51667b90a4b6b8a7927d6853402f1c1919191e3346576b8196aabbb5a38f7a654f3c2c1900000000000000000000000012273c51677c91a6bcd1ccc2bfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcc0cad4bfaa957f6a55402a15000000000000000000000000000001142636495a687e93a1b3bfb39e8978625443301c0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2035485a6e8398adaa96816b5746321e09000000000000000000000000000b1b2b3c4858617280919da6b3b9c5b9b3ada99f9a989694939496989da6a8b0b5c1c2b6b1a09888879ba3b4c0b5a49c8879645c4c40302314060000192e43596e8398aec3c5a28d77624d38220d0000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5bac7b19b86715f4d3c2b1c0e02000000000004101e2e3e4b6175899eb3c3ae99836e5544311d080000000c21374c61768caabba6917b66513c261100000000000000000000000000000f20354a6073879cb1c5b19c86715e4c38230f011426364b6176899eb3c3b09b85705d4b371e0e00000000000000000000000012273c51677c91a6bcd5c5b8b3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b3b7c4d5bfaa957f6a55402a1500000000000000000000000000000008182c3c4e606f8399a7b8b9a89a8472604a3d2c190900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000417293a4d62788b9fb49f8b78624d3928160300000000000000000000000008182939485a627683969eb3b7c4bab4a79e98918a8583817f7e7f8183888d939ba3aeb3bfbeb2a79e9ca5b5c0b4a39b8678635b4b3e2f2112050000001a2f455a6f849aafc4b9a78b76604b36210b0000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5babaa9917c675241301e0e000000000000000000101e3246576a7f95aac4b39e8974604b36200b0000000e23384e63788da3c8a8927d68533d28130000000000000000000000000000071c304354687e93a7b8b5a4907b65503d2c1a081c304354697e93a8b9b7a5917c67523f2e1b0000000000000000000000000012273c51677c91a6bcccb8a79e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9da6b7cbbfaa957f6a55402a15000000000000000000000000000000000e1e31424c6277899eb3beb4a2937e695b4937271501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f3346586b8196aaae98836e5a48351b0b00000000000000000000000001142636465762788699a1b0bcbeb1a89f9589827c76706e6c69686a6b6e73787e868e99a1b2b7c4b8b3b2b6c1b4a29a8577625a4a3d2e201103000000001b30465b70859bb0c5b39e89745645321e090000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5bab49f8a76614b36211200000000000000000000031628394e63798ea6b7b9a88f7a65503a251000000010253a4f657a8fa4baa9947f6a543f2a150000000000000000000000000000001325364b6075899eb3c2af99846f5b4935210c20354b6073879db2c6b29d8774604b3520100000000000000000000000000012273c51677c91a6bcc8b39e888888888888888888888888888888888888888888888888888888889db3c8bfaa957f6a55402a150000000000000000000000000000000000131f344859677c91a0b2c0b49f8b79635544311d10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011527374c6176899eb4a18f7a644f3c2b19000000000000000000000000000a1c3043546175869ca4b3bfbbb4a0978a80766d676157585654535556595a6268717983909da6b7cbc8c7c9b5a39a84756159483c2d1f100200000000001c31465b71869bb0c6b39d88735443301c080000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5baaf9a85705746321e0900000000000000000000000b21364a5b73889db3c6a9947e69543f291400000012273c51677c91a6bcab96816b56412c16010000000000000000000000000000081e3245576b8095aabbb59f8c79634e3a2a1b2d3e51667c91a5b6b9a8947f695544311d080000000000000000000000000012273c51677c91a6bcbba5907c7373737373737373737373737373737373737373737373737373778ca2b7bfaa957f6a55402a15000000000000000000000000000000000005182a3b4d5f6d8298a6b7baa99b8573604b3e2d1a0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d314455697f94a8af99846f5c4b371e0e0000000000000000000000000a1a30414b60728399a4b6c2b8aa9f9382776b6157514b4639413f3e3f413c484d535c646e7b889db2c8dddbc6b09b86756157473b2b1e0f010000000000001b30455a70859aafc5b49f8a75604b35200b0000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5baab96816b56392816030000000000000000000000071a2d3d596f8499aec0ab96806b56412b1600000013293e53687e93a8bdad98826d58432d18030000000000000000000000000000031628394d62778b9fb4bcab97816c58473322364a5c70859aafc3b49e8976614c372715010000000000000000000000000012273c51677c91a6bcbba5907b665d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d62778ca2b7bfaa957f6a55402a150000000000000000000000000000000000000d1d30414c6176879dabbcb5a3957f6a5c4a38281603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b6074879db0a18f7a644f3e2e1b000000000000000000000000021628384d5f6b8096a1b3c2b8a79e8c7e6d62594b46393632292c2a292a2c2b3538435060697d8b9fb4cad2ddc9b49f8a79635544311d0e00000000000000001a2f44596f8499aec4bbaa8c77614c37220c0000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5baa9947f69543f2a1400000000000000000000000000182d42576d8297acc2ad98826d58432d18000000152a3f546a7f94a9bfae99846f59442f1a040000000000000000000000000000000a203448596d8298adc0b49f8a77614c372b3b4e64798ea2b4bcab96816c5846331909000000000000000000000000000012273c51677c91a6bcbba5907b6650484848484848484848484848484848484848484848484d62778ca2b7bfaa957f6a55402a1500000000000000000000000000000000000000121f334658657b8d9fb5c1b49f8c7a645645321e110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273d52677d929b9b99836e5c4a362010000000000000000000000000091e324556677d919eb0bfbaa89e897b68604d483b3329211e1617141315192736434a616a7e8d9faabbc9bdc7cbbaa99b8573604b3c2b190500000000000000172d42576c8297acc1c8a38e79634e39240e0000000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f455a6f849aafbca7927c67523d27120000000000000000000000000e23384d63788da2b8b49f89745f4a341f0010253a50657a8fa5baa8927d68533d281300000000000000000000000001162b40566b8095abc0af99846f5a442f1a000000152a3f546a7f94a9bfae99846f59442f1a0400000000000000000000000000000005182b3b4f647a8ea2b4baa9947f6a55443448596d8298adc0b49f8c78634d3a291700000000000000000000000000000012273c51677c91a6bcbba5907b66503b3333333333333333333333333333333333333333374d62778ca2b7bfaa957f6a55402a15000000000000000000000000000000000000000417293a4c5d6c8196a4b6bbaa9c8675604b3f2f1b0b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000172d42576c81858686857a644e3e2d1b0200000000000000000000000417293a4b6075879db2bcbcb49f8a7a655d4e42342b1e170c0a0300000b1a28374454606c80939fabbbbbb4a8b2b7c3b5a3947f6a5a4834200b0000000000000014293f54697e94a9c6bca7917c67523626140100000000000000000000000000000000000000000000000000000000000000000000000000000000001a2f445a6f8399afbda7927d68523d28130000000000000000000000000e23384e63788da3b8b49e89745f49341f0010253a50657a8fa5baa8937e69533e291400000000000000000000000001172c41566c8196abc1ae98836e59432e19000000152a3f546a7f94a9bfae99846f59442f1a04000000000000000000000000000000000d22364a5c70859ab0c3b29d8874604b384c62778b9fb4c1ae99836e5a49351c0c00000000000000000000000000000012273c51677c91a6bcbba5907b66503b261e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e22374d62778ca2b7bfaa957f6a55402a1500000000000000000000000000000000000000000c1c2f3f4b6075869caabbb6a496816c5d4b3a2917040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3e52636c71717171645c4a3620100000000000000000000000000a1f334658697f94a5b7c3b09e927d675c4b3f3120180d03000000000b1b29384555607281959eb5bcbaaa9f929da5b7c1b49f8b78624d3929170300000000000010263b50657b90a8b9c2ad97826d5443301c08000000000000000000000000000000000000000000000000000002090b0c0a04000000000000000000182d43586d8298adbea9947e69543f291400000000000000000000000010253a4f657a8fa4bab29c87725d47321d0010253a50657a8fa5baaa95806a55402b1500000000000000000000000003172939586e8398adc1ac96816c57412c17000000152a3f546a7f94a9bfae99846f59442f1a0400000000000000000000000000000000071b2d3e51667c91a5b6b7a6927d675245566b8095a9bab5a38f7a654f3c2c190000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611080808080808080808080808080808080d22374d62778ca2b7bfaa957f6a55402a15000000000000000000000000000000000000000000111e324557647a8c9fb4c1b59f8d7b655846331f1200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f22354552575b5b5b5b4e4a3d2d1a020000000000000000000000011527374c6176899eb3c3b6a596806b5f4d3e2f2113050000000000031729394656607382969fafbcb8a89f8c7d879db2bfbaa996806b5746331e0a0000000000000b21364b6075899eb4c8b39e8874604b35200f000000000000000000000000000000000000000000000000000a151d20211f170c0000000000000000162c41566b8196abc0aa95806b55402b1600000000000000000000000011263c51667b91a6bbb09b85705b46301b0010253a50657a8fa5baad98826d583d2c1a0600000000000000000000000a1e33465770859bb0bfaa947f6a553f2a15000000152a3f546a7f94a9bfae99846f59442f1a0400000000000000000000000000000000001020354b6073879db2c4b09b85715d4b6075889eb3c4b09b85715d4b371e0e0000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a15000000000000000000000000000000000000000000031628394b5c6b8095a3b5bcab9d8776614c40301d0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051727353e424646464639362d1f0f000000000000000000000000081d3144556b8095a7b8c2b29c8774604b41302011030000000000000a1e33465761748398a0b0bdb7a79e8a7c687c91a1b3c7b39e8976614c36210d000000000000091e3245566e8399aec9b8a68f7a644f3d2c1a0600000000000000000000000000000000000000000000000a1a2731363733291c1308000000000000152a3f546a7f94a9c9ad98836e583d2c1a06000000000000000000000115273754697e94a9beae99836e59442f190010253a50657a8fa5bab29d88735b4935210d00000000000000000000000c21364c61768a9fb4c2a7927d67523d2812000000152a3f546a7f94a9bfae99846f59442f1a040000000000000000000000000000000000081c304354697e93a7b9b5a38f7a6553687d92a7b8b7a6927d67523f2e1c000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a15000000000000000000000000000000000000000000000a1b2e3e4b6074859ba9bab7a597826d5e4d3b2a1804000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000917222a2d3131313124211a0f010000000000000000000000000b20354b6074899eb3c5b5a4927d67554431231302000000000000000c21364b61758499a1b2beb6a69d897b665e6e8399aec1b9a8947f69543c2b190500000000000216283852687d92abbcc4ad98826d5b493521110000000000000000000000000000000000000000000002152738454b4c473a30251810040000000012273c52677c91abbcb39d88735b4936210c00000000000000000000081d3144556e8499aec8ab96816c56412c170010253a50657a8fa5bab7a68e79634e3b2a18050000000000000000000a1a2e3e51667c91aabbb5a48c77624d37220d000000152a3f546a7f94a9bfae99846f59442f1a040000000000000000000000000000000000011426364b6176899eb3c1ae98836e5d71869cb1c5b29d8874604b362011000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a150000000000000204070707070707070707070707070700101d31445563798b9fb4c0b1a0917c665947341f130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f15171c1c1c1c0f0d07000000000000000000000000000010253b50657a90a7b8c8b19c8673604b37271505000000000000000012273c52677c919eb0beb5a59c8879645c4f647a8fa3b5c6b19c87725a4834200b0000000000000c22374c61778b9fb4cab49f8c79634e3f2e1d0d0000000000000000000000000000000000000000010f1d3145566061584a43362d1f170c0000000c22374c61778b9fb5b7a68e79634e3a2a17040000000000000000021020354b6074899eb3bbaa907c66513b26110010253a50657a8fa5bac4ac96816c5948341f140400000000000000081528384a5c6f849aafc8b19c8671594834200b000000152a3f546a7f94a9bfae99846f59442f1a04000000000000000000000000000000000000081e3346576b8096aabbb49f8b78657b90a4b5b9a8947f6a5544311d08000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500000000071117191d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1527374a5b697f94a2b4beb39e8877614c41311e0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071a2d3d566c8196abc5bbaa927d6754433019090000000000000000001025394d5f6b8095a0b1a39b8778635b4b4b5c71869bb0c6b6a48d77624d38220d0000000000000a1f3447596f849aafbfbcab98836e5d4b3c2b1a0a000000000000000000000000000000000000000f1f2f3f4b6074766860544a3e33291c0c00000a1f34475971869bb1c4ab96816c5847331f1405000000000000031120324252677d92a7b9b49f8a76614b36210c0010253a50657a8fa5bac9b49f8a77624c42321f170c05000000060d1826324556647a8fa2b3bbaa95806b563b2b1805000000152a3f546a7f94a9bfae99846f59442f1a04000000000000000000000000000000000000031729394d62788b9fb4bbaa96816f8499afc2b49e8a76614c37271502000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a150000000a18242c2e3232323232323232323232323232323232322d3d4b6073849aa8b9b8a699836e5f4e3c2b180800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c121212121212121212121212120c0903000000000c21364a5b72879db2c7b49f8a76614c362614000000000000000000000a1e304150626d8297a19a8577625a4a3d3e53687d93a8c3c2a7927d68523d281300000000000004182a3a4f647a8fa0b2c8b59f8d7b655a4838281b0d0000000000000000000000000000000001101e2d3d4b5d6b80887d72645c4c473a2917040004182a3a566b8096abbcb49e8a76614c423120180d080200070b161e2f3e4f6071869cb1c3af9a85705746321e0a0010253a50657a8fa5bacdbaa999836e614f423329201815141619202b36434b6074859bb1c0b49f8b78634d38230e00000000152a3f546a7f94a9bfae99846f59442f1a04000000000000000000000000000000000000000b2035485a6e8398aec1b39e89798d9fb5bcab96816c584733190900000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500000718283640444747474747474747474747474747474747474747435462788a9eb4bfb3a1927d685a483625130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b171e2127272727272727272727272727211e160b0000000e24394e63798ea5b6c4af9a856f57463318080000000000000000000001132333444b6073839684766259493c2d384d62788da5b7c2ad98826d58362614010000000000000c22374b5c6e8398aabbbcab9e8878625645392b1d10060000000000000000000000000009141d2e3c4a5b657b8d9e92857a6c615847331f0a00000e23394e63798c9fb4b9a898826d604e42342b201d15131c2028323f4b5c697e93a4b5b6a5927d6752392916030010253a50657a8fa5bad7c7b3a1937e69614c473a342b2b292b2c353c4854606c8197a3b5bbaa97826d5a4935200c00000000152a3f546a7f94a9bfae99846f59442f1a040000000000000000000000000000000000000005192b3c4f647a8fa3b4b9a89d889dabbcb49f8c78634d3a29170000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500001124364754595c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5a687d92a1b3bfb39e8978625443301c0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1b2933363d3d3d3d3d3d3d3d3d3d3d3d3d3632281b0b000013283d53687d92a8c3bea9947e695439291700000000000000000000000005161d314455617580756158473b2b2035485a72879db2c7b29d88725443301c08000000000000071b2e3e4e63798b9fb4c2b8a69b85746057483b2e20190e0801000000000000000309111926313f4b5b6379899eaba39b8c8176614c37210c00000c2135495b6e8398abbcb2a0937e68604c483b36312725303539464b5d657a8b9fb4c1b29c8773604b35200b000010253a50657a8fa5bad4cabfb49f8d7f6c61584d483b403e403c494d5a627281969fb1bfb49f8b78624d3c2c190600000000152a3f546a7f94a9bfae99846f59442f1a0400000000000000000000000000000000000000000e22374b5c70859bb0c3b7a69da6b7c1ae99836e5b49351c0c0000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a150002172c4054656e727272727272727272727272727272727272727272727272728499aec4b9a89a8472604a3d2c1a06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003172939464c525252525252525252525252524b463928160300162b40566b8095abc0b9a48f7a644f3a250f00000000000000000000000000011527374657616b6056463a2a1d192b3c586d8398adc2b49f8a75604b35200b00000000000000102135495b6c8197a4b5c5b5a399837562594b3f352c201c14100e0c0b0c0d10161e212e37444b5d6579889da7b9b4ab9f8a7a654f3a25100000061a2c3d4e63798d9fb5beb49f8c7e6d6259504b443736434a4f57616a7b899ea9bab4a3927d685544311d08000010253a50657a8fa5bac3b7b2aeab9f93817669625957555455575a636b7883969fb0bdb3a1957f6a5a49351e0e0000000000152a3f546a7f94a9bfae99846f59442f1a040000000000000000000000000000000000000000081b2e3e52677c91a5b7c4b7b3b7c4b5a38f7a65503c2c19000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a150004192e44596e8387878787878787878787878787878787878787878787878787889db2c8c6b4a2937e695b4935210c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1e3346576167676767676767676767676767615746321e0900192e43596e8398aec3c5a28d77624d38220d000000000000000000000000000009192939464b564b4538291b0d152b40556a8095aabfbbaa8c76614c37210c00000000000000061a2c3d4b6175869ca7b8c1b3a1998577655d4d493c353026252321202123252832363f4b55606a7b899da6b7c3b5a395806b5d4b37220e0000000f21364a5b6c8197a3b5bbaa9f9382776c6560555a5a5460646a757f8b9ea7b9b8a79b8573604b37261401000010253a50657a8fa5bab7a59d99a1b49f97897f77706c6a696b6d7178808a99a1b0bdb5a5998372604b3c2c19000000000000152a3f546a7f94a9bfae99846f59442f1a040000000000000000000000000000000000000000001020354b6074879db2c6cbc8cbc4b09b86715d4b371e0e000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500071c31465c71869b9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9da6b7cbd1c0b49f8a79634e39230e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364c61757d7c7c7c7c7c7c7c7c7c7c7c7d75614b36210c001a2f455a6f849aafc4b9a78b76604b36210b0000000000000000000000000000000b1b293236413632281a0b0014293e54697e93a9bec8a38e78634e39230e00000000000000000e1e3246576278899eaabbbfb3a39b887a6e635a4f4b43363b38363536383b38454b515d65737f8b9ea7b7c4b6a59b8574604b3f2e1b08000000071a2d3d4b6074859ba7b7bbb49f978a817b7572706f7174798088959faab9baab9e897862554431190900000010253a50657a8fa5bab29d878499a2b1a79e948c8582807e8082868d959fa8b3bfb4a49c8776615443301e0e000000000000152a3f546a7f94a9bfae99846f59442f1a04000000000000000000000000000000000000000000081d314455697f94a8b9cdddcbb7a6927d67523f2e1c00000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500071c31465c71869bb1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b2b7c4d4d2cdbaa9947f6a553f2a1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384e63788d92929292929292929292928d78624d38220d001b30465b70859bb0c5b39e89745645321e09000000000000000000000000000000000b161e212b211e160a000012273d52677c92a7bcbaa58f7a65503a2510000000000000000003162939485a657b8c9fabb9c1b5a69d8f83786c65605452504e4c4b4c4d5054566067707a85949fa9b8c3b6a69c877762554431211000000000000f1e3245566278899da6b5beb1a89f96908987858587898e959da6b4bbb7a99f8d7c665a483727150000000010253a50657a8fa5bab29c8775849aa2b4b3ab9f9b97959395979ca4aab4bab8b3a29a867862584736261400000000000000152a3f546a7f94a9bfae99846f59442f1a04000000000000000000000000000000000000000000011426374c6176899eb4c9d7c6b29d8874604b36201100000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bfaa957f6a55402a1500071c31465c71869bb1bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdc7aa947f6a553f2a1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384e63788da3a7a7a7a7a7a7a7a7a7a28d77624d38220d001c31465b71869bb0c6b39d88735443301c080000000000000000000000000000000000030a0c160b090300000012273c51677c91a6bcbba6907b66513b26110000000000000000000b1b2b3c4b5d687e8d9ea8b6c3b7b2a0988b817a746d6765636160616265696e757c858f9ba3b4bac0b4a59c887862594737271503000000000002162838495a647a889ca4b4babab4aba89f9c9a9a9c9ea7aab3b8bcb4a69d8b7d665e4c3c2b19090000000010253a50657a8fa5bab29c87727684939ea8b3b5b0acaaa9aaacb1b5c2b9b4a79e9384766259483a2a180800000000000000152a3f546a7f94a9bfae99846f59442f1a0400000000000000000000000000000000000000000000091f3346586c8196abbcbdbaa8947f6a5544311d0800000000000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000d22374d62778ca2b7bdaa957f6a55402a1500071c31465c71869ba8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8947f6a553f2a1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384e63788da3afafafafafb2b6c3b7a28d77624d38220d001b30455a70859aafc5b49f8a75604b35200b00000000000000000000000000000000000000000100000000000014293e53697e93a8bebaa58f7a65503a2510000000000000000000000e1e2e3f4e60687c8a9da5b4c0beb2aa9f978f88827d7a78767576787b7f8389919aa2b0b5c1bbb4a29a8779635a493b2a1909000000000000000a1a2c3c4a5c647886959fa9b4bbc6bab4b1afafb1b3b9c5bcb5ab9f98887a665e4d402f1d0d000000000010253a50657a8fa5aaaa9c8772616f7e8a979ea7aeb1b4bac7bab4b2ada89e97897e736158483b2b1c0c0000000000000000152a3f546a7f94a9bdae99846f59442f1a04000000000000000000000000000000000000000000000417293a4d62788c9fa8a8a89f8a76614c3727150200000000000000000000000000000000000000000012273c51677c91a6a8a8a5907b66503b2611000000000000000000000000000000000d22374d62778ca2a8a8a8957f6a55402a1500071c31465c7186939393939393939393939393939393939393939393939393939393939393939393937f6a553f2a1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384e63788d9a9a9a9a9a9a9ca4b6b7a28d77624d38220d001a2f44596f8499aec4bbaa8c77614c37220c000000000000000000000000000000000000000000000000000000162b40556b8095aac0c5a38e79644e39240f0000000000000000000000112131424e5e6679879aa2b2b6c3bbb4aca69e9792908d8b8a8b8d9094989ea8afb4c0c1b5aa9f958476635b493c2b1d0d0000000000000000000e1e2d3e4a596275808a989faaadb3b5bcc9b9c5b8b3aeab9f998c8277645c4d4030221100000000000010253a50657a8f9595959587725d606878818991999c9fa9a3a99f9d9891898177696055463a2b1d0d000000000000000000152a3f546a7f94a8a8a899846f59442f1a0400000000000000000000000000000000000000000000000b2035495a6e839393939393816c58473319090000000000000000000000000000000000000000000012273c51677c9193939393907b66503b2611000000000000000000000000000000000d22374d62778c93939393937f6a55402a15000012273c51677d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7e7a644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22384d627884858585858585869cb2b7a28d77624d38220d00172d42576c8297acc1c8a38e79634e39240e00000000000000000000000000000000000000000000000000000417293a576d8297acc2b9a78c77614c37220c000000000000000000000003132331404c5b637684919ca4b3b7c4c5b8b3ada7a5a3a1a0a1a2a5a9aeb4b9c6c1b5b0a39b8b80746158493d2c1e0e000000000000000000000010202d3b4857616b78828a91989d9faba4a4a2a79e99928c84796d62594a3e302212030000000000000d22384d62787f7f7f7f7f7e69534e5a626c757c8387898c8e8c8a87827c756c61584b4437291b0d00000000000000000000152a3f546a7f9393939393836f59442f1a04000000000000000000000000000000000000000000000006192c3c4e63797e7d7d7d7e78624d3a2a1700000000000000000000000000000000000000000000000d23384d62787e7d7d7d7d7e78624d38220d000000000000000000000000000000000c21364b61757e7d7d7d7d7e79644f39240f00001024394d5f6768686868686868686868686868686868686868686868686868686868686868686868645c4a36220d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2034485a62707070707070707e93a8b7a28d77624d38220d0014293f54697e94a9c6bca7917c675236261401000000000000000000000000000000000000000000000000000a1f33475870859ab0c5b39e89745947341f0a000000000000000000000000051322303d4a5861727c87939da6aeb4b9c6c2bcbab8b6b5b6b7babec3c5b9b3ada39b9185796b6055473a2c1f0f00000000000000000000000002101d2b39464b5a626d767c83888a8c8f8f8d8b89847d776f645c4d483b2d201204000000000000000b2035485a626a6a6a6a6a69604f3c484d5660676e717577797774726d6660564c473a3127190b00000000000000000000000f24394e647a7e7d7d7d7d7c66503b2611000000000000000000000000000000000000000000000000000e2135495b636868686868625948341c0c00000000000000000000000000000000000000000000000c2035495a62686868686868625a4834200b00000000000000000000000000000000091e32465761686868686868645c4a36220d00000a1d30414d51535353535353535353535353535353535353535353535353535353535353535353534f4a3e2d1b07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005192b3c484d5a5a5a5a5a5a697e93a8b7a28d77624d38220d0010263b50657b90a8b9c2ad97826d5443301c08000000000000000000000000000000000000000000000000000c21374c61768b9fb4c5b09b85705b3a2a18040000000000000000000000000004121f2d3a47546067747e8892999ea8acb1b4bac7b9bab8c4b7b3afaaa79e9790857c72645c4b44372a1c0f0100000000000000000000000000000d1b29323c484d5861676d737577797a7876736e6862594e4a3e342b1d1002000000000000000005192b3c484d5555555555534f42323538454b52595460626361585d58514b4538332a1d15090000000000000000000000000d21364a5c646868686868665e4c38230f00000000000000000000000000000000000000000000000000061a2c3d494e53535353534d483b2b1900000000000000000000000000000000000000000000000006192c3c494d5353535353534d483c2b19050000000000000000000000000000000003162839464b5353535353534f4a3e2d1b07000000122330393c3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e39362d2010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2b3438454545454553697e93a8b7a28d77624d38220d000b21364b6075899eb4c8b39e8874604b35200f00000000000000000000000000000000000000000000000005182b3b52677c92aabbc3aa947f6a553f2a15000000000000000000000000000000010f1c2a36434a556068757d838990979c9fa9a3a4a5a3a2a69d99959089827b716660544a3d3127190c00000000000000000000000000000000000b161e2b353a464c5258556062646462605659534c483b362d20180d00000000000000000000000e1e2b353840404040403e3b3224202832363c36434a4c4e4c473a433c3632281f180c0100000000000000000000000000071a2d3e4a4e5353535353504c402f1c0900000000000000000000000000000000000000000000000000000e1f2c35383e3e3e3e3e37342b1d0d000000000000000000000000000000000000000000000000000e1e2c35383e3e3e3e3e3e38342b1d0d0000000000000000000000000000000000000b1b2832363e3e3e3e3e3e39362d20100000000004121d24272828282828282828282828282828282828282828282828282828282828282828282824221b100200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d192022303030303e53697e93a8b7a28d77624d38220d00091e3245566e8399aec9b8a68f7a644f3d2c1a0600000000000000000000000000000000000000000000000b203448596d8298adc8b7a58e79634e39240e00000000000000000000000000000000000c18253037444b5761686e757b8286898c8e8f8f8e8d8b8884807b756d655d514a43362d1d150900000000000000000000000000000000000000030e19202933363c37444b4d4f4f4d4b45383d37342a211a0f05000000000000000000000000000e1920222a2a2a2a2a29261f140a151d2027253035373937332a2d26211e160a04000000000000000000000000000000000f202d36393e3e3e3e3e3b382f2212000000000000000000000000000000000000000000000000000000000e1a212328282828282220190d0000000000000000000000000000000000000000000000000000000e1920232828282828282220190d00000000000000000000000000000000000000000b161e2128282828282824221b10020000000000000a1012131313131313131313131313131313131313131313131313131313131313131313130f0d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d1b1b1b293e53697e93a8b7a28d77624d38220d000216283852687d92abbcc4ad98826d5b493521110000000000000000000000000000000000000000000006192b3c4c62778a9fb4c7b29d87725b4a36210c00000000000000000000000000000000000008131c273139464b525660666c717477797a7a797776736f6b666055504c3f353025180f0200000000000000000000000000000000000000000000050b171f2127273136373a3a3836322828221f180d0700000000000000000000000000000000050b0d151515151514120c020002090b12131c202224221f1818110b0902000000000000000000000000000000000000010f1a2124282828282826231c12040000000000000000000000000000000000000000000000000000000000060c0e13131313130d0b050000000000000000000000000000000000000000000000000000000000060c0d1313131313130d0b050000000000000000000000000000000000000000000003090c1313131313130f0d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050514293e53697e93a8b7a28d77624d38220d00000c22374c61778b9fb4cab49f8c79634e3f2e1d0d000000000000000000000000000000000000000003112035495a6c8196a9babfab96816c563d2d1a07000000000000000000000000000000000000000009151d28323638454b5157546062636465636261575a55504b4437382f201c13080000000000000000000000000000000000000000000000000000040a0c12151d2022242523211e16130d0b05000000000000000000000000000000000000000000000000000000000000000000000000070b0d0e0c0a0400000000000000000000000000000000000000000000000000070d0f1313131313110f090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b111320202020200e0c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000a1f3447596f849aafbfbcab98836e5d4b3c2b1a0a00000000000000000000000000000000000003112232434d62788b9fb4c7b3a18f7a654f3a251000000000000000000000000000000000000000000000010b161e212832363b36434a4d4e4f504e4d4c4639403b363127231c1107000000000000000000000000000000000000000000000000000000000000000002080b0d0f0f0d0b09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c0e131313131313130d0b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b12131313131313110f0900000000000000000000000000000000000000080e10202020202015130d030000000000000000000000090f11202020202014110b02000000000000000000000000000000000000000000000000000000000000000006141f2628353535353524211a0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000004182a3a4f647a8fa0b2c8b59f8d7b655a4838281b0d000000000000000000000000000000000213212f404f616e8399aabbbcab99846f5d4b37220e00000000000000000000000000000000000000000000000003090c161e212625303537393a3a39383633292b26201d1509080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c1115130f0d0700000000000000000000080e1020202020201d1b140b00000000000000000000020b111320202020201a18110800000000000000000000040e1416202020202017150f0500000000010f1a2124282828282828282220180d0000000000000000000000000000000000000000000000000000000000000000000000000000000008141c202728282828282826241c120400000000000000000000000000000003111c232535353535352a28201507000000000000000004121d2426353535353529261f1406000000000000000000000000000000000000000000000000000000000000001424313a3e4a4a4a4a4a39362d1f0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000c22374b5c6e8398aabbbcab9e8878625645392b1d1006000000000000000000000000010a161e313f4c5e6a7f94a1b3c7b49f8c79644e3f2e1b0800000000000000000000000000000000000000000000000000000002090b11131c20222425252422211e1716110b08020000000000000000000000000000000000000000000000000000000000000000000000000002090b1013151719181715110c0a0400000000000000000000000000000000000000000c171f21262b2924211a0f0400000000000003111c23253535353535322f281c0e000000000000000006131e262835353535352f2c25190b0000000000000000081621282b35353535352c292217080000000f1f2d36393d3d3d3d3d3d3d37342b1d0d000000000000000000000000000000000000000000000000000000000000000000000000000008182630353d3d3d3d3d3d3d3b382f221200000000000000000000000000000011212e373a4a4a4a4a4a3f3c3325150300000000000000122230383c4a4a4a4a4a3e3b312414020000000000000000000000000000000000000000000000000000000000081831424e5360606060604e4a3d2d1a07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000071b2e3e4e63798b9fb4c2b8a69b85746057483b2e20190e0801000000000000000408141c2832414e5d667c8d9fb4bfbaa998826d5c4a362110000000000000000000000000000000000000000000000000000000000000000000070b0d0e0f100e0d0c0a0300000000000000000000000000000000000000000000000000000000000000000000000000000002090b151d2026292b2d2e2e2c2a26221f180c0a0400000000000000000000000000000005121c2a33373c403e39362d1f170c000000000011212e373a4a4a4a4a4a47443a2c1c0b000000000000021324313a3d4a4a4a4a4a444137291908000000000000041626333d404a4a4a4a4a413e3427170500071a2d3d4a4e525252525252524c483b2b1d0d00000000000000000000000000000000000000000000000000000000000000000000000008182636434b52525252525252514c402f1c0900000000000000000000000000081c2e3f4b50606060606055504333200d000000000000091d30404c516060606060534e42311f0b00000000000000000000000000000000000000000000000000000000011426364e60687575757575635b4a36210d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000102135495b6c8197a4b5c5b5a399837562594b3f352c201c14100e0c0b0d0f11181f263038454b5f687b899eabbcbdb49f8b78624d3d2d1a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a161e212731363b3e40424443413f3b37332a211f170c04000000000000000000000000041223303a474c5155534e4a3e33291c0c000000081c2e3f4b5060606060605d574a3a28140000000000000b1e31424e5360606060605a54473725110000000000000e2133445156606060606057514534220f000c21364a5b63686868686868686259483b2b1d0d000000000000000000000000000000000000000000000000000000000000000000000818263643546067686868686868665e4c38240f000000000000000000000000000e23374b5d6575757575756a61503c280f0000000000000f24384c5e66757575757569604e3b260d00000000000000000000000000000000000000000000000000000000081c304354687e8a8a8a8a8d79634e3b2b19050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000061a2c3d4b6175869ca7b8c1b3a1998577655d4d493c353026252321202224262a3436434b56606b7d8b9ea7b8c0b09e927d685a48351f0f000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c1214161819181715110d0b0500000000000000000000000000000000000000000000000000000009141d28323638454b5053555759585755504c473a37332a1f170c0000000000000000000000122330414d5861666a68645c4c473a29180800000e23374b5d657575757575726857442f1b06000000000011263a4e606875757575756f6554412c1803000000000014283d51626b75757575756c63513e2915000e24394e63797d7d7d7d7d7d7d776259483b2b1d0d000000000000000000000000000000000000000000000000000000000000000008182636435460727c7d7d7d7d7d7d7c66513b26110000000000000000000000000114263750657b8a8a8a8a8a7f6a553d2d1a07000000000316283951667c8a8a8a8a8a7e69533b2b18050000000000000000000000000000000000000000000000000000000b20354b6073879c9f9fab97826d594834200c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000e1e3246576278899eaabbbfb3a39b887a6e635a4f4b43363b383635373a3c3a474c5460677580929fa9b8c2b3a296816c604e3c2b1901000000000000000000000000000000000000000000000000000000000000000000000000060b0d181f2227292b2d2e2e2c2a262220180d0b0500000000000000000000000000000000000000000000021019263138454b52566065686a6c6e6d6c6a666158534c473a33291c120000000000000000000b1b30414d5f67767c807e796d615847362614010010253a50657a8a8a8a8a8a87725d47321d08000000000013283d53687e8a8a8a8a8a836f5a442f1a050000000001162b40566b808a8a8a8a8a816c57412c17000b21364b60758592929292929286776259483b2b1d0d0000000000000000000000000000000000000000000000000000000000000818263643546072829292929292928879634e39240e000000000000000000000000081d3144556c81979f9f9f9c86715b4a36210c00000000091e3245576e83989f9f9f9a8570594834200b0000000000000000000000000000000000000000000000000000081c2e3f51677c91a5b6b5b49f8b78624d3a29170400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000003162939485a657b8c9fabb9c1b5a69d8f83786c65605452504e4c4b4d4f5154596168737d87969eb4babfb3a49a8473604b42311e0e0000000000000000000000000000000000000000000000000000000000000000000000040e1920232a33373c3e40424443423f3b37342b2220190d05000000000000000000000000000000000000000513202e37444b5660686e757b7e80828383817f7b77706961584c463a2f1c1308000000000000031729394d5f677d899195938e8276615443301c080010253a50657a8f9f9f9f9c87725d47321d08000000000013283d53687d929f9f9f99846f5a442f1a050000000001162b40566b80959f9f9f96816c57412c1700091e3245576075849aa2a7a7a49c86776259483b2b1d0d0000000000000000000000000000000000000000000000000000000008182636435460728298a0a7a7a69e8879635b4a36210c0000000000000000000000000b20354b6074889eb3b5b5a48e79634e392310000000000b21364b6075899eb4b5b59f8c77624d37220e00000000000000000000000000000000000000000000000000000e23374b5d70859bb0c3cebbaa96816b5846331f0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000b1b2b3c4b5d687e8d9ea8b6c3b7b2a0988b817a746d67656361606264666970777d86929da5b0bcbcb0a199867661554431231300000000000000000000000000000000000000000000000000000000000000000000000c181f2b35383a474c5154565859585754514d483b37342b20190d0000000000000000000000000000000000081623303e4b556068757d83899093959799989694908b857e766b61584c403025180900000000000a1e334657677d919ea7aaa8a0988473604b35200b0010253a50657a8fa5b5b29c87725d47321d08000000000013283d53687d92a8b5af99846f5a442f1a050000000001162b40566b8095abb5ac96816c57412c17000316283945576075849aa2b4b6a49c86776259483b2b1d0d000000000000000000000000000000000000000000000000000008182636435460728298a0b2b8a69e8879635b4a3d2d1a0700000000000000000000000215273750657b90a6b8cbc2aa95806b553e2d1b0700000317293952677c91a8b9cdbcab937e69543c2b1905000000000000000000000000000000000000000000000000071a2d3d50657b8fa3b5c9d8c8b49e8976614c38281602000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000e1e2e3f4e60687c8a9da5b4c0beb2aa9f978f88827d7a78767577797b7f858b929ba3b2b7c3bab49e9683766158473726140500000000000000000000000000000000000000000000000000000000000000000002141d2a343c484d55586167696b6d6e6d6c6a666259554d483b342b1d1402000000000000000000000000000006162633414d5c64737d8892999ea8a8aaacaeadacaaab9f9b93898076665e4a4336271909000000000c21364c6176889eb3b8c5beb2a2937e69533e29140010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c1700000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d00000000000000000000000000000000000000000000000008182636435460728298a0b2b8a79e8879635b4a3d2d1f0f000000000000000000000000081d3144556d8297acc4d5c7b29c87725c4a36220800000a1e3346576e8399aec6d7c9b09b85705a4835200b0000000000000000000000000000000000000000000000000c21364a5b6f8499afc1ccc9ccb9a8947f6a5645321e08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000112131424e5e6679879aa2b2b6c3bbb4aca69e9792908d8b8a8c8f91949a9fabb1b5c1bbb4a99f9280736158473a29190900000000000000000000000000000000000000000000000000000000000000000009151d323b474c5a626a70777c7e80828383817f7b77716a62594d483c321d150a0000000000000000000000000314243344505f677a86929da6aeb4b9c6c8bbb4bbc8c9bcb5b0a89e95887c6b6054443727150200000011263b50667c90a6b8cbd5cfc0af9a846f5a452f1a0010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c170000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d0000000000000000000000000000000000000000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f010000000000000000000000000b20364b6075899eb3c8decab6a58e79644f36251300000c21364b61768a9fb4c9dec8b4a38d78624d38220e000000000000000000000000000000000000000000000005192b3c4e63798ea1b3c6b9b4b9c6b39d8875604b362614010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000003132331404c5b637684919ca4b3b7c4c5b8b3ada7a5a3a1a0a2a4a6a9b0b4bcc9bfb3aa9f978a7d6b6055463a291c0c0000000000000000000000000000000000000000000000000000000000000000000b192731424f59616c787f858b9193959799989794908c8680786d625a4f4232281a0a00000000000000000000001121324250626b7d8b9ca4b2b7b9b4ada7a3aa9faaa2a6acb4bab9b4a69d908072605544311d14010000152a3f546a7f94a9c5d5e7ddc8b39e88735e49331e0010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c17000000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d000000000000000000000000000000000000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f010000000000000000000000000215283850667b90a7b8ccc9ccc3ab96816b5443301c070417293a52677d92a9baccc9ccc1a9947f69543c2c1906000000000000000000000000000000000000000000000b2035485a6d8298adbfb9a89ea8b9b8a6937e685443301c080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000000051322303d4a5861727c87939da6aeb4b9c6c2bcbab8b6b5b7b9bbbec4c2b6b1aba1998c8278685f4b4437291c0c0000000000000000000000000000000000000000000000000000000000000000000b1b2837444b606977818b949b9faba9abadaeadaca9a6a39b958b827869604b4538281a0a0000000000000000000c1c2f3f4f606b80929fa9b6bab4a89e98928e8c8a8b8d91979fa9b3b8b7b39e968273604b43321f0f000013283d52687d92a7becfdfd7c6b19c86715c47311c0010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c1700000000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d00000000000000000000000000000000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f0100000000000000000000000000091d3245566d8297adc5b9b3b9c5b29d8873604a35200b0a1f3347586f8499aec5b9b3b9c5b09b86715a4935200c00000000000000000000000000000000000000000004172a3a4d62788b9fb4b9a89e899eb4c1b29c8773604b3520110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000004121f2d3a47546067747e8892999ea8acb1b4bac7b9bab9c4b7b2afa9a49c968e83796d62594e413126190c000000000000000000000000000000000000000000000000000000000000000000031628394655606d7e8a969fa9b0b4bcc8bbb4b3b8c5bac2b5b1aa9f978a7e6d605645382818080000000000000004182a3a4b5d697e939eb4bab6a99f9589837c78767575777c828a959ea7b5bcb0a097816d614f3d2d1a07000e23394e63798ea0b2c1cac7baa897826d57422d180010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c170000000000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d0000000000000000000000000000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f0100000000000000000000000000000b20364b6075899eb3b9a79ea7b6b7a68f7a654f3726140c21374c61768a9fb4b8a79ea7b9b5a38d78634d38230f0000000000000000000000000000000000000000000a1f3347586c8196aabbb49e8a7b90a3b4b6a4917c67513f2e1c0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000010f1c2a36434a556068757d838990979c9fa9a3a4a5a4a3a69d9a948d87807a6e635b4d483b311d140900000000000000000000000000000000000000000000000000000000000000000002101e324657617381939ea8b4bab6b1aaa5aa9f9ea7a2a5aab2b7bbb4a89e938274605645362614010000000000000a1f334758657b8c9fb4bcb4a49c8b80766e676361586062666c777f899ca4b3beb19f947f695b4a36210c000c21364a5b6d8298a3b1b4b3a99f8a78634d38230e0010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c17000000000000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d000000000000000000000000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f0100000000000000000000000000000316283851667c91a7b9b39e899ca5b6ac97816c5544311d182a3a53687d92aab8a79e899eb3c1aa947f6a553d2c1a0600000000000000000000000000000000000000031628384c61768a9eb4bbaa968170859bb0c3b09b85705d4b37230f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000000000000000c18253037444b5761686e757b8286898c8e8f8f8e8d8b88847e78726b645c4e493d342b1d130100000000000000000000000000000000000000000000000000000000000000000000102032434b617584979fb4b9b6b1a49c958f8c8a898b8d90949da5b0b5b9b4a0988474605443301c0e000000000005192b3c4c6177899eaabbb4a39b86786b6157524e4c474b4d5159616a78869aa2b3beb49f8b79634e39240e00071a2d3d4c617685959b9f9e998b7d675a4935200c0010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c1700000000000000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d00000000000000000000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f01000000000000000000000000000000091e3245566d8398adc3aa9580879cb2b39e8874604b35201f3447596f849aafb39e897f94abbcb19c86715b4935210c00000000000000000000000000000000000000091e3245566a7f94a8b9b49f8b78667c91a5b6b5a38f7a65503d2d1a07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000000000000000008131c273139464b525660666c717477797a7a797876736f69635b564f4a3e362c20190d0000000000000000000000000000000000000000000000000000000000000000000000071b2d3e4f616e8298a2b1bdb1a49c9186807a76757376787a7f87909ba3b1beb2a2998372604b3c2b1905000000000b2034485a6b8196a7b8b7a69b8476635a4c463939373336383a474c5a6276839aa4b4ab9f97856f5a45301a00000f1f33475861747f868a888379675f4d3c2c19060010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c170000000000000000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d0000000000000000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f01000000000000000000000000000000000b21364b6075899eb4b6a58e7a8095aab8a6907b6550382822374c61778b9fb4ac9781778c9fb5b5a48e79634e39230f000000000000000000000000000000000000011426374b6075889eb3c0ad98826d6073879cb2c1af99846f5b4a36210e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000009151d28323638454b5157546062636465646361575a544e493d39362d211a0f050000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c697f94a0b2bcafa097867c736b656160566063656a737b85979faebbb2a1947f6a5a4835200b000000001325364d62788b9fb4bcab9d88776158493c332923211f20222a343c48586174869ca29a8d8277624d37220d000004172a3a4755606a7175736e635b4d41301e0e000010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c17000000000000000000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d000000000000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f01000000000000000000000000000000000316283951677c91a8b9b29c8772798ea4b5ad97826d5645322b3b53687e93aab8a6907b70859ab0c2aa95806a553d2d1a070000000000000000000000000000000000081d314455687e93a6b8b4a28e796454697e93a7b8b3a18e79634e3c2b19050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000010b161e212832363b36434a4d4e4f504f4e4b46393f38352c24221b100600000000000000000000000000000000000000000000000000000000000000000000000000071b2d3e4f647a8c9fb4beaf9e958274676054504c4a454b4d505460667482949daeb3a79e8a77624d38220d000000071c3043546c8197a9bab59f8d7a6559473a2c1e170e0c0a0b0d181f2b3a4656647a8c91847a6d62594834200b0000000c1c2a37444b55566056594e4a3d30231300000010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c1700000000000000000000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d00000000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f010000000000000000000000000000000000091e3246576e8398aec3ab95806b71869cb1b39e8975604b3634485970859aafb39d8874697e93abbcb19c87725b4a36210c00000000000000000000000000000000000b20354b6074879cb2c2af9a846f5c4b6075889eb3bfad98826d5a4835200c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000003090c161e212625303537393a3a39383632292923211a0f0d070000000000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c6f8399aabbb2a095806d60564a4336373532363836434b56606d7f94a0a199897c665a4835200b0000000b20354a6074889db3c2ae99836e5d4b3b2a1c0e030000000000040e1b29384a5c697e7c6f645c4d483b2b1805000000000c1927313638454b453839362d1f130500000010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c170000000000000000000000000a1b283945576075849aa2b4b6a49c86776259483b2b1d0d0000000008182636435460728298a0b2b8a79e8979635b4a3d2d1f0f010000000000000000000000000000000000000c21364b61768a9fb4b6a58e79646a7f94aab9a7917c665139374d62778b9fb4ac96816c62778c9fb5b6a48e79634e39241000000000000000000000000000000000081c2f3f51677c91a5b6b6a4907b665045576b8095a9bab49f8b78624d3a2a170400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000000000000000000000000002090b11131c20222425252423211e16140e0c060000000000000000000000000000000000000000000000000000000000000000000000000000000000021528384f647a8fa1b3b8a698826d624b4538302521201e2123263038454b616e8298928377665e4d3c2b19050000000f243a4f647a8fa6b8b6a48e79644e3f2e1d0c0000000000000000000b1a2e3e4f6169665e4e4a3e342b1d0d00000000000009151d20283236322823211a0f010000000010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c17000000000000000000000000000a1b283945576075849aa2b4b6a49c86776259483b2b1805000001142636435460728298a0b2b8a79e8979635b4a3d2d1f0f010000000000000000000000000000000000000317293952677c91a8bab29c87725c63788da3b5ad98836e57463c54697e93abb7a68f7a655970859bb0c2aa95806b553e2d1b070000000000000000000000000000000e23374b5d71859bb0c3b19c8673604a394c62778a9fb4bbaa96816c5847331f0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000000000000000000000000000000000000000000070b0d0e0f100f0e0c0a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091d3245566e8399aebfb39d8875614b4432281c130c0b090b0e141c2832434b6175867d6f62594d40301e0e00000000162b40556b8095aac4b19c87725c4a3621100000000000000000000000102032424f54514c40362d20180d000000000000000002080b151d201d150e0c0700000000000010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c1700000000000000000000000000000a1b283945576075849aa2b4b6a49c867762594834200b0000081c30435460728298a0b2b8a79e8979635b4a3d2d1f0f01000000000000000000000000000000000000000a1e3346576e8399aec3ab95806b565b71869bb0b49f8a76614b485a70859bb0b29d88736054697e93abbcb29c87725c4a3622080000000000000000000000000000071a2d3e50657b90a3b5b7a6927d6854433447596d8297abbcb49e8a76614c38281602000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20364b6075899fb4b9a8937e685746331e16141414141414141414151e334657617468604c473b30221200000000041a2f44596f8499aec1ab96816c563e2d1a020000000000000000000000021424323b3e3c382f221b100500000000000000000000000002090b090200000000000000000010253a50657a8fa5bab29c87725d47321d08000000000013283d53687d92a8bdaf99846f5a442f1a050000000001162b40566b8095abc0ac96816c57412c170000000000000000000000000000000a1b283945576075849aa6b7b6a49c8677624d37220d00000b20354b60728298a0b2beb39e8979635b4a3d2d1f0f0100000000000000000000000000000000000000000c21364c61768a9fb4b6a58e79644f54697f94abbaa8917c67524d62788da3b4ab96816b544d62788c9fb5b6a58e79644f36251300000000000000000000000000000d21364a5c6f8499afc1b39d8875604b362a3b4e63798c9fb5b9a8947f6a5645321e08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000000000000070d0f0e0c07000000000002090b12100a010000000000000000000000000000060c0e0e0e0e0b080100000000000000000000000000000003090b0d0d0d0d0d0b0902000000000010263b50657b90a8bab49e8975604b3929292929292929292929292929292939465460544e42342a2220190e000000061c31465b71869bb0bca7927c67523d27120000000000000000000000000006141f272926241d12070000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29d87725d48321d00000000000013283d53687d92a8bdaf9a846f5a452f1a050000000001162b40566b8095abc0ac96816c57412c17000000000000000000000000000000000a1b283945576176889db3c2b6a49b86705b46311b0600152a3f556a7f94a0b2bebaa5907b655b4a3d2d1f0f0100000000000000000000000000000000000000000417293a52677d92a9bab29d87725c4a4d62788c9fb5ae99836e5854697f94a9b6a58f7a644f485a70859bb0c3ab96806b5443301c0700000000000000000000000005192b3c4e64798ea1b3b9a8947f6a5645322135495b6f8499aec1b39e8875604b362614010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000000000000101b222423211a0f0100000a151d2027251e13040000000000000000000000010f1a2123232323201d1409000000000000000000000000000a161e212222222222201d150a00000001162c41566b8196abc6ad98836e56453f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f36434a43363f3f3f38352b1e0e0000081e33485d73889db2baa5907a65503b25100000000000000000000000000000020c1214110f0900000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab39e88735e3a291704000000000013283d53687d92a8bdb09b85705b46301b000000000001162b40566b8095abc0ac96816c57412c1700000000000000000000000000000008182536435460728197a6b7b9a79e897a644f39240f00000c21364b6175849ba2b4c0b19c86776159473b2a1d0c00000000000000000000000000000000000000000a1f3347586f8499aec3ab96806b563e485a70859bb0b49f8a76615b71869bb0b29d87725c4a3c54697e94abbcb29d8773604a35200b0000000000000000000000000b2035485a6d8298adbfb49e8a76614c38281a2c3d50657b8fa3b5b8a6937e685443301c080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000008131c2d363939362d1f0f000a1a2832363c39301f170c000000000000000000000f1f2c3538383838353126190900000000000000000000000a1a28323638383838383631271a0a0000051a2f455a6f849aafbda8937e685454545454545454545454545454545454545454545454545454544d483c2b1905000a20354a5f758a9fb4b8a38e79634e39240e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bab49f8a745846331f0a000000000013283d53687d92a8bdb19c87715c3b2b18050000000001162b40566b8095abc0ac96816c57412c170000000000000000000000000000081825364354607281979fb1b9a79e897a645c4a36220d00000a1e3346576175849ba2b4b6a49c86776159473b2a1d0c000000000000000000000000000000000000000c21374c61768a9fb4b7a58e79644f393c54697e93abbaa9927d6863788da3b5aa95806b553e384d62788c9fb5b7a58f7a644f362614010000000000000000000004172a3a4d62788b9fb4bbaa96816c5847331a0f23374b5d71869bb0c3b29c8773604b3520110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000000000c1825303e4a4f4e4a3d2d1b0a152838454b524d4133291c100300000000000000061a2c3d494e4e4e4e4b443726140100000000000000000003162838454b4d4d4d4d4d4b453827150200071c31475c71869cb1bba5907b69696969696969696969696969696969696969696969696969696969625a4835200b00091f34495e74899eb3b9a48f7a644f3a250f000000000000000000000000000000050b0d0b070000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5babbaa8b76614c36210c000000000013283d53687d92a8bdb39e8873594834200b0000000001162b40566b8095abc0ac96816c57412c1700000000000000000000000000081825364354607281979fb1b8a79e897a645c4a3e2d1b0700000317293946576175849ba2b4b6a49c86776159473b2a1d0c000000000000000000000000000000000004182a3a53687d92aabbb29d87725c4a36374c62778b9fb4af99846f6a7f94aab6a48e79634e3935485a70859bb0c3ab96816c5443301c08000000000000000000000a1f3347586c8196aabbb49f8b78624d3a2917081c2e3f52677c92a5b7b6a5917c67513f2e1c0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000000c1d2a36434a5c64635b4a3928161d32455660675f4c473a2e2110000000000000000c2135495b63636363605544311d0d000000000000000000091e324556606262626262605645311d0900091e33485e73889db3c0ab96807e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7f78624d38220d00071d32475c72879cb1bba6917b66513c261100000000000000000000000000000d181f22201c13080000000000000000000000000000030a0c100e0c06000000000000000010253a50657a8fa5bac8a5907a65503b25100000000000142a3f54697f94a9beb8a68c77624d37220d0000000002172d42576c8297acc1ac96816c57412c17000000000000000000000000081825364354607281979fb1b8a79e897a645c4a3e2d2010000000000b1b293946576175849ba2b4b6a49c86776159473b2a1d0c000000000000000000000000000000000a1f3347586f849aafc3ab96806b563e2d34485970859aafb49f8b7771869cb1b19c86715b4a362b3c54697e94a9c1b29d8874604b35200b000000000000000000031628394c61778a9fb4c0ae98836e5a49351c0c001120354b6074879db2c3b09b85715d4b37230f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000004182a3b475460697979635745321e30404b60747c6e61584b3f2e18080000000000000e23384e637978787873604b3c2b190500000000000000000b21364b6075787777777874604b36200b000a20354a5f758a9fb4cab09e96949494949494949494949494949494949494949494949494949494917b66513c261100051b30455a70859aafbea9937e6954382816030000000000000000000000000d1d2a343735302518110600000000000000000000060b171e21252320190e0b01000000000010253a50657a8fa5babfa9947f6a543d2c1a0600000002172c41576c8196acc1c5a6917c665139281603000000051a2f445a6f8499afc0ab95806b56402b160000000000000000000000081825364354607281979fb1b8a79e897a645c4a3e2d20100200000000000b1b293946576175849ba2b4b6a49c86776159473b2a1d0c0000000000000000000000000000000c22374c61778b9fb4b7a58f7a644f3a242b3b53687e93aabbaa937e798ea4b5aa957f6a553d2d22384d62788da3b5b7a68f7a6550372614010000000000000000091e3245576a7f95a8bab4a28f7a644f3c2c190000081d314455697e94a7b9b5a3907b65503d2d1a07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000b1f34475961727f8a8675604b41303c4c5e6c81918376655d4b3625130000000000041a2f44596f848d8d8d7e695a48342012000000000000000011263c51667c8d8d8d8d8d7a644f3a240f000a1f34495f74899eb4c9bcb0aba9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a6917c66513c27110003182d43586d8298adc8ae99846f5645321e0a00000000000000000000000a1a2a3b474c4a43362e211a0e00000000000000000e19202933363a38352c251e13050000000010253a50657a8fa5bac5b09a85705b4935211000000004172a3a596e8399aec3c2ac97826d5746321e0d000000071b2e3e5c71879cb1bea9947f69543f2a1400000000000000000000081825364354607281979fb1b8a79e897a645c4a3e2d201002000000000000000b1b293946576175849ba2b4b6a49c86776159473b2a1d0c0000000000000000000000000005182a3b53687e93aabbb29d87725c4a362222374c61778b9fb4af9a848095aab5a38d78634e38232035485a70859bb0c4ac97816c5544311d0800000000000000011426374b6075889eb3c2b09a85705c4a361e0e0000011527374b6176899eb3c1af99846f5c4a36210e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000c22374c617783949f97816c5f4d3c485a667c919f98877b655443301c07000000000010253a4f657a8fa29e8a78624d40301b0b0000000000000011263c51667b91a2a2a28f79644f3a240f00081d32475d72879cb2c7c2b5b1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab4bbc8baa48f7a654f3a2510000012283d52677d92aabbb49f8a75604b382816020000000000000000000215283847596260544b3f352c1f160800000000010f1e2b3539464b4f4d493c3a3123160800000010253a50657a8fa5bac8b4a28d79634e3f2e1d0e0300081f33475871869bb0c6c9b49e8975614b3b2b1a0c02000b22364a5c74899eb4c7a8927d68533d2813000000000000000000081825364354607281979fb1b8a79e897a645c4a3e2d2010020000000000000000000b1b293946576175849ba2b4b6a49c86776159473b2a1d0c0000000000000000000000000b1f3448596f859aafc3ab96816b563e2d1b1f3347586f8499afb59f8d889db3b19b86715b493521192b3c54697f94a9c1b39e8874604b35200b00000000000000081d314455697e93a7b8b6a4917c66513e2e1b00000000091e3346576b8096aabbb3a18e79644e3c2b19050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000152a40556a7f95a1b49f917d675a48556278899eb3a59b8675604a35200b00000000000e23374b5d70859aa899836e5e4c3929160300000000000011263c51667b91a6b7a48f79644f3a240f00061b30455b70859ab0c5b5a49c959595959595959595959595959595959595959595959faabbc5a28d78634d38230e00000c21374c61768b9fb4baa8937e695645321e14040000000000000004131d324556627773655d4e493d342616040000000f1f2d3c484d576165635a524e4134261603000010253a50657a8fa5bad1c0ac97826d5d4b3b2c1e17141828394c61778b9fb4caccb9a8947e69594838291d15141b2b3c4f647a8fa8b9baa98f7a644f3a250f0000000000000000081825364354607281979fb1b8a79e897a645c4a3e2d20100200000000000000000000000b1b293946576175849aa2b4b6a49c86776159473b2a1d0c00000000000000000000000d22374c62778b9fb4b7a58f7a644f3a2410182a3a52687d92a9baab9f9da6b7a9947f6a543d2c1a0e23384d62788da3b5b8a6907b6550372715010000000000000b20354b6074879db2c5b19c8773604a35201000000000031729394d62788b9fb4bfad98826d5a4835200c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000b20354b6073859ba8b39e897862556073849aa7b49e8a78635443301c070000000000081c2e3f51667b90a4a1917c665746321e1000000000000011263c51667b91a6b9a48f79644f3a240f0003182e43586d8398adc9b19c86808080808080808080808080808080808080808080808b9fb4b8a78b76614b36210c00000a1f33475870859ab0c1b39d8875604b41321f180c07000000060b171f31404b607486867b6e635b514434210e000009192d3d4a5a626f767a787368605145342111000010253a50657a8fa5bacfcab59f8d7b6559493c3329292a364557697e93aabbc5b8b3b49e8a776256473a3127292d39495a6c8196acc6b49f8a75604b36200b00000000000000081825364354607281979fb1b8a79e897a645c4a3e2d201002000000000000000000000000000b1b293946576175849aa2b4b6a49c86776159473b2a1d0c00000000000000000005192b3b53697e93abbcb29d8773604a35200b0c21364c61768a9fb4bcb5b3b7b4a38d78624d38230f0b2035485a71869bb0c4ac97826c5544311d080000000000081c2f3f52677c91a5b6b8a6937e685443301c0700000000000b203448596d8298adc0b49f8b78624d3a2a170400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000000081d31445563788a9eb4a79b8573606b8095a2b19f927d675a49362513000000000000001120354a6073869cb19d8775614b3e2d1808000000000011263c51667b91a6b9a48f79644f3a240f000013283d52687d92abbcb29c87726b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b788daabbb39e89735746331e0a000004172a3a52677c91a3b5b7a697816c5f4f42342a211a17151619202933424e5e6b80969b8f83796b62513d291400011426374a5b6378848b8f8d887d6c63513f2f1c080010253a50657a8fa5bad4cabcab9d8778635a4c46393e3b47546075889db2c6b8a79ea7a89a847461584b45383e3d4a5762788b9fb4c5af9a85705645311d09000000000000081825364354607281979fb1b8a79e897a645c4a3e2d2010020000000000000000000000000000000b1b293946576175849aa2b4b6a49c86776159473b2a1d0c00000000000000000b2034485970859ab0c3ab96816b5443301c070a1f3346586e8399aec7cac8c9b09b85705a4935200b06192b3c54697f94a9c1b39e8874604b35200b00000000000e23384c5d71869bb0c3b39e8875604b36251300000000000005192b3b4e64798ea2b3bbaa96816c5847331f0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000000000001152737495a677d92a0b2a395806b7b8d9fb4a497826d5f4d3c2c180800000000000000071c304354677d92a5a696816b5c4a362614010000000011263c51667b91a6b9a48f79644f3a240f00000d22374c62778b9fb5b6a58e7963555555555555555555555555555555555555687e93a8c8ae98836e59392917030000000c20354a6072869bb1beb19f927d69604c473b362d2c2a2b2b353a464c60687c8c9fb0a1998c806b56412b1600081d31445563798a9a9faba79e92816c5d4c38230e0010253a50657a8fa5bac3b7b2b0a59c86786961575654555962728298a6b7b9a89e889ea8a29a83766760565554565b6375859ba9bab8a7927d6852382715020000000000081825364354607281979fb1b8a79e897a645c4a3e2d20100200000000000000000000000000000000000b1b293946576175849aa2b4b6a49c86776159473b2a1d0c000000000000000d22374d62778c9fb5b7a58f7a644f362513000417293a52677c92a9bacdcfbcab947e69543c2b1906000e23384d62788da3b5b8a7907b665038281502000000071b2d3e50657b90a3b5baa9957f6a5645321808000000000000000d21364a5c6f849aafc2b49f8a77614c38281603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000000009192c3c4d5f6d8298a5b49f8d7c889daba99c8675604b41301e0e0000000000000000001325364b6074879db29f8c7a645443301c0d0000000011263c51667b91a6b9a48f79644f3a240f00000b1f34485971869bb0c3ad98826d5c4a3a4040404040404040404040403a4c5e71869bb1bfa8927d68533d281300000000071c304354667b90a0b2bdb49f8c7e6d61594e4a3d4140403c484d58616b7e8c9faabbb3a3947f6a543f2a15000b20354b6075859ba8b5bcb8b39f907b65503b26100010253a50657a8fa5bab7a59d9ba3a49c8a7f766e6b696a6e778398a0b2c4b49e8a788a9fb4a19a887d756d6b696b7079859ba3b5c0b39e8875604b36210b0000000000081825364354607281979fb1b8a79e897a645c4a3e2d201002000000000000000000000000000000000000000b1b293946576175849aa2b4b6a49c86776159473b2a1d0c000000000006192b3c54697e94abbcb29d8773604a35200b00000c21364b61768a9fb4c9cab59f8c77624d37220e00000b2035495a71869bb0c5ad97826d5645321d090000000d22364a5c6f849aafc1b49f8a77614c3828160000000000000000071a2d3d50667b90a4b5baa8957f6a5645321e09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000000030a0e1a2130414c6176879daaab9f929da6b49f8a7963574532201c13080600000000000000081d314455697e93a6aa9b8573604b3b2b180500000011263c51667b91a6b9a48f79644f3a240f000005182a3b53687d92a5b6b49f8c7a6458473a2e2b2b2b2b2b2b2b2b2b394658667b90a3b5b3a18c77624d37220d00000000001325364c5e6d8298a3b5bbaa9f9382776a635b59575556585a626b7681939faabbb8a69b8573604b35200b000f253a4f647a8fa3b5c6cfccbdae98836e59432e190010253a50657a8fa5bab29d87859ba7a89f948a83807e80838b99a1b2beb7a6947f6a7f95a2b3a69d928982807e80858d9ba3b5c1b4a2947e695645321e0900000000081825364354607281979fb1b8a79e897a645c4a3e2d2010020000000000000000000000000000000000000000000b1b293946576175849aa2b4b6a49c86776159473b2a1d0c000000000b2035485a70859bb0c4ab96816b5443301c0700000a1e3246576e8398aec6c8af9a8570594834200b000006192b3c546a7f94a9c1b39e8975604b36200b000006192b3c4f64798ea2b3bcab97816c5847331a0a0000000000000000000f23384c5e71869cb1c4b39e8875604b372614010000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0000000b171e212c35383d4957647a8c9fb4b4a7b3b4a2937e685b4a3e3a35302520190e000000000000011527374b6075889eb3a3937e69594834201200000011263c51667b91a6b9a48f79644f3a240f0000000d20354b6074879cb2bcab9d877661584b3e362c2725242629333c48576176889db2bcab99836e594834200b000000000008182f404b6074859ba6b5bbb49f97898079726e6c6a6b6d71788189969eb4bbb8a89e8878625544311d080014293e53697e93a8c1d2e3ddc7b29d87725d48331d0010253a50657a8fa5bab29c8778899ea9b4a99f99969395999fa9b3bfb8a89d88756173849ba4b3b3a79e989593959a9fabb5c1b5a59a8473604b38281602000000081825364354607281979fb1b8a79e897a645c4a3e2d20100200000000000000000000000000000000000000000000000b1b293946576175849aa2b4b6a49c86776159473b2a1d0c0000000d23384d62788da3b4b7a68f7a644f3625130000000316293951677c91a8b9bbaa937e68533b2b18050000000e23384d63788da3b5b9a7917c665138281603000b2035495a6e8398aaaaaa9f8c78634d3a2a1800000000000000000000091c2f4052687d92a6aaaaa7937e685544311d080000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000b1b2933363d494e555b636a718196acc1bcc5af9a85726b645c564f4a4336352c1e0e000000000005192b3b495b6a7f94aab49e8a77624d402f1c09000011263c51667b91a6b9a48f79644f3a240f000000081d314455677d92a1b3b7a59b8576645c4e493d3c3a3a3b3a464c5a6275849aa6b7b59f8c79644e3b2b1805000000000000121e3245566277889ba3b2beb1a89e958e8783817f8082868b969ea8b0bcb4a69e8a7a645a48372715010014293e54697e93a9c1d2e4ddc8b29d88735d48331e0010253a50657a8fa5bab29c87727c8b9da5b4b4aeaba9aaaeb4babfb2a79e8a7a645761768699a1b2b7b3adaaa9abafb5bcbab4a49c8778625443301a0a000000001325364354607281979fb1b8a79e897a645c4a3e2d201002000000000000000000000000000000000000000000000000000b1b293946576175849aa2b4b6a49c86776159473b2a1804000215283854697f94a9aaaa9d8873604a35200b000000000b21364b6075899eaaaa9f8b77614c37220d000000000c2035495a71869baaaaaa98836d5645321e09000d23384d62788b9595959595836e5b49351c0c00000000000000000000001120364b60748895959595958775604b35200b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d0003172939464c555b636a71787f86969fb0c4d1c8b4a29a87807a726b6460544d493c2c1906000000000b203448596379859bb1b9a899836e5e4c38240e000011263c51667b91a6b9a48f79644f3a240f000000011527374b60738499a5b6b5a39b867a6d635b5651504f515458616a78849aa2b4b7a698836e5c4a361d0d0000000000000002162838485962788598a0b2b6b9b4aaa59c98969595979c9fabb4b9b9b3a29a887a645c4b3c2b1909000010253a4f657b8fa3b5c6d1cdbdae99836e59442e190010253a50657a8fa5aaaa9c8772667a87989fa9b0b3b8c5bcb5b1aca199897b655c4a58617683929da6aeb3b8c4c7bab4afa99f958677625a4836261400000000071c304354607281979fababa79e897a645c4a3e2d2010020000000000000000000000000000000000000000000000000000000b1b293946576175849aa2ababa49c8677615947341f0b00091d32455671869595959595816c5443301c0700000000091e3245566d8295959595846f5947341f0b0000000006192c3c546a7f94959595958976604b36210b0010253a4f657b7f7f7f7f7f7f79634e3c2c19000000000000000000000000091d314556667c7f7f7f7f7f7f78624d37220d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000a1e334657616a71787f868d949ba3b0bdcad4cec0b4a59d968f87817a736b635a4935200c000000011527374d6278889ba3b5c6b2a1907b66513c2b19060011263c51667b91a6b9a48f79644f3a240f00000000091c3043546176879ca8b7b5a49c8c8279706b67656466696e767f8a9ba2b4baa99d8878624d3e2d1a0000000000000000000a1a2b3b485a627583929da5b2b6c3b6b2aeacaaabadb1b4bcb7b3a79e948478645c4b3e2e1e0e0000000b20354b6073859ba8b4c0b9b49f907c66503b26110010253a50657a8f9595959587725c6477828a949b9ea7a3ab9f9c968e8378655d4b3e475861727d8891999da6a3a3a99f9a938a7f746259483c2b1808000000000b20354a607282969696969696897a645c4a3e2d20100200000000000000000000000000000000000000000000000000000000000b1b293946576175849596969696968677614c37220c000b20364b60747f7f7f7f7f7f79634e3625130000000000021628384e647a7f7f7f7f7b654f3b2a180400000000000e22374d62787f7f7f7f7f7f78624d38220d000e22374b5d656a6a6a6a6a6a635b4a361e0e000000000000000000000000021527384c5e666a6a6a6a6a6a62594834200b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000c21364c61767f868d949ba3aab1b2abb2b6c3bbb4aab1b2aba59d968f878078634d38230e000000081d3144556d8297a6b5c1cfbfb09b85705a4935200b0011263c51667b91a6b9a48f79644f3a240f0000000001142636475863798a9da5b4b6ab9f978e85807c7a797b7e8389949ea8b4b8aa9f8b7b64594834200f000000000000000000000d1d2b3c485761727d87939da5a9b0b3b4bcc9c6bab4b0aba69d95897f73625a4a3e2e201000000000081d314455647a8a9ba2a6a89e93816c5e4c38230f000d22384d62787f7f7f7f7f7e695359616d777f86898b8e8d8b8781796e625a4b3f2e3a47546068757c83888c8d8e8c8a857e776a6056483b2b1e0e00000000000f243a4f647a808080808080807a645c4a3e2d201002000000000000000000000000000000000000000000000000000000000000000b1b293946576175808080808080807d68523d281300091d324556606a6a6a6a6a6a635b493518080000000000000a21364a5c646a6a6a6a655d4b371d0c0000000000000b20344859626a6a6a6a6a6a625a4835200b00081b2e3f4b4f5555555555554e4a3d2d1a00000000000000000000000000000a1a2f404c515555555555554d483b2b19050000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000c21364b61768a9ba3aab1b2aba59d969da5b6aa9f959ca4a9b0b2aba59d8f7a644f3a250f0000000b20354b60758a9fb4c4d2ddc9b5a38d78624d38230d0011263c51667b91a6b9a48f79644f3a240f00000000000818293a4a5b6379879aa2b3b8b4aca39b95918f8f9093999ea8b4b9b3a69e8c7d675d4b3b2b190100000000000000000000000e1e2b3946546067747e878e949a9d9faba3a2a89f9a9690888076696054493c2d20100200000000011527374a5c6479858c908e897e6c6352402f1c09000b2035485a626a6a6a6a6a69604f474c59616a717376797876726c645c4d483c2e212a36434a5660676e737778787674706962594b45382b1d0e0000000000000d22364a5c646b6b6b6b6b6b6b645c4a3e2d2010020000000000000000000000000000000000000000000000000000000000000000000b1b29394657616b6b6b6b6b6b6b68604e3a25110002152838454b5555555555554e493d2c1a00000000000000071a2d3e4a4e555555554f4b3f2e1b0000000000000005192b3b484d5555555555554d483c2b1905000010212e373a40404040404039362d1f0f00000000000000000000000000000012222f383b40404040404037342b1d0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00091e3246576f8499afaaa59c968f8781879db29f8b7f868d949ba3a9af9d8773604a35200b0000000d23384d62788da9bacde2e4d2c1a5907b66503b26110011263c51667b91a6b9a48f79644f3a240f0000000000000c1c2d3d4a5b637784939ea6b3b8b4b0aba6a5a4a6a9aeb4b9b4afa29a887b675f4d3f2e1d0d000000000000000000000000000e1b2836434a55606872797f85888a8c8e8d8c8985817b746a61584b43362b1e100200000000000009192d3d4a5b6370777b797468605245352211000005192b3c484d5555555555534f42343b474c555b586163626157574e4a3e352b1e1018253038454b52595861636361585a544d483b32281a0d00000000000000071b2d3e4a4f565656565656564e4a3e2d20100200000000000000000000000000000000000000000000000000000000000000000000000b1b2939464b55565656565656524e41311e0b00000a1a28323640404040404038352c1f0f00000000000000000f202d3639404040403a372e211000000000000000000d1d2b343740404040404038352b1e0e00000002101b22252a2a2a2a2a2a24211a0f0100000000000000000000000000000004121c24262a2a2a2a2a2a2220190d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d000316283953687e939c958e87807a7271869bb09f8a7471787f858d939a96816b5443301c070000000b21364b60768a9fb4cadadecdb9a88e79644e39240f0011263c51667b91a6a8a48f79644f3a240f000000000000000f1f2d3d4a5961747e88959ea6aab0b3b5bcc9bcb5b3aea8a29a8f8478655d4d413120100000000000000000000000000000000b18253037444b535b636a7073757779787675706c6560544c473a3026180e0000000000000000000f1f2d3c494d5962666460554e42352717030000000e1e2b353840404040403e3b321f2a34373f3a464c4e4d4b463939362d20190e0008131c2832363c3a474c4e4e4c473a3e37342b1e160a00000000000000000010202d363a4141414141414139362d201002000000000000000000000000000000000000000000000000000000000000000000000000000b1b293236404141414141413d3a312313010000000a151d202a2a2a2a2a2a23211a0f010000000000000000010f1a21242a2a2a2a25221b10030000000000000000000d1920222a2a2a2a2a2a2220190e000000000000080e101515151515150e0c0700000000000000000000000000000000000000090f111515151515150d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293e53697e93a8b7a28d77624d38220d00000d22384d62788d878079726b645c71869bb09f89745b636970787e858c7a644f36251300000000091e32455671869bb1bcc9c9bfb49e8974604b35200b0011263c51667c919393938f7a644f3a240f00000000000000010f1f2d3b475660697680888f959b9e9faba3ab9f9e99938d857a6f625a4b3f312313020000000000000000000000000000000008131c2731363d494e545b556062636361605456504b433633291c140800000000000000000000010f1e2c353b484c514e4b44373124170900000000000e1920222a2a2a2a2a29261f14181f222a293336393836332924211a0f05000000000a161e21272a3337383937332a292220180d020000000000000000000002101b22242b2b2b2b2b2b2b24221b10020000000000000000000000000000000000000000000000000000000000000000000000000000000b161e212b2b2b2b2b2b2b28251e1305000000000002090b1515151515150e0c06000000000000000000000000070d0f15151515100e08000000000000000000000000050b0d1515151515150d0b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c111114293e53697e93a8b7a28d77624d38220d00000b2034485a7078726b645c564f5b71869bb09f89745f4d545a6269707772604a35200b000000000316283850667c909fabb3b4b0a1947f695544311d08000d23384d62787e7d7d7d7e77614c37220c0000000000000000010f1d2a38454b57616a747a8086888a8c8e8c8a88847e7870655d4d483c2e2113050000000000000000000000000000000000000009151d202c36393f37444b4c4e4d4c4b43363b3530261f170c01000000000000000000000000000e19212a34373b3935312719140600000000000000050b0d151515151514120c02040b0c15171f212423211e170f0d070000000000000002090b12181f222323211f17140d0b050000000000000000000000000000070d0f161616161616160f0d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c1616161616161613110b010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1012202020202020110f09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b161e21262626293e53697e93a8b7a28d77624d38220d000005192b3c495b635b554e4a3e465b71869bb09f89745f4a3c484d545961605443301c0700000000000a23384c5e6b808d9a9e9f9b928272604b37271501000b2035485a626868686868615947341f0b000000000000000000000c1a273139464b5460646b71737577797775736f69635b504b3f352b1e110300000000000000000000000000000000000000000002080f1a21232a2631353739383735302625201c14080400000000000000000000000000000000060d181f222624201d150900000000000000000000000000000000000000000000000000040a0c0e0d0c0a030000000000000000000000000000040a0c0e0e0c0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e171d1f20202020200e0c0600000000000000000000000004121d242735353535353526231c1103000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1b2932363c3c3c3c3e53697e93a8b7a28d77624d38220d0000000d1d2c3c494d493c39362d465b71869bb09f89745f4a2b34383b474c4a43362513000000000000091c2f4050626b7b848989857d6e605443301909000006192b3c484d53535353534c473b2a180400000000000000000000000a151d293336434b4f555b5560626362605559534e493d372e20190e0000000000000000000000000000000000000000000000000000060c0e15141d2022242321201c14100b08010000000000000000000000000000000000000000050b0d110f0b080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1012202020202020110f09000000000000000000000000000000000000000000000000000000000000010b10132020202020200e0c06000000000000000000000000000000000000000000000000000000000000000212202b3234353535353523211a0f0100000000000000000000122230393c4a4a4a4a4a4a3b382f221100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003162939464b515151515153697e93a8b7a28d77624d38220d000000000e1e2c3538352c242131465b71869bb09f89745f4a3420222a343735302518080000000000000012223344505e656f75757068604b43362614000000000e1e2b35383e3e3e3e3e37342a1d0c00000000000000000000000000020b171e2630353a4037444b4d4e4d4b44373e38352c231c11050000000000000000000000000000000000000000000000000000000000000001080b0d0e0e0c0b0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d1d1d1d1d1d1c1a140a00000000000000000000000000000000000000070d0f13151719181614110b0902000000000000000000000000000000000004121d242735353535353526231c110300000000000000000000000000000000000000000000000000000005131e252835353535353523211a0f0100000000000000000000000000000000000000000000000000000000000e20303d46494a4a4a4a4a38352c1f0f0000000000000000000a1d30404d51606060606060504c402f1c0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1e32465761666666666666697e93a8b7a28d77624d38220d00000000000e19212321190f1c31465b71869ba89f89745f4a341f0d181f22201c1308000000000000000004162633404c5054606055534e423026180800000000000e1920232828282828221f180c000000000000000000000000000000000308141c20242b2731363739373631272923211a0e080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1820223232323232322f271c0e000000000000000000000000000000070d0f1a2124292b2c2e2d2b2926201d150b08010000000000000000000000000000122230393c4a4a4a4a4a4a3b382f22110000000000000000000000000000000000000000000000000000011323313a3d4a4a4a4a4a4a38352c1f0f0000000000000000000000000000000000000000000000000000000003172b3d4e5a5f60606060605e493d2c1a0600000000000000001024394d5f67757575757575665e4c38230f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364b61757c7b7b7b7b7b7c8197acb7a28d77624d38220d000000000000060c0e0c06001c31465b71859393938a745f4a341f00040b0c0b0700000000000000000000000816212f3836434a4b44373a311c140800000000000000060b0d13131313130c0b040000000000000000000000000000000000000001080b0f16151d20222422201d15140e0c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e13151719191716140f0b0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2b343747474747474743392c1c0a00000000000000000000000006101b22242d36393e40424442403e3b363228201d14090000000000000000000000000a1d30404d51606060606060504c402f1c09000000000000000000000000000000000000000000000000000b1e31414e526060606060605e493d2c1a06000000000000000000000000000000000000000000000000000000081d32465a6c747575757575705b4935210c000000000000000012273c51677c8a8a8a8a8a8a7b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384e63798d919191919191979fb1b7a28d77624d38220d00000000000000000000000011273c51667c7d7d7d7e68533d281300000000000000000000000000000000000003111c23253035363127261e13010000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080b0d0e0d0b080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e101a2123282a2c2e2e2d2b2924201c140b070000000000000000000000000000000000000000000000000000000000000000000000000000000000000005182b3b484d5c5c5c5c5c5c564a39271400000000000000000000000f1a212d363a3d4a4e53555759585654504b4538353126191204000000000000000000001024394d5f67757575757575665e4c38230f0000000000000000000000000000000000000000000000000010253a4e5f68757575757575705b4935210c0000000000000000000000000000000000000000000000000000000a1f34495f748a8a8a8a8a8a79634e38230e000000000000000012273c51677c919f9f9f9f907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384e63788da3a6a6a6a6a6acb1bdb7a28d77624d38220d0000000000000000000000000f24394d5e6668686868604e3a261100000000000000000000000000000000000000000908131c20201d15090b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007111c23252c35383d4041434342403e39353026201c130800000000000000000000000000000000000000000000000000000000000000000000000000000000000b20344859627272727272716856432f1a00000000000000000008131c2c363e4a4f575c64686a6c6e6d6b69666056524b4437301f170c00000000000000000012273c51677d8a8a8a8a8a8a7b66503b26110000000000000000000000000000000000000000000000000013283d52687d8a8a8a8a8a8a79634e38230e0000000000000000000000000000000000000000000000000000000a1f34495f74899e9f9f9f8d78634e38230e000000000000000012273c51677c91a6b5b5a5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384e63788da3b0b0b0b0b0b0b0b0b0a28d77624d38220d0000000000000000000000000a1d30404d51535353534e42311e0b0000000000000000000000000000000000000000000000070b0b08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c1114171a1b1c1d1b19181615110c0a04000000000000000000000000000000000000000000000000000008131c202f373b3d494e53555758595755534f4b43363530251813040000000000000000000000000000000000000000000000000000000000000000000000000000000d22374d6277868787878786715c47321c00000000000000000b1825303d494e5c646c72797e80818382807e7b756e6760554d4033291c0f010000000000000012273c51677c919f9f9f9f907b66503b26110000000000000000000000000000000000000000000000000013283d52687d929f9f9f9f8d78634e38230e0000000000000000000000000000000000000000000000000000000a1f34495f74899eb4b5a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384e63788d9b9b9b9b9b9b9b9b9b9b9b8d77624d38220d00000000000000000000000000122230393c3e3e3e3d3a31241302000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d0f181f22262a2d2f303132302f2d2b2a26211f17120c0a040000000000000000000000000000000000000000000d182530353f4b50585b63686a6c6e6e6c6b69646054514a4336301f170c00000000000000000000000000000000000000000000000000000000000000000000000000000d22384d62778d9c9c9c9c8a755f4a3520000000000000000b1b2936434a5b636e7a81878e939597999795939089837d73665e4c473a2c1f0f0100000000000012273c51677c91a6b5b5a5907b66503b26110000000000000000000000000000000000000000000000000013283d52687d92a7b5b5a38d78634e38230e0000000000000000000000000000000000000000000000000000000a1f34495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22384d62788586868686868686868686868577624c37220d0000000000000000000000000004121d242728282828261e1306000000000000000000000000000000000000000000000000000000000000040a0c12151718191816130f0b070000000000000000000000000000000000000b0b0b0b0b0b0b000000000000000000000000000000000000000000000000000108101b22242a33373c3f4245464747464442413f3c37332a27221f180c07000000000000000000000000000000000004111d2a36434a515d656d73787d7f81838382807e79746e6660544d4133291c0e000000000000000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b1b19f8a755f4a35200000000000000a1b29394654606a79838f979da5a8aaacaeadaba9a89e9992867c6f6158493d2d1f0f00000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000013283d52687d92a7bdb8a38d78634e38230e0000000000000000000000000000000000000000000000000000000a1f34495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2035485a627171717171717171717171717162594834200b0000000000000000000000000000000a0f1113131313110b020000000000000000000000000000000000000000000000000000000003090c171f21272a2c2e2e2d2c2824201c1308060000000000000000000000040d13152020202020202016140d04000000000000000000000000000000000000000109141d202e373a3a474c5154575a5b5c5c5b59585654514c473a3c37332a201c130800000000000000000000000000000412222f3b48546067717b82888d92959698989795938e89837b73675f4c463a2c1e0e0000000000000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a352000000000000818283946576172808c99a1acb2b7c3bdbbb9babcc6b9b4aea49c918476635b4a3d2d1c0c000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000013283d52687d92a7bdb8a38d78634e38230e0000000000000000000000000000000000000000000000000000000a1f34495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005192b3c484d5b5b5b5b5b5b5b5b5b5b5b5b5b4c483b2b1805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a161e212a33373c3f41434442413d3935302520190e040000000000000000071520282a353535353535352b28211608000000000000000000000000000000000008141c2631353e4b4f56586166696c6f707172706e6d6b6a66615857514c473a35302518110500000000000000000000000312222f404c5962727c8590989da6a8aaacadaeacaaa8a79e9990867d6e6158493c2c1d0d00000000000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a352000000000001325364557617583959fabb2bfbab4aea8a6a4a5a7acb3b7c2b6b1a19a8779635b4a3a2a18080000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000013283d52687d92a7bdb8a38d78634e38230e0000000000000000000000000000000000000000000000000000000a1f34495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2b35384646464646464646464646464637342b1d0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009151d2832363a474c51555658595856534e4a4336352b1f180c000000000000081625333c404a4a4a4a4a4a4a403d332616040000000000000000000000000000021118263037444b525c646b72777b7f8284858687858482807f7c76716c676158504a43362f1f180d0000000000000000000011212f404c5e667784919ba3adb2b7c4bfbdbbbbbcbfc5b9b3aea49c928276635a493b2a1909000000000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a352000000000071c30435460758599a1b4bcb9b4a89f9993908f9092979da6b2b7bfb3a59c8a796358473625130000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000013283d52687d92a7bdb8a38d78634e38230e0000000000000000000000000000000000000000000000000000000a1f34495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e192022313131313131313131313131312220180d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d19273139454b545861676a6c6d6e6d6b686460544d493c342a1c1201000000001626334350556060606060606055504433210d000000000000000000000000000a151d2f36434b556068727a81878c9194979a9b9c9c9b99979694918b86817c776e6660544c40342a1d1204000000000000000c1d2e3f4c5e667c889aa2b0b5c1bab4afaaa7a6a5a7aaaeb4bac2b5b1a0988778635947372715020000000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a352000000005192b3c4a60728298a3b3bfb5a89e958a837e7b797b7d8188929da5b2beb6a89d8776615443301c0900000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000013283d52687d92a7bdb8a38d78634e38230e00000000080e101111111111111111111111111111111111111111111f34495f74899eb4b8a38d78634e382311110b09020000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d1c1c1c1c1c1c1c1c1c1c1c1c1c0d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f1d2a37444b57606970767c7f81838382817d79746c625a4c473a301c14080008131c344450616a757575757575756b62503d28140000000000000000000000000c1a27313f4c546067737d878f969ca4a6a9acafb0b1b1b0aeadaba9ab9f9c96918a837b73665e4c483b2f221306000000000004182a3b4b5d667c8c9ea6b3c0b8b3a99f9a959290909194999fa8b3b9beb2a59d8777625544311d0c0000000000000000000000000000000000000000000000000000000000000000000d22384d62778da2b7b49f8a755f4a35200000000b2035485a6a7f95a0b2c1b5a49c8a80766e68666465676c737d8798a0b0bdb6a59a8472604a37271502000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000013283d52687d92a7bdb8a38d78634e38230e000003101b22252626262626262626262626262626262626262626262634495f74899eb4b8a38d78634e38262626211e160a00000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1f2c3b48556069757e868b91949698999796928e8881786d61594d41302618091825304451626b7f8a8a8a8a8a8a8a806b55402b1600000000000000000000000d1c2938454b5d65737d86929ca5abb1b6c2bec1c2c0bfbdbebfc1c0c9bcb5b1acaa9f9890857b6f62594c4031241301000000000b1f344759657b8b9faab8beb2a69d948a85807d7b7b7c7f848a949ea7b4c0b6a59b8574604b3a2a180400000000000000000000000000000000000000000000000002040100000000000d22384d62778da2b7b49f8a755f4a3520000006192c3c4d62788b9fb4beb5a39b86786a615753514f50525460677582969fb0c0b4a2917c675544311d08000012273c51677c91a6bcbba5907b66503b26110000000000000000000003090b09030000000000000000000013283d52687d92a7bdb8a38d78634e38230e000010212e373a3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b495f74899eb4b8a38d78634e3b3b3b3b3632281a0a000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c0e121212121212121212121212110f09000000000000000000000000000000000000000003090b1010100e0c060000000000000000000000000000000000000000000d1d2c3d495962737f88939b9fabaaabadaeadaba8a69d968b8277675f4b433627192536434a626b80959e9f9f9f9d947f6b62503d2814000000000000000000000d1d2b3a4756606b7b86929ca4b2b6c3c4c4b7b2afadaba9a8a9aaabaeb2b6c3c1c8bbb4aea39b908377665e4e42311f0f000000081b2e3e4c6177899ea9babbafa098887f76706a686666676a6f767f899aa2b4c0b5a3947e695947341f0a00000000000000000000000000000000000001080b10131518191714110d0b050d22384d62778da2b7b49f8a755f4a352000000c2135495b6d8298a9bab7a69b8575625a4b46393b3a3b36434a5660728196a2b3c0b29c8774604b36200b000012273c51677c91a6bcbba5907b66503b26110000000000000000000a161e211e160a00000000000000000013283d52687d92a7bdb8a38d78634e38230e00081b2e3f4b4f5151515151515151515151515151515151515151515151515f74899eb4b8a38d786351515151514b45382816020012273c51677c91a6bcbba5907b66503b2611000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f1a212327272727272727272727272726241c120400000000000000000000000000000000000a161e2125252523211a0f0100000000000000000000000000000000000008182a3b495b637784949ea6b0b4bcbbb4b2b2b4bac4b7b2aa9f97887d6b6054443727364354606c80959eafbbae9d947f6a61504433210d0000000000000000000c1c2b3b48586174808d9ca4b1b6c2bbb4afa9a69d9a98969493949596999da5a5abb3b8c4c1b5b0a199897c68604e3d2d1a0700000d22374b5c6d8297a7b9bcaf9d9582766a615855525150525558616977849aa2b4c1b39e8977614c37220d000000000000000000000000000000000808141c2025282b2d2e2c29262220190e22384d62778da2b7b49f8a755f4a352000000e23384d63788c9fb4c1b29d88776257493c332926242625303845546073849aa9bab6a5927d6853392916030012273c51677c91a6bcbba5907b66503b261100000000000000000e1b28323632281b0d000000000000000013283d52687d92a7bdb8a38d78634e38230e000e22374b5d656666666666666666666666666666666666666666666666666674899eb4b8a38d78666666666666605645321e090012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1f2d36393d3d3d3d3d3d3d3d3d3d3d3d3b382f2212000000000000000000000000000000000a1b2832363a3a3a39352c1f0f00000000000000000000000000000000000114263647596379889aa2b3b8b9b4abaa9f9d9c9fa9a6aeb5bbb4a69e918072605544374354607281969eb0bcb59d937f6a6150433326160400000000000000000a1a2a3a4859627684969fabb5c2bcb4aa9f9a948e888482817f7e7e808183878b90969da6afb4c0bfb3a79e8c7e685b4a36210c00031628394f647a8d9fb5c2b09e957f6d61584c473a3d3b3b3c3a464c596275849aa8b9b9a7947f6a553b2b19050000000000000000000000000006101b222630353a3e404243413e3c38352b2122384d62778da2b7b49f8a755f4a35200004172a3a546a7f94abbcb5a3917c675948392b1e17110f10131c2836445562788a9fb4c3af99846f5746321e0a0012273c51677c91a6bcbba5907b66503b2611000000000000000e1e2c39454b45392a1d0d0000000000000013283d52687d92a7bdb8a38d78634e38230e0010253a4f657a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7c8a9fb4bda8937e7b7b7b7b7b7c74604b36210b0012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071a2d3d4a4e525252525252525252525252514c402f1c09000000000000000000000000000003162839454b5050504e493d2c1a0600000000000000000000000000000000081c3043546277879da6b4beb2a89e968f8a88878a8d90999fabb2b8b39e96837360554454607281969fb0bcab9f937e69614f433325160800000000000000000216283847586277869aa2b5bcbfb3ab9f988b857f79736f6d6b6a68696a6c6e72767a8188909aa2b3b7c4b8aa9f8e79634e39230e00091e3246576e8398abbcb5a496806b614c473a332a2826262729333b485762788a9eb4c5b09b8670594834200b0000000000000000000000000e19212e3736434b4f535557595654514d483c3632384d62778da2b7b49f8a755f4a3520000a1f33475870859bb0c9b09b85715f4d3b2b1b0e03000000000a182637485a6b8196abc3b49f8a76614b36210c0012273c51677c91a6bcbba5907b66503b26110000000000000a1a2c3c49576057473b2a180800000000000013283d52687d92a7bdb8a38d78634e38230e001c31465b718590909090909090909090909090909090909090909090909090909fa9bac1ad9c9390909090908c77624d37220d0012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364a5b63676767676767676767676767665e4c38240f0000000000000000000000000000091e32455760656565635b4935210c000000000000000000000000000000021628384b6073859ba5b7bbaea0988a817a75737275787b848c98a0b4bbb0a19882736055607281979fb0bcab9f8d7e69604f4332251507000000000000000000091e3245566176869ca4b4c0bbb4a1998c82786f69635b5a58565453545556595861656c747b84929da6b7c8bba48e79644f39240f000c21364b61758a9fb4c4b19c8674604b4333291f1713111112171f2b39485a6a8095aac3b5a38c77624d37220d0000000000000000000008131c2c353f4b4f546065686a6d6e6c6966625a524b45394d62778da2b7b49f8a755f4a3520000c21374c61768b9fb5c6a8937e695340301d0d0000000000000009192b3c4e63798ea5b7baa9917c66513c26110012273c51677c91a6bcbba5907b66503b2611000000000002152838495b637662594736261401000000000013283d52687d92a7bdb8a38d78634e38230e001c31465b71869ba6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6b4bac7cabaada8a6a6a6a6a28c77624d37220d0012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23394e63797d7c7c7c7c7c7c7c7c7c7c7c7c66513b261100000000000000000000000000000b21364b60757b7a7a79634e39230e000000000000000000000000000000091e324556687d92a3b4bdae9d9482766c656056546062666f7983939faab7b2a0978272607382979fb1bbab9f8d7e68604f4232251507000000000000000000091930404b6074859ba4b6c2b8aa9f9483796d635a544e4a3d43413f3e3f40413a464c505560656f7d889db3c8b9a48e79644f39240f0012273c52677c91a8bab7a6907b665645311f170c0400000000040d1b2b3c4e63788da5b7c1a6907b66513b26110000000000000000000a1825303c494d5d656c747a7d808283817e7b786f6760574e4d62778da2b7b49f8a755f4a3520000f24394f64798eabbcb9a88d78624d3822120000000000000000000d21364a5b72879db2c7a9947e69543f29140012273c51677c91a6bcbba5907b66503b261100000000000e1d32455663798777625443301c11000000000013283d52687d92a7bdb8a38d78634e38230e001c31465b71869bb0bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc9cdd7d8cac1bdbbbbbbb7a28c77624d37220d0012273c51677c91a6bcbba5907b66503b26121212121212121212121212120c0a040000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f92929292929292929292929285715c46311c00000000000000000000000000000e23394e63798e8f8f826e58432e190200000000000000000000000000000b21364b6075879db2c1b09e947f6d6158504b45434b4d515b636e7e8b9da6b7b1a09781758298a0b1bbaa9f8d7d68604e4232241407000000000000000000021527374d5e6c8197a3b5c2b8a79e8c7f6e635b4d493c39362d2d2c2a29292b2c29333637444b505f677a8fa4b9b9a48e79644f39240f00172c41566c8196abc6b29d8874604b3827150400000000000000000d2135495b72889db2bda8937d68533e281300000000000000000b1a2736434a5b636e7a81888f939597989693918b847d7568604d62778da2b7b49f8a755f4a35200011263b51667b90a6c9b39e89745a4835200b000000000000000000071a2d3d596f8499aec0ab96816b56412c160012273c51677c91a6bcbba5907b66503b2611000000000e1e30414b6074859a8472604b3f2e1c0c0000000013283d52687d92a7bdb8a38d78634e38230e001c31465b71869bb0c4d4d0bfb3aea9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9b4bac7cdbcb0aba9a9a9a9a28c77624d37220d0012273c51677c91a6bcbba5907b66503b2727272727272727272727272727221f180c00000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a7a7a7a7a7a7a7a7a7a79b86715c46311c000000000000000000000000060b0e23394e63788ea398836e58432e1d150a0900000000000000000000000114263652677c91a5b7b7a596816c614c473a36313035383d4a4e60687b889da6b8b19f978798a0b2bbaa9f8c7d685f4e423124140600000000000000000000081d314455667c919fb1c1b9a89e897b69614e493d352c24211a18161513141517171f21263135414e64798ea3b9b9a48e79644f39240f00192e43596e8398a7a7a797826c5443301a0a000000000000000000061a2c3d5b70859bb0bfaa957f6a55402a15000000000000000b1b28384554606a78838f979da6a8aaacaeaba9ab9f9a92897d6f6262778da2b7b49f8a755f4a35200013283e53687d93a8bdb19c87725c3c2b190500000000000000000000172d42576c8297acc1ad98836d58432e180012273c51677c91a6bcbba5907b66503b261100000009192b3c4d5f6c8197a2947f6a5d4b3a2a180800000013283d52687d92a7bdb8a38d78634e38230e001a2f455a6f849aa6b7c6c7b3a1999494949494949494949494949494949494949fa9bac3b09e9694949494948c77624d37220d0012273c51677c91a6bcbba5907b66503c3c3c3c3c3c3c3c3c3c3c3c3c3c3c37332a1c0c000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9bcc0b4b0afafafafaf9b86715c46311c00000000000000000000040e1920232b394e63788ea398836e5843363127231c1107000000000000000000081c3043546d8398adc3b29d8775604b43332a201d1c20222d36424e5d6579889ea8b9b1a59ca5b2baaa9f8c7d675f4e413124140600000000000000000000031729394b6074879db2bdbcab9e8a79655d4f43352c20190e0c0700010000000000040a0c141d24394e64798ea3b9b9a48e79644f39240f001b31465b708591919191917e695436261400000000000000000000001a2f445a6f8499afc0ab95806b56402b160000000000000316283946566072808b99a1acb3b8c4c8bbb4b3b9bcb5afa79e92847863778da2b7b49f8a755f4a35200012283d52677d92a7bcb19c87715c3b2a180500000000000000000002172c42576c8197acc1ad98836e58432e190012273c51677c91a6bcbba5907b66503b2611000002152737495a677c919fb49f8c7b65584736251300000013283d52687d92a7bdb8a38d78634e38230e000d22384d6278889da8b9c8ae99837f7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7f8b9fb4c0ab96807e7e7e7e7e7f76614b36210c0012273c51677c91a6bcbba5907b66525252525252525252525252525252524c473a2a18040000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9bfb4a29a9a9a9a9a9a9a86715c46311c0000000000000000000c181f2b35383c494e63788ea398836e58504b4538382f221b1002000000000000000b20354b6074899eb3c8a9947f6a5745321f170c09080b0f1a21313f4b5b647a8a9ea9bab6b2b6baa99f8c7d675f4d413123130600000000000000000000000a1e334657697e93a5b6c2b59f8d7c665b4c3f32211a0f0600000000000000000000000000010f24394e64798ea3b9b9a48e79644f39240f0011263b51667b7c7c7c7c7c78624d37220d00000000000000000000071b2d3e5b71869bb0bea9947f69543f2a140000000000010f1e324657617482959faab3bfb6b2aba4aa9f9ea7a2a7aeb4b3a1998979788da2b7b49f8a755f4a35200010253a50657a8fa5c7b39e89745948341f0b000000000000000000061a2c3d596e8499aec0ab96816b56412c160012273c51677c91a6bcbba5907b66503b261100000e1d3144556278899eb3bbaa9d8876615443301c10000013283d52687d92a7bdb8a38d78634e38230e000b2035485a647a8a9eaabbb49e8a796969696969696969696969696969696974899eb4b8a38d79696969696969615746321e0a0012273c51677c91a6bcbba5907b6767676767676767676767676767676767615847331f0a0000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9bfb09a84858585858585826d57422d180000000000000003111c2a333c484d555a6266798ea398836e68656056504c40362e2014060000000000000d22374c62778ca7b8bbaa8d78634d3928160400000000000714212e3c4a5c657b8a9fb4c9c7c9b49f8b7c665e4d41302313050000000000000000000000001325364b6176889eb3c3b5a3957f6a5e4d3d2f211406000000000000000000000000000000000f24394e64798ea3b9b9a48e79644f39240f000f24384c5e66676767676762594834200b000000000000000000000e22364a5c73889eb3c3a7927d67523d271200000000000f1f31424b61758498a0b4bbb8b3a59d968f8c8a898b8d92989fa9b5a79d877a8fa4bab49f8a755f4a3520000d23384d62788da9bab9a78c77624c3722110000000000000000000c2135495b72879cb1c6a9947e69543f29140012273c51677c91a6bcbba5907b66503b2611000e1e2f404b6074859ba7b9c8b7a6998372604a3e2e1c0c0013283d52687d92a7bdb8a38d78634e38230e0005192b3c4a5c667c8c9fb4b9a89d887862575454545454545454545454545f74899eb4b8a38d786354545454544b46392916030012273c51677c91a6bcc0ab95807c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c76614c37220c0000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b767070707070706d63523e2a150000000000000614212f3a474c5a626a72787c8196ac9d87807e7a756e655e4f4a3e3124150700000000000f24394e64798ea3c5b49f8a74604a35200b000000000000000d1d2a3a47586176869cb1c6d0bba6907b665e4d4030231305000000000000000000000000071c3043546a8095a6b8c1b19b8672604a40301f110300000000000000000000000000000000000f24394e64798ea3b9b9a48e79644f39240f00091d2f404c5152525252524d483b2b190500000101010200040a121e2d3d4f64798ea6b8b6a58d78624d38230d00000000061a2c3d4e606d8298a2b2beb4a69d9287807a77757475787d838a989faba59d889db3c8b49f8a755f4a3520000b20364b60758a9fb4c5a8927d6853402f1c0c0000000000000004182a3b4e63788da4b6b9a8907b66503b26110012273c51677c91a6bcbba5907b66503b261109192b3c4c5e6c8196a3b5c5d4c4b3a1947f695c4b3a29170413283d52687d92a7bdb8a38d78634e38230e00000e1e2d3e4c5e687e939eb0b7a69c86756155443f3f3f3f3f3f3f3f3f495f74899eb4b8a38d78634e3f3f3f3f3632291b0b000012273c51677c91a6bcc3b09e95919191919191919191919191919191918f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76615a5a5a5a5a57524535230f0000000000041424313f4b58616c787f878d91969fb0a59d95938f89837b70645c4e42332515050000000011263b50667b90a5bbb29d88735443301c070000000000000e1d2b3b48586176859ba4b5c8cac0ab95806b5e4d3d2c1b0b000000000000000000000000000b20354a6073889db3c4b4a3917c665443302212010000000000000000000000000000000000000f24394e64798ea3b9b9a48e79644f39240f000012222f383b3c3c3c3c3c37342b1d0d080e101717171718171f212f3c4a5c6c8196acc5b29d87725a4935200c000000000c2136495b687e93a0b2bfb3a29a887d736b656160566062676e78828d9fa8a69da6b7cab49f8a755f4a352000081d3144556e8399aec5b09a85705e4c3a291a0c020000000009141f3447596b8095aac2b49e8975604b36200b0012273c51677c91a6bcbba5907b66503b2611152737485a667c919eb0c1cac2c5bfb49f8c7a645847331f1413283d52687d92a7bdb8a38d78634e38230e00000010202f404e606b8096a0b2b5a4998373604b433229292929292934495f74899eb4b8a38d78634e38292929211e160b00000012273c51677c91a6bccdbcb0aba7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c45454545423e352717060000000001122231424e5d6577818b959ca4a6acb0bdb6b2aba8a89e9990857a696050433323120000000010253a50657a8fa5c8b39e88735746321e0900000000000e1e2b3b48596276859ba3b5b8b3b4bbb09e917c665b49392916030000000000000000000000000f243a4f64798fa6b7c7b09b85705e4c36251304000000000000000000000000000000000000000f24394e64798ea3b9b9a48e79644f39240f000004121d242627272727272220190d111c23252c2c2c2c2d293336404c5a647a8c9fb4b9a7947f6a553c2c1906000000071a2d3d4e63798b9fb4beb3a19984766860544f4c4a454b4d5259626d7c8a9ea8b3b7c4cab49f8a755f4a3520000215273751667c91a6b8b4a2907b665847382a1d150f0d0e11192631434c61778a9eb4c0ae98836e5645321d090012273c51677c91a6bcbba5907b66503b26111d3144556278899eb3bdbcb5adb1bebbaa9d8776614c42322013283d52687d92a7bdb8a38d78634e38230e00000002122231424a60728298a3b4b3a197816c614f4130211414141f34495f74899eb4b8a38d78634e382314140c0a030000000012273c51677c91a6bcd1cdc3c0bcbcbcbcbcbcbcbcbcbcbcbcbcbcbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c363030302d2a23170900000000000f1f30404e60687b89969faab1b6c2c1c4cdc8c5bfc6b9b4aea39b8b7e6a615041301c0c0000000e23384e63788daabbb49f8a76614b362110000000000e1e2c3c48596277869ba3b5b8a79e9faabbb49e8a79635746321e14030000000000000000000005192b3c556b8095aac4baa9917c6651402f1808000000000000000000060c0e12121212121212121224394e64798ea3b9b9a48e79644f39240f00000000090f1112121212120d0b0511212e373b41414141433a464c525e6678879daabbb39e8976614c37210e000000000c21364a5b6e8398a9bab6a499837461584b433637353236383b484d5e667a8a9eb3bdcecab49f8a755f4a352000000b20364b6074889eb3c0b29c87766156473b3127242224262f37444b616e8398a8b9b4a2917c6651382815020012273c51677c91a6bcbba5907b66503b261d2f404b6073859ba7b8bcab9f979fb1beb7a599836e604f3e2d1b283d52687d92a7bdb8a38d78634e38230e0000000004141c3043546074859ba5b6b19f947f6a5f4d3f2e1e0e001f34495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcd5c5b8b3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2a48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36211b1b18150f060000000000071a2d3d4d5e687e8c9ea7b4bbc2b6b1acb1bdb4b0aab0b4bbc1b4a99f937f6a5f4d3a29170400000c21364b61768a9fb4bcab907b66503e2d1c0e00010f1f2c3c495a6277869ca4b5b7a69e898c9fb4b9a89c8675614b43322111000000000000000000000b2035485a71869bb1c6b49f8a75604b3621120000000000000000010f1a212327272727272727272727394e64798ea3b9b9a48e79644f39240f0000000000000000000000000000081c2e3f4b50565656575859586167707c889da5b7b2a0937e695847331f0a000000011527374e63798c9fb5bbaa9c86756156473a302622201d20232b34404c5c677d919fb1c8cab49f8a755f4a35200000081d314455697e93a4b5b6a59a837461594b44373a38393b3f4c55606c7f95a0b2bdb09b85705e4c381a0a000012273c51677c91a6bcbba5907b66503b262b3b4c5e6b8095a3b4c1b59f8d8297a0b2c2b3a1937e695c4a3a29283d52687d92a7bdb8a38d78634e38230e00000000000013253645566176879ca7b8b59f8d7d675d4b3c2c1c0c1f34495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcccb8a79e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d8f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c050201000000000000000c21364a5b667c8d9faab8bfb3aea49c979fb1a29a949a9faab4c0bab49f8d7d675847331f0a0000091e3246576f849aafc5ae98836e5c4a3a2b1e100f1f2c3d495a6278879ca4b5b7a69d88797e93a0b2b6a498826e614f3f2e1d0d0000000000000000000d22384d62788da3b5c4af99846f5645321e0900000000000000000f1f2c35393c3c3c3c3c3c3c3c3c3c3c4e64798ea3b9b9a48e79644f39240f00000000000000000000000000000e23374b5d656c6c6c6c6d6e72767d85919da6b7b1a198826e604f3a2a1704000000081d3144556d8298abbcb49f8c7963574638291c140c0b090b0d19202f3e4d5f6d8297aabbcab49f8a755f4a35200000021527374b6073869cabbcb3a29a8477696055514f4d4e50555d657381959eafbfb19f8f7a654f402f1d00000012273c51677c91a6bcbba5907b66503b26374859667c8d9fb5c1b4a396806d8298a4b6bfb49f8b7a64584633283d52687d92a7bdb8a38d78634e38230e0000000000000818283847586379899ea9baab9f8b7b655a493a2a1a1f34495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcc8b39e8888888888888888888888888888888888877a644f3a240f0000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000091c2f404e63798a9fabbbbbaea1998e878297ac9a847f858b9aa2b5bcbcab9e8976614c38281602000316283954697e93a7b8b49f8c7a6458483c2d1e1f2d3d495b6378879ca5b6b7a69d8879636e8298a4b5b2a0947f695d4b3b2b1a0a000000000000000011273c51667c91a6c2bea8937e69533828160300000000000000061a2c3d494e52525252525252525252525264798ea3b9b9a48e79644f39240f000000000000000000000000000010253b50657b818181818284878b929aa2b2b5b19f978375614b42321c0c000000000b20354b6075899eb3c2ad97826d5b4a39281a0c01000000000005122030414d62788b9fb4c9b49f8a755f4a3520000000091d314455657b8d9fb5c0b3a29b887e746c67646263666b717b85969fafbcb4a296816c5d4b37221200000012273c51677c91a6bcbba5907b66503b3144556277899eabbcb8a79b85736175869ca9babaa99d8776614c42313d52687d92a7bdb8a38d78634e38230e000000000000000a1a2a3a495b657b8b9fabbaa99e897863584738281834495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907c7373737373737373737373737373737373645c4a36220d0000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000000e23384c5e70849aa8babcae9d94837972798ea398836e707884949fabbcb9a795806b5645321e0900000c21364b6176889eb3bcab9c8776625a4a3e322d3d4a5b6379889da5b6b7a59d8879635b6075869ca7b9b49f8c7b6559483827150200000000000000152a3f546a7f94a9bfb9a48f79644f3a240f00000000000000000c2135495b6367676767676767676767676767798ea3b9b9a48e79644f39240f000000000000000000000000000014293f54697e9496969698999c9fabafb4b3a49c908174615746322414000000000010253a50657a8fa8b9b5a48d79634e3d2d1b0b000000000000000002122034485a6d8297adc8b49f8a755f4a3520000000011426374b5d6b8095a2b3c0b4a69e9388827c7977797b8086909ba3b0bdb3a49a8473604b3f2e1b0400000012273c51677c91a6bcbba5907b66503b3f4b6073849aa7b8bcb39e8978625763798b9fb4beb6a598836e604e3e3d52687d92a7bdb8a38d78634e38230e00000000000000000c1c2c3c4b5d677d8d9fb5b8a79c8676615645362534495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b665d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d4f4a3e2d1b070000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000317293950657b90a2b4c1af9e947f6e6463788ea398836e5a62727f8d9fb5c3b49e8975604b36210b00000a1e334657697f94a2b4b6a59c8678645c4b453e4a5c6479889da6b7b6a59d8778635b49576378899eabbbaa9e8877625645311d1301000000000000172d42576c8297acc1c5a28d77624d38220d00000000000000000e23394e63797c7c7c7c7c7c7c7c7c7c7c7c7c7f94a9bfb9a48e79644f39240f000000000000000000000000000014293f54697e94a9abacadaeb2b5bcc9b3a29a867b6c605646392816060000000001162b40566b8095abc6b19c86715b49351f0f0000000000000000000005192b3c51667b90aabbb49f8a755f4a35200000000009192e3f4b6073849aa5b7c4b8b3a69d97918f8d8e90959ca4b1b5bbb4a19a86776155443121100000000012273c51677c91a6bcbba5907b66503b4b5d6a8095a2b4c1b09e917c665a4a5b687e93a0b2c3b2a0937e685c4a3952687d92a7bdb8a38d78634e38230e0000000000000000000e1e2e3f4d5f6a7f949fb1b6a49a84746054433034495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66504848484848484848484848484848483a362d2010000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000a1e3346576f849aafc0b5a395806a614e63788ea398836e5854606a8095a5b7b9a8907b65503b26100000031729394b6073849aa6b7b6a49c887a6b60574c5c647a889da6b7b6a59d8778635a493d495a667c8d9fb5b8a69b8574604b41311e0b000000000000192e43586e8398adc3b9a78b75604b36200b0000000000000000152a3f546a7f91919191919191919191919191949daec2b9a48e79644f39240f000000000000000000000000000014293f54697e94a9b5b5b7b9bec5c8c4af9a8475665e4b4538281b0b0000000000051a2f455a6f849aafc0ab96816b563d2c1a0100000000000000000000000d21364b61768a9fb4b49f8a755f4a35200000000000101d3144556176879da8b9c8c4b7b3aca6a4a2a3a5aab1b5bfb3aa9f968376615947372715030000000012273c51677c91a6bcbba5907b66504759657b8d9fb4c0b5a396816b5e4c3d4e606d8298a4b6beb49f8b7a64574652687d92a7bdb8a38d78634e38230e00000000000000000000102130414f616c8197a1b3b4a2988272604a4231495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b333333333333333333333333333324221b1002000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000c21364b61758a9fb4c6b09b8573604b4e63788ea398836e58434b6075879db2c6ab96816b56412c160000000b1d3144556277889da6b6b6a69d8b8075665e647a899ea6b7b6a49c8778625a493c2c3c4c5e6a8095a1a5a5a397816c5f4e3a25100000000000001a2f44596f8499aec4b39e89745645321d090000000000000000152a3f546a7f94a7a7a7a7a7a7a7a7a7a7a7a7a9aebbccb9a48e79644f39240f000000000000000000000000000014293f54697e94a0a0a0a1a4a9b0b4c0b3a29a8478645c4b3c2b1b0b0000000000071c31465c71869bb1bca7927c67523d27120000000000000000000000000a1e32465771869cb1b49f8a755f4a3520000000000001142637475863798a9eaabbcecbc8c1bcb9b7b8bac2b5b1aaa1998b80736158473a2a1909000000000012273c51677c91a6bcbba5907b6650546277889dabbcb9a79b8574604b4031424b6175869ca9babaa99c8675614b52687d92a7bdb8a38d78634e38230e0000000000000000000003132332434b60738399a3b5b2a095806b604e40495f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b261e1e1e1e1e1e1e1e1e1e1e1e1e0f0d070000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000012273c51677d91a9bab9a8907b6654434e63788ea398836e584345566b8095aac0af99846f5a442f1a0000000114263748596379889ca4b2b7a99f95877c6f7a899ea7b8b5a49c8678625a493c2c1e2f404b6072839090909090907d68523d28130000000000001a2f445a6f8499afc4b39d88735443301c080000000000000000152a3f546a7f94a9bcbcbcbcbcbcbcbcbcbcbcbfc6c6c6b9a48e79644f39240f000000000000000000000000000014293f54697f8b8b8b8b8c8e939aa2b1b5b3a29a8a7a645a483928160300000000091e33485e73889db3baa5907a65503b2510000000000000000000000000031629395a6f859aafb49f8a755f4a352000000000000009192a3a4a5b667c8c9fb4bdceddcbbbaea9a5a5a2a49c948d83786b6055463a2a1c0c00000000000012273c51677c91a6bcbba5907b66506072849aa6b8bdb39e8978625544311e334657647a8b9fb4beb6a498826d6052687d92a7bdb8a38d78634e38230e000000000000000000000005151d3144556175859ba6b7b09e927e685e4c3d5f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b26110808080808080808080808080000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000162b40566b8095abc7b49e8975604b364e63788ea398836e58433850667b90a5bbb19b86715c46311c0000000009192b3b495b63788698a0b3b7b4a59d91848a9ea7b8b5a49c86776259483c2b1e121c30435461767b7b7b7b7b7b7b65503a2510000000000000192e43596e8398aec3b49f8a75604b35200b0000000000000000152a3f546a7f94a9b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1a48e79644f39240f00000000000000030303030303000b20354b60737575757677797e858f9ca4b2b4a89d8878625746321e0a000000000a20354a5f758a9fb4b8a38e79634e39240e00000000000000000000000000192e43586e8398adb49f8a755f4a3520000000000000000c1c2d3d4c5e697e939fb1bfd0c2ae9d94908f8d8b867f796e635b4b4437291b0c0000000000000012273c51677c91a6bcbba5907b665d6a7f94a2b4c1b09f917c665a4837271729394a5c687e93a0b2c3b2a0927e685b687d92a7bdb8a38d78634e38230e0000000000000000000000000114263746576277879da8b9b49f8c7c655b4a5f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000182d43586d8298a4a4a499846f5544394e63788ea398836e5843394f64798ea4b9b29d88735d48331e00000000000d1d2c3c495a627583919da6b5b7b2a19a9ea8b9b5a49c86776259483b2b1e0e01142636465861666666666666655d4b37230e000000000000182d42586d8297adc2bbaa8c77614c37220c0000000000000000152a3f546a7f949c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c8e79644f39240f0000000000070b1818181818180e0c1d3144556060606060626469707a8698a0b2b8a69c8675614b382715020000000a1f34495f74899eb4b9a48f79644f3a240f00000000000000000000000004192f44596e8499aeb49f8a755f4a352000000000000000000f1f2f404f606c8196a1b3c2bea9947f7b7a7876716a635b4d493c3127190b000000000000000012273c51677c91a6bcbba5907b66657b8c9fb4c0b5a396816c5e4d3c2b190b1b2d3e4e606e8298a5b6beb49f8a7963687d92a7bdb8a38d78634e38230e0000000000000000000000000009192939485963798a9eaabbaa9e8a7963595f74899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000001a30455a6f858e8e8e8e8e7f6a5437394e63788ea398836e58433a50657a8fa5bab39d88735e48331e0000000000000e1e2c3c4957616e7c88979fabbcb3afb4b9c6b19c86776259483b2d1f1305000818293a464c505050505050504b3f2e1c08000000000000162b40556b8095aac0c8a38e79634e39240e000000000000000013283d53687e868686868686868686868686868686868686868678634e39230e00000008131c202d2d2d2d2d2d23211a2637444b4b4b4b4b4c4f545c64748298a2b4b5a4947f695645311d09000000081d32475d72879cb2bba6917b66513c2611000000000000000000000000061a2c3d5b70859bb0b49f8a755f4a3520000000000000000001122232424b60738399a4b5c4b39e897965636056554e493d352c1d150900000000000000000012273c51677c91a6bcbba5907b6676889daabbb9a89b8574604b40301e0e000f2031424c6176879ca9babaa99c8675687d92a7bdb8a38d78634e38230e00000000000000000000000000000b1b2b3b4a5b657b8c9fb4b9a89d8777625774899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000e23394e6379797979797976614c36394e63788ea398836e58433b52687d92a7bdb19c86715c47311c000000000000000e1e2c39464b5f6776818d9fb5cac4c9ccc3ae9983776960554a3d30231406000b1b2933363b3b3b3b3b3b3a372e21110000000000000013283d52687d92a7c5bca6917c6751362513000000000000000011263a4e60687171717171717171717171717171717171717171635b4a36210c0000081825303543434343434338352c1f2631353636363637393e4b566073849aa9bab29d8874604b36200b000000061b30455b70859ab0bea9937e69543827150200000000000000000000000c2136495b73889db3b49f8a755f4a352000000000000000000004141d3144556175869ca6b8b9a79c87766155453838352c21190e010000000000000000000012273c51677c91a6bcbba5907b728399a6b7bdb39e8978635645312212000001141e334657647a8b9fb4bfb6a497826d7d92a7bdb8a38d78634e38230e0000000000000000000000000000000d1d2d3d4c5d687e929eafb7a59b85756174899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b26110707070707070707070707070707070707050000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000c2135495b63646464646461584633394e63788ea398836e584347596d8298adc2af9a846f5a45301a00000000000000000e1b2933404d58616c8096abc0c7c4b9c3b2a1998a7e73635b4d4131241404000b171f2126262626262625231c1103000000000000000f243a4f64798fa6b8c2ac97826d5443301c07000000000000000b1e31424e535c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c4e4a3d2d1a070000132536434a5858585858584e493d2c1a1d202020202122242e38455563788b9fb4b7a6927d68533d281300000003182e43586d8398adc2ae99836e5645311d0900000000000000000000011426364e63798ea6b7b49f8a755f4a3520000000000000000000000114263746576278889da9bab6a59a8473604b4332211a0f0600000000000000000000000012273c51677c91a6bcbba5907c7f94a1b3c1b19f917d675a4938271504000000031729394a5c697e93a1b2c2b1a0927d7d92a7bdb8a38d78634e38230e000000000000000000000000000000000f1f2f3f4e606b8095a0b2b5a399837374899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b261d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1a140a000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000061a2c3d494e4f4f4f4f4f4c463a29394e63788ea398836e58444c62778b9fb4c4ab95806b56402b160000000000000000000b182b3b4b5d667c8b9fb4bfb3aea3aeb2b2a89e948679675f4e423122120000040a0c111111111111100e080000000000000000000b20354b6074889eb3c8b39d8874604a35200e00000000000000021324313a3d474747474747474747474747474747474747474739362d1f0f0000071c304354606d6d6d6d6d6d635b4935210c0b0b0b0b0b0d101a2837495a6e8398adc4af99846f5a3929170300000013283d53687d92a8c2b49e8975604b37261401000000000000000000081c304354697e93a9c4b49f8a755f4a3520000000000000000000000009192939485a647a8b9fabbcb4a297826d614f403020100000000000000000000000000012273c51677c91a6bcbfaa95808c9fb4bfb5a397816c5f4d3c2c1a0a00000000000b1b2d3e4f606e8399a5b7beb49e8a8095abc0b8a38d78634e38230e00000000000000000000000000000000011121314250626d8298a2b4b3a1978174899eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66503b323232323232323232323232323232323232322f271c0e0000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000000f1f2c3539393939393936332923394e63788ea398836e5855606e8398a9bab8a6907b66513b26110000000000000000011426364859657b8b9faabbb2a1998e99a1b0b5b4a49c8a7d68604e40301e0e00000000000000000000000000000000000000000000081c3043546d8297adc7b7a68e79644f3c2c19060000000000000006131e2628313131313131313131313131313131313131313123211a0f0100000b20354a607282828282828279634e38230e000000000000000a192c3c52677c91a7bcb39e89745746331e0a0000000d22374d62778ca4b5b9a8927d685544311d1202000000000000000a182a3a4b6073869cb1c7b49f8a755f4a35200000000000000000000000000b1b2b3c4b5c677d8d9fb5beb19f947f695e4c3e2d1d0d00000000000000000000000012273c51677c91a6bccab49f8a9faabbb9a89b8574604b41301e0e00000000000000102032424c6176879daabbb9a89e8a9fb4cab8a38d78634e38230e000000000000000000000000000000000003132333444b6074849aa4b6b19f947e8a9eb4b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b66504747474747474747474747474747474747474747433a2c1c0a00000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000010f1a21232424242424211f1723394e63788ea398836e5861738197a0b2c4b39e8875604b36200b0000000000000000081c3043546277889ea9bab2a0988379838f9ba3b5b5a99f8d7e685e4d3c2b19060000000000000000000000000000000000000000000114263651677c91a9bac4ac97826d5b493521100000000000000000020b11131c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0e0c0700000000071c304354738898989898917c67513c271200000000000000000f24394f64798ea4b9b9a78b76614b36210c0000000b2034485971869cb1c3b29c8773604b402f1e160a04000000070f1a28364758677c91a4b6cab49f8a755f4a3520000000000000000000000000000e1e2e3e4d5f6a7f94a0b2beb59f8d7c665c4a3b2b1b0a000000000000000000000012273c51677c91a6bccebbaa9faabbbdb49e8a79635645322312000000000000000002141f334658647a8b9fb4bfb9aa9faabbceb8a38d78634e38230e00000000000000000000000000000000000005161d3145566176869ca6b8b59f8a8d9fb5b8a38d78634e38230e000000000000000012273c51677c91a6bcbba5907b665c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c574a3a271400000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000000000060c0e0f0f0f0f0f0c0a0e23394e63788ea398836e697684979fb1bfb7a6957f6a5645321d0900000000000000021527384b6073849aa6b8b3a1988273646e7a85969fabbaab9f917c665a4835200e000000000000000000000000000000000000000000000c21364b61768a9fb4c9b49f8b78634d3f2e1d0d00000000000000000000000707070707070707070700060c0e0e0c0700070700000000000000001325365c71869cadada9947e69543a291704000000000000000e23384d63788da2b8c5a28d77624d38220d00000005182b3b53687e93a5b7b6a595806a5e4c4032281f171514161a212c3845546176879db2c2cab49f8a755f4a352000000000000000000000000000001020304150616d8298a2b4bcab9e8a7a645948392818080000000000000000000012273c51677c91a6bcd9c8bbb4bbc2b19f917d675b49382815050000000000000000000417293a4a5c697f94a1b3c3bbb4bbc8d9b8a38d78634e38230e000000000000000000000000000000000000000215273847586278889ea8baab9f9fabbcb8a38d78634e38230e000000000000000012273c51677d91a6bcbba5907c727272727272727272727272727272727272727272726857432f1a00000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000000000000000000000040e192029394e63788ea39882757e889aa2b1bdbbb29d8876614c3828150200000000000000091d314556697e93a2b4b4a399837360555d6573808d9faabbb39e8978624d3c2c19060000000000000000000000000000000000000000000a1e3246576e8399abbcbbaa98826d5d4b3b2b1a0a00000000000000000000000000000000000000000e19202324211a0f010000000000000000001a2f455a6f849aafc2af99846f5847331f10010000000000001325364f657a8fa4bab9a78b76604b36210b000000000d20364b6074879db2c0b49f8d7c665e4b453833292a292b2d363d495660728399a6b7cbcab49f8a755f4a3520000000000000000000000000000002122333434b6074849aa5b6b9a89d88776257453625130000000000000000000012273c51677c91a6bcd1d9cecac6b5a497816c5f4d3c2c1a0a00000000000000000000000c1c2e3e4f616e8399a5b7c8caced9cdb8a38d78634e38230e00000000000000000000000000000000000000000a1a293a495a647a8a9fabbcb5b5bcc9b8a38d78634e38230e000000000000000012273c51677d91a6bcc8b29d8787878787878787878787878787878787878787878786725c47321d00000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000000000000000000000c181f2c353a474e63788ea39c8688949ea6b3c0bcaf9d907c665846331a0a00000000000000000b20364b6074889db2b9a79b85746055444b55606b7c8c9fb4b9a898826d5b4935210c000000000000000000000000000000000000000000031629394e63798c9fb4c7b49f8c7b65594838281a0d000000000000000000000000000000000002121e2c353839362d1f0f000000000000000000152a3f556a7f94aac3b49f8a76614c3e2e1c14080600040a141c304354697f94a9beb39e89745645321e0900000000091d314556687e93a2b4bcab9f8a7c6a60564c473a3f3e403d4a4e5b63748298a1b3c4cdcab49f8a755f4a352000000000000000000000000000000005151d3145566176879ca7b9b7a69b8575605443301c1303000000000000000012273c51677c91a6bcd1ebe1cdb9a89c8674604b41301e0e00000000000000000000000000102032434c6176879daabbcee2ebcdb8a38d78634e38230e0000000000000000000000000000000000000000000c1c2b3c4a5c667c8d9fb4bdcacfdab8a38d78634e38230e000000000000000012273c51677c91a6bccbb7a69d9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c8a75604a352000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000000000000000001131d2a343c494d586168798ea3a49c9da6b3b8c5b9b49e947f6a5e4c3a2917000000000000000004172a3a53687d92a6b7b39e89776256453737444b5e6a7f94a2b4b59f8c78634d38230e000000000000000000000000000000000000000000000b21364a5b6d8298a9babcab9d8877625645382b1d100600000000000000000000000000010a161e2f3c494d4e4a3d2d1e0e00000000000000000e24394e63798ea4b6baa996816b5c4b3d3026211a1a181f22313f4a6073869cb1c6b09b86715b3828160300000000021527384b6073859ba7b8baa89f8c7f7568615857555456585c646c798598a0b0abb0bdcab49f8a755f4a3520000000000000000000000000000000000215273847586379899eaabbb5a3998372604a41312111000000000000000012273c51677c91a6bcd1e0cebdb49e8a79635645322313000000000000000000000000000002141f334758647a8c9fb4bfd0e2cdb8a38d78634e38230e000000000000000000000000000000000000000000000e1e2e3e4c5e697e939fb0bfcfcdb8a38d78634e38230e000000000000000012273c51677c91a6bcd4c4b7b2b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b19f8a75604a352000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000000000000009151d313b474c5a636c767e859bb1b6b2b2b7c4bfb3a89e91806a6150402f1c0c00000000000000000a1f33475871869bb1b9a8947f69594738282731404a6072859ab0bcab947f69543f2a1400000000000000000000000000000000000000000000071a2d3d4d62788b9fb4c2b7a69b85746056483b2e211a0f080200000000000000000609151d2832404c5a63635b4a3c2c1d0d000000000000000c21364a5b72879cb2c2b49f8b7a645b4b4336352c2f2a3437424e5d687e93a4b5c0aa957f6a55402a150000000000000a1d3144556278899eaab9baaa9f94877d766f6c6a696b6d7279818c9ba3b09f969fb0cab49f8a755f4a352000000000000000000000000000000000000a1a2a3a495b657b8c9fb4bcb2a195806b5f4e3f2e1e0e0000000000000012273c51677c91a6bcd1d2c2b19f927d675b49382816050000000000000000000000000000000417293a4b5c697f94a1b3c4d4cdb8a38d78634e38230e0000000000000000000000000000000000000000000000102030404f606c8196a1b3c1d1b8a38d78634e38230e000000000000000012273c51677c91a6bcbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb59f8a75604a352000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000000000000009192731414e59616d78818a939ba3b5c9c7c8c2b5b1a19a8a7d6a6250433322120000000000000000000c21374c61778b9fb5b39e8975604b3b2a1a151d304354677d92a7c9af99846f5a442f1a05000000000000000000000000000000000000000000000f2035495a6c8196a3b5c4b4a399827462594b3f352c201d15110e0c0b0c0e10121920273138454b5e667879635a493b2b1c0c000000000000071a2d3d53687e93a3b5bbaa9e89796960544e493d453a474c5260687b8b9fb4c2b4a28e79634e39240e000000000000011527374859657c8c9ea8b8bbb4a59d928b85817f7e8082878e969faab49e958196abc1b49f8a755f4a35200000000000000000000000000000000000000c1c2c3d4b5d687e929eb0bfb09e927d685d4b3c2c1c0c00000000000012273c51677c91a6bcd7c6b5a497826d5f4d3d2c1a0a00000000000000000000000000000000000c1c2e3e4a60728399a6b7c8d8b8a38d78634e38230e000000000000000000000000000000000000000000000002122232424b60728399a3b5c3b8a38d78634e38230e000000000000000012273c51677d91a6a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a89f8a75604a352000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000000000008182737444b606877828c979fa9b1b5c1c9bcb5afa49c918479675f50443325150400000000000000000010253a4f657a8fabbcb09a85705645311d0d011325364e63798ea3b8b19c87715c47321c070000000000000000000000000000000000000000000006192b3c4b6175859ba6b8c1b2a1998577655d4e493d36312726242220212325272c3537444b56606b7c8988786359483a291b0b0000000000000f20354b6073869babbcb8a79e8a7e7369635b5b5a5b596168717e8a9fa9babbaa9a84705b4a36210c0000000000000009192b3b4c5e667c8a9da6b4bcb7b2aa9f9a97949395989da5acb4ab9f9580788da2b7b49f8a755f4a3520000000000000000000000000000000000000000f1f2f3f4e606b8096a1b3bcb49f8b7b655a493a291909000000000012273c51677c91a6bcbdbaa89c8675604b41301f0f00000000000000000000000000000000000000101c3043546176879daabbbdb8a38d78634e38230e00000000000000000000000000000000000000000000000004141c3043546075859ba5a8a8a38d78634e38230e000000000000000012273c51677c919393939393939393939393939393939393939393939393939393938a75604a352000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000000000011426364455606c7d89979fabb4bac7c9c1b5ab9f9a90867c6f635b4d41332515070000000000000000000011273c51667c91a6c9ac97826c5738271500000e24394e63798ea3b8b39e88735e49331e0900000000000000000000000000000000000000000000000e1e3246576278889eaabbbfb2a39b887b6e635b504b44373b39373537393b3d3c494d55606875808d9e9d8777625847392816030000000000081c304354657b8d9fb4bcb8a89f93877e7873716f7072777d86939fa8babeb49f8c79634e3d2d1a0700000000000000000d1d2f404c5e667a88979fabb4bcbbb4afacaaa9abadb2b6b2a49c8c806b788da2b7b49f8a755f4a35200000000000000000000000000000000000000001112131424b60728399a3b5baa99e8978635846372715010000000012273c51677c91a6a8a8a89f8a796357453223130100000000000000000000000000000000000000001325364758657b8c9fa8a8a8a38d78634e38230e00000000000000000000000000000000000000000000000000011426364557617787939393938d78634e38230e00000000000000000d23384d62787e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7e68533e281300000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000000000a1c304354607381929ea7b4bcc9c2bbbfb5a39b8d847b71665e4e493d30231507000000000000000000000010263b50657b90a5c7ad97826d583f2e1b100d17293952677c91a7bcb19c87725c47321d07000000000000000000000000000000000000000000000003162839485a657b8c9fabb9c1b5a69d8f83796d65605553504e4c4b4c4e5052565a6369747d87959faba59c8676615746321e090000000000011426364b5d687e939eb4babab4a59c938d88868485878b929ba3b4babeb1a095806b5b4a361f0f0000000000000000000011212f404c5c6477828c9a9fabafb3b4bcc5b8b3b1aca59c94867a6b62778da2aaaa9f8a755f4a3520000000000000000000000000000000000000000003131c3043546075859ba6b7b8a79c8676615544311d0c0000000012273c51677c9193939393917d685b493928160500000000000000000000000000000000000000000008182a3a4b5d6a7f92939393938d79634e38230e000000000000000000000000000000000000000000000000000008182839475963787d7d7d7d7e76614c36210c00000000000000000c2035495a626868686868686868686868686868686868686868686868686868686868604e3a261100000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000000a1a2f404b607282969fb3b8c5bbb4ada6abb09b85786f665e514c40352c1f13050000000000000000000000000e23394e63798ea9bab19c86715d4b3a2e2422253346576b8095aac0af9a856f5a45301a050000000000000000000000000000000000000000000000000b1b2b3c4b5d687e8d9ea8b6c3b7b2a1998c827b756e6866636160616365676b72787e87939da6b5bcb5a49b8575614b36210c00000000000008182e3f4e606b80939fa9b5c2b6b2a9a69e9b9a9a9c9fabb1b5c1b8b3a0978272604a3d2d1a01000000000000000000000312222f3e4a59626d7a848b939a9d9faba3a79e9b978f877f75645d62788d959595958b755f4a35200000000000000000000000000000000000000000000114263645576277889da8a8a8a49a8473604b3a2a17040000000d23384d62787e7d7d7d7d7c685f4e3d2c1b0a00000000000000000000000000000000000000000000000c1c2e3f4a60727d7d7d7d7d7e76614c36210c0000000000000000000000000000000000000000000000000000000a1b2a3b495a636868686868615846331f0a000000000000000006192c3c494d53535353535353535353535353535353535353535353535353535353534e42311f0b00000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000021628384c5e6c8196a1b1bdbeb2aa9f97919aad98836e5a504c403830211a0e00000000000000000000000000000b21364b60768a9fb4b5a48f7a64584b3e393736434c6176889db3c1aa95806b55402b1600000000000000000000000000000000000000000000000000000e1e2e3f4e60687c8a9da5b4c0bfb2aa9f979089837d7b79777576787a7c81878d939ca5b2b7c4bdb0a29a8879644e39240f000000000000001121314250626b7e8a9ca4b0b5c1c5b8b3b0afb0b2b5bcc5b8b3a79e918273605443301f0f0000000000000000000000000412202d3b474c5c646f777e84888a8c8e8b8986827a726a60564c61767f7f7f7f7f7f6a55402a1500000000000000000000000000000000000000000000081828394859647a8a939393939393826c5847331f0a0000000c2035495a626868686868675f4e41311f0f00000000000000000000000000000000000000000000000000101c30435460686868686868615846331f0a000000000000000000000000000000000000000000000000000000000c1d2c3c494d53535353534c463a2917040000000000000000000e1e2c35383e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3a3124140200000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000091e324556667c909fb0bfbcb4a0988b827c91a698836e583c382f241d1206000000000000000000000000000000091e3245566e8398aebfb19c8676645c524f4c4e54606c8196a6b7b5a38f7a644f3a240f000000000000000000000000000000000000000000000000000000112131424e5e6679879aa2b1b6c2bbb4aca79e9892908e8c8a8c8e9092969ca4a9b2b6c3c1b5b09f968477645c4a36210d0000000000000003142433445060687986919ba3a9afb4bac7bab9c3b6b2aca79e95897d6d605544362513010000000000000000000000000002101d2a343e4a4f5962686f737577787673716d655d544b454658616a6a6a6a6a6a61503c281300000000000000000000000000000000000000000000000a1b2b3b4a5c647a7d7d7d7d7d7d7e76614c37210c00000006192c3c494d5353535353524d41312313010000000000000000000000000000000000000000000000000000132536434a5253535353534c463a29170400000000000000000000000000000000000000000000000000000000000e1e2c35383e3e3e3e3e3633291c0c00000000000000000000000e1920232828282828282828282828282828282828282828282828282828282828261f14060000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000000b21364b6075879db2bdbcab9f9483786d798ea398836e58432e1c110900000000000000000000000000000000000316283851667b90a1b3b5a49b857a6e6864626368727f8d9fb4bdb09b8673604a35200b00000000000000000000000000000000000000000000000000000003132331404c5b637684919ca4b2b7c4c5b9b3ada8a5a3a1a0a1a3a5a7abb1b6c2c7c1b4b0a39b90817462594a3e2d1a07000000000000000006152633424e5b63737c858e949a9fa9a3a4a4a2a59c9792898077675f4b4437261808000000000000000000000000000000000d181f2d363b474c535a5560626361585c574f4b3f36323a464c555555555555504333200d0000000000000000000000000000000000000000000000000d1d2d3e4b5c6468686868686868615847331f0a000000000e1e2c35383e3e3e3e3e3c393023130500000000000000000000000000000000000000000000000000000008182530353d3e3e3e3e3e3633291c0c000000000000000000000000000000000000000000000000000000000000000e1920232828282828211f170c00000000000000000000000000060c0d1313131313131313131313131313131313131313131313131313131313110b02000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000316283952677d92a5b7bfb49f8d7f6e6263788ea398836e58432e1900020202020200000000000000000000000000000a24384c5e6f8499a7b8b5a39b8d837d7977797e86949fabbcb19f907b655443301c0700000000000000000000000000000000000000000000000000000000051322303d4a58616f7c86929da6adb3b9c6c3bdbbb8b6b5b6b8babcc0c4c4b7b2aca39b90857b6c6055483b2d200f00000000000000000000071524313d4a54606670797f848a8c8d8f8e8d8b87827d756b61594d413126190900000000000000000000000000000000000005101b222a34373e37444b4d4e4c463a423a372e211e2933364040404040403c33251503000000000000000000000000000000000000000000000000000f202e3e4b4f535353535353534c473a2a170400000000000e192023282828282827251e1305000000000000000000000000000000000000000000000000000000000008131c20282828282828211f170c000000000000000000000000000000000000000000000000000000000000000000060c0e13131313130c0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000091e32465770859aafc3b3a1927d6a614e63788ea398836e58432e1910171717171714120c0300000000000000000000091d2f404d6378899ea8b5b5ab9f98928e8c8e939ba3b4bcb1a297816c5d4c36251300000000000000000000000000000000000000000000000000000000000004121f2d3a474c5f67737d8792989ea8abb0b3b9c6b9bac9bcb5b3b1aea8a69d9790857b70665e4b44372b1d0f01000000000000000000000006141f2d36434b515c646a6f7476787a797776726d6760574c473b301d1409000000000000000000000000000000000000000000070d181f222927313537393633292d25231c110b171f212a2a2a2a2a2a2820150700000000000000000000000000000000000000000000000000000110202e373a3e3e3e3e3e3e3e37332a1c0c00000000000000060c0d131313131312100a010000000000000000000000000000000000000000000000000000000000000000070b1313131313130c0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000c21364b61768b9fb4bcab99836f5f4f4e63788ea398836e58432e22252c2c2c2c2c2a2720140700000000000000000000122035495a647a8a9ca4b3b8b5ada7a4a1a3a8b1b5b6b19f978473604b3f2f180800000000000000000000000000000000000000000000000000000000000000010f1c2a33404d556068757d838990969b9ea8a3a4a5a3ab9f9e9c99938d88827b70665e504c403127190d0000000000000000000000000000010f182630353e4a4f5454606163656462605757524b4539342a1d1301000000000000000000000000000000000000000000000000050b0d13151d202223211f1718100e080000040a0c151515151515130d030000000000000000000000000000000000000000000000000000000002101b222528282828282828211f170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a10122020202020202020202020202020202020202020202020202020202020200a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000010253b50657a90aabbb59f8c78624d414e63788ea398836e58432e373a42424242423f3b3225140300000000000000000006192c3c4a5c647986959ea7aeb3b9c5b7c5b8b3ada49c918174605544312111000000000000000000000000000000000000000000000000000000000000000000000c171f3037444b5660676e757b8186898c8e8f8f8e8c8a8987847e78736d665e504c40382f1d1509000000000000000000000000000000000008141c202d363936434a4c4e4f4f4d4b45393d3632281f180c00000000000000000000000000000000000000000000000000000000000001080b0d0e0c0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080d0f131313131313130c0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e20202020201c1a140a000000000000000000000000000000000000000000000000000004121d24273535353535353535353535353535353535353535353535353535353535351f170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000013283e53687d93a8c8b29d87725a49394e63788ea398836e58433f4b4f5757575757544f4332200c000000000000000000000e1e2d3e4a5b6374808993999ea7a3a5a3a69e9891867c6d605645372715030000000000000000000000000000000000000000000000000000000000000000000000041219263138454b525560656c71747778797a79777573726f69635b57504c40382f231c1102000000000000000000000000000000000000000108101b222425303537383a393836322827211e160a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1920233535353535322f271c0e00000000000000000000000000000000000000000000000000122230393c4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a33291b0b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000142a3f54697f94a9beaf99846f5a3c394e63788ea398836e58434b5d656c6c6c6c6c69614f3b2712000000000000000000000010202d3d4a56606a767e83898c8e8f8e8c88827c73675f4b4538281909000000000000000000000000000000000000000000000000000000000000000000000000000009141d28323637444b50565b5961636465636260555c59534e493d3b382f231c1209000000000000000000000000000000000000000000000000070d0f131c202123252422211e16120b09030000000000000000000000000000000000000000000000000000000000060b0d0e0e0e0b0902000000000000000000000000000000080e1020202020201d1b140b000000000000000000000000030c1215202020202017140e05000000000000000000000000000000060c0e141618191714110b090200000003050b0b0b0b0b00000000000000000000000000000000000000000000000000000000000e1e2c35384a4a4a4a4a4743392c1c0300000000000000000000000000000000000000000000000a1d30404d5160606060606060606060606060606060606060606060606060606060605e463a2917040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000152a40556a7f95aabfac97826d5737394e63788ea398836e58374f657b81818181817f69543f2a14000000000000000000000002101f2d38454b5761686e7477797a7877746d6760554d4132281a0a00000000000000000000000000000000000000000000000000000000000000000000000000000000010a161e212731363b413b474c4e4f504e4c4b4437443e38352c26231c1109000000000000000000000000000000000000000000000000000000000000070b0c0e100f0d0b090300000000000000000000000000000000000000000000000000000000000000000e192023232323211e160a00000000000000000000000003111c23253535353535322f281c0e00000000000000000000071520272a35353535352c29221608000000000000000000000002080e1a2123292b2d2e2c2926211e160a0712181b202020202012100a0100000000000000000000000000000000000000000000000006192c3c494d60606060605c574a39211100000000000000000000000000000000000000000000001024394d5f677575757575757575757575757575757575757575757575757575757575705846331f0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000013283e53687d93a8bdae99846e5544394e63788ea398836e5844556d829797979797836e59442e19040000000000000000000000010f1a283239464b53546062636563616054514b4437301d150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b151d20252c2a3437393a3a39373531272f2923211a110f09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2b35383838383632281a0a000000000000000000000011212e373a4a4a4a4a4a47443a2c1c0b0000000000000000031525323c3f4a4a4a4a4a413e3426160500000000000000000009151d202c35383e414343413f3c363228211a252d30353535353527251e130500000000000000000000000000000000000000000000000c2035495a6f75757575757168573f2f1c080000000000000000000000000000000000000000000012273c51677c8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a76614c36210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000011263c51667b91a6c1b39e8974604b3d4e63788ea398836e584b6074889eacacac96816c57412c1702000000000000000000000000000a161e29323636434b4c4e504e4c4a4336353126191202000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080b1017181f222324252422201d151a140e0c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090b0f1112110f0d0b0500000000000006192b3c494d4e4e4e4b4538281602000000000000000000081c2e3f4b5060606060605d574a3a281400000000000000000c2032434f54606060606056514434220e000000000000000311192731363d494e535658595654514b4538362d3741454a4a4a4a4a3d3930231301000000000000000000000000000000000000000000031629394d63788d8a8a8a8a86715d4b37230e0000000000000000000000000000000000000000000012273c51677c919f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8b76614c36210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000d22384d62788da3b5b9a7937e685b4d4e63788ea398836e585c6a7f94a7b8bbaa927d68523d2813000000000000000000000000000000020b161e2126303537393a3937353025201d1409000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b0c0e0f100e0d0b080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b161e2124262726242220180d0f060000000b2035495a62636363605645321e100000000000000000000e23374b5d657575757575726857442f1b060000000000000012273c4f616a75757575756c62513e29140000000000000513212f37444b535b63696b6d6e6c696660564e4a3d48555a6060606060524d41301e0a0000000000000000000000000000000000000000000a1e3246576c8196ab9f9fa4907b65503c2b190500000000000000000000000000000000000000000012273c51677c91a6b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a18b76614c36210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000b2035485a71869bb1c4b39e8979675f5163788ea398836e5e667a8b9fb4c5b49f8b76614c37210c0000000000000000000000000000000000030a0c141c202224252322201c130b080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151d202832363a3b3c3b3937342b2a23170900000d23384d627878787874604b3e2e1909000000000000000010253a50657a8a8a8a8a8a87725d47321d0800000000000000152a3f546a7f8a8a8a8a8a806c56412c170000000000051323313f4b55606972787e808283817e7c756c635b4b5566707575757575675f4d3925100000000000000000000000000000000000000000000c21364b6176899eb3b5c2ae99836e5a4835200a00000000000000000000000000000000000000000012273c51677c91a6bccacbc2bebababababababababababababababababababab6a18b76614c36210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000005192b3c546a7f94a6b7b9a79e897d6e6663788ea398836e6d7c8a9ea9babbaa99836e5847331f0a000000000000000000000000000000000000000001080b0d0e100e0c0b070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c11151719191817140f0b0801000000000000000000000000000000000000000000000003111a28323638454b4f5052504f4c483b3f3527170600172c41566c818d8d8d816c5c4a372715010000000000000010253a50657a8f9f9f9f9c87725d47321d0800000000000000152a3f546a7f949f9f9f96816c56412c170000000001132331414e5d65747e878d939698989694918981796a605470848a8a8a8a8a7d67523d27120000000000000000000000000000000000000000091c2f3f53687e93a8b9cccab49f8c78624d38281603000000000000000000000000000000000000000012273c51677c91a6bccbbbaea9a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a18b76614c36210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c0000000000000000000e21364b6075889db2bcb8a79e91837c76798ea398827a828d9ea8b9beb49f8b79634e3a2a1704000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090c181f22262a2d2e2f2d2c2924201d15090600000000000000000000000000000000000000000613212e38454b5256606466676664625957524535230f000d22384d62788b9f9f8c7a645544311d0e0000000000000010253a50657a8fa5b5b29c87725d47321d0800000000000000152a3f546a7f94a9b5ab96816c56412c17000000000f1f30414e5f687b87939ca4a8abadaeaba9a79e978c7f726170859a9f9f9f927c67523d271200000000000000000000000000000000000000000e23384c5d72869cb1c6d6cfbcab96806b5645321e09000000000000000000000000000000000000000012273c51677c91a6bcc2ae9d948f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8b76614c36210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000091e324557677d919eafbcb8b3a199918a869cb19f8d90989fabb9beb2a095806a5b49351c0c00000000000000000000000000000000000000000000000000000002090b1114161819181614110b09020000000000000000000000000000000000000000000000000000000000000000000001080b10131518191714110d0b050000000000000b0b0b0b0b0a09040000000000000000000000000a151d202a33373b3f42434443413e3935312720190e010000000000000000000000000000000000031324313f4b5660687076797b7c7b7977726d63523f2a16000b2035485a6d8298ab9b8673604b3c2b190500000000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000000061a2c3d4d5f687d8b9ca5b1b6c2c8bbb4b3b5b9b3aa9f94847670859aafb5a7927c67523d27120000000000000000000000000000000000000006192c3c50657b90a4b6cae4d9c9b39e8975604b362110000000000000000000000000000000000000000012273c51677c91a6bcbea9947f7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7b74604b35200b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000031628394d5f6b80959eb3b9bfb3aeaa9f9ca4b6ab9fabadb5bcb9b4a0988272604a3d2c1a0000000000000000000000000000000000000000000000000003090c161e2126292b2d2e2d2b2926211e160b090300000000000000000000000000000000000000000000000000000000000808141c2025282b2d2e2c29262220190e0903050b0d2020202020201e191004000000000000000003131a2832363a474c51545758595856534f4b4437352c1d140900000000000000000000000000000000112131424e5d65747d858a8f9091908e8c87816d57422d180005192b3c4e63798c9fa3947f695a4835201200000000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c170000000c2135495b677d929faab6c3b7b2a9aa9f9e9fabaab2b4a29a8474859aafbca7927c67523d2712000000000000000000000000000000000000000c2035495a6e8399aec2d3dcdeccb8a7927d68533f2e1b080000000000000000000000000000000000000012273c51677c91a6bcbba5907b66656565656565656565656565656565656565656565605544311d080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c000000000000000000000a1b304150626b80919ea7b3b9c5bbb4b1b6c2bcb5bcc7bab4a89e938274605443301f0f0000000000000000000000000000000000000000000000020b161e212832363b3e40424442403e3b363228211e160a010000000000000000000000000000000000000000000000000006101b222630353a3e404243413e3c38352b211e16192022353535353535332c2214040000000000000b161e3138454b535861666a6c6e6e6d6c696460554d493c3126190a000000000000000000000000000009192f404e60687b87929a9fa9a5a7a5a4a59d8a755f4a352000000e21364a5b6e8399ae9e8a78624d40301b0b000000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c170000081c2e3f4e63798a9eb4bbbdb1a59d938d8a898a8e959da6b1a29580849aafbca7927c67523d2712000000000000000000000000000000000000031628394d62788c9fb4cacac7c9cdc5b19b86715d4b37220d0000000000000000000000000000000000000012273c51677c91a6bcbba5907b665050505050505050505050505050505050505050504b44372614010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000000001323334451626b7c89959ea7adb2b4bbc8c8c5b8b3afa99f978a7e6d605645362513010000000000000000000000000000000000000000000009151d28323638454b5053555759575553504b45383632281d150900000000000000000000000000000000000000000000000e19212e3736434b4f535557595654514d483c3632282b354a4a4a4a4a4a4a483f32221000000000000b1b2932414d56606870777b7f82838482817e79746b625a4b4437281a0a000000000000000000000000021527374c5e687e8c9da6b0b4bac7bcbbc3b49f8a755f4a35200000071a2d3d4f647a8fa2a899836f5e4d392917030000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c1700000e23374b5d70859ba8b9bdb19f97877e78757375798088969fb59f8c899eb3bca7927c67523d2712000000000000000000000000000000000000091e3246576b8196abbcc3b6b2b4b9c6b5a38f7a654f3b2b180500000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3531261909000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000000000516263444515f6776808991979c9faaabb8b3a79e99938a827769604b4538281808000000000000000000000000000000000000000000031119273139464b53566066696b6d6e6d6b69666056524b453931271910020000000000000000000000000000000000000008131c2c353f4b4f546065686a6d6e6c6966625a524b45393c485e60606060605f5c503f2c19000000000b1b2939464b5f67747d858b90949798999896938e8880786a605545382815020000000000000000000000081d314455657b8c9faab7c1b5b0aaa8a5a6a89f8a755f4a35200000000f22374b5d70859ab0a1917c665746331e100000000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c1700021528384f657a8fa2b4c2b19f9781756962605660636b7681939dab9f9ea7b8bca7927c67523d27120000000000000000000000000000000000000c21364b6175899eb3c9b6a59d9ea8b9c2ad98836e594834200a00000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b26252525252525252525252525252525252525201d140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36210c00000000000000000000000008162634404d58616b767c82878a909aaba19989847e766d62594f4232281a0a0000000000000000000000000000000000000000000613212e37444b5761686e757b7e80828382807e7b756e6860574b44372e20130500000000000000000000000000000000000a1825303c494d5d656c747a7d808283817e7b786f6760574e485a707575757575756e5c48331e0000000417293a4657616e7d88939a9faba9acadaeadaba8a79e968b7f73605645321d1300000000000000000000000b20364b6074879daabbbcb5a39b9592909193968a755f4a3520000000081b2e3f51667b90a4b29d8875614b3e2d190900000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c1700091d3245566e8399aec0b6a497816c60564d4b454b4e57616c7e939eb5b3b8c5bca7927c67523d27120000000000000000000000000000000000081c2f3f53687e93a7b9c6b29d878a9eb4c9b49f8b77624d38281502000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261110101010101010101010101010101010100b08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c36211111100e08000000000000000000081622303a474c5761666d72757c90a59983726f6861584c483b321d150a000000000000000000000000000000000000000000081624313f4b556068757d848990939597999795939089837d756860554b3e302316080000000000000000000000000000000b1a2736434a5b636e7a81888f939597989693918b847d7568604d62788a8a8a8a8a8c755f4a35200000000a1f334658617583929da6b0b4bcb9b3b1afb1b3b9b8b3a99f948374604b413019090000000000000000000316283953687e93a5b6bcab9f9386807d7b7c7d8186715c47311c000000001020354a6073869cb1a696816c5c4a37261401000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17000b20364b60758a9fb4c5b19c8674604b453835323639464b606b8095a4b6c9d5bca7927c67523d271200000000000000000000000000000000000e23374b5d71869cb1c5b9a8937e8197acc0bbaa95806b5645321d09000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c3626262625231c1103000000000000000004121c2a3339464b51585563788ea398836e54534c473a342a1d140200000000000000000000000000000000000000000007162634424e5d65747e8892999fa8a8aaacaeacaaa8a89f9992887e74645c4d4133261606000000000000000000000000000b1b28384554606a78838f979da6a8aaacaeaba9ab9f9a92897d6f6262778d9f9f9f9f8a755f4a352000000a1a31424c61768499a1b3b7b8b3aba89e9b999b9ea7afb3bab4a199836e5f4d372614010000000000000000091e3245576f849aafc3b59f8d7e716a686666686c716856432f1a000000031729394859677d92a7b49f8c7a645544311d0a000010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c170010253a50657a8fa9bab9a7927d6756453228201d202933424b6074869cb1c3d4bca7927c67523d27120000000000000000000000000000000005192b3c50657b90a4b5c9b49e8975798ea2b4c8b39e8875604b362010000000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76614c3c3c3c3c3a372e2111000000000000000000000c171f2932363c374e63788ea398836e58363733291f180d0000000000000000000000000000000000000000000004152534445160687b87939da6aeb4bac6c9bcb4bcc9c6bab4aea69d93867a675f50443324140300000000000000000000000316283946566072808b99a1acb3b8c4c8bbb4b3b9bcb5afa79e92847863778da2b5b49f8a755f4a352000021628384e606e8399a3b3bdb1a69e958d8986848689909aa2b0bdb3a1927d675544311d0800000000000000000b21364b60768a9fb4c8ac97816c605553505153575c564a3927140000000a1e3346576277849aafbcab9b8573604b382815020010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c1700152a3f556a7f94aac7b39e8975604b3828160b090b171e314556667b90a5b7cabca7927d67523d2712000000000000000000000000000000000b2035485a6e8399aec2c0ac97816c70849aafc3b8a6927d67523e2e1b070000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76615151515151504b3f2e1c0800000000000000000000040b161e2127394e63788ea398836e58432e1f170c0500000000000000000000000000000000000000000000001222324351626b7e8b9ca5b3b7b9b3ada6a3ab9faba3a6adb3b8b7b2a49c8b7d6b62504232211100000000000000000000010f1e324657617482959faab3bfb6b2aba4aa9f9ea7a2a7aeb4b3a1998979788da2b7b49f8a755f4a352000091e324556687e93a1b3bbb49f9688807874716f71747b84969fb0bfb29d8874604b35200b00000000000000000e24394e63798ea9babbaa8e78634e423d3b3c3e414743392c1b0a0000000c21364b6175869aa2b4c9b5a3937e695645321d090010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c1700172c42576c8197acc1af99846f5645321a0a000000031527384b6074879db2c7bca7927d67523d2712000000000000000000000000000000031628384d62788b9fb4cab3a28e7963677c91a5b7c4b09b85705c4a36220d0000000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b6a18b76666666666666655d4b37230e000000000000000000000000030a0e23394e63798e9898836e58432e19040000000000000000000000000000000000000000000000000d1d2f404f616b80939faab6b9b4a79e98918d8b8a8b8d91989ea7b4b9b6a99f92806b604f3f2e1c0c0000000000000000000f1f31424b61758498a0b4bbb8b3a59d968f8c8a898b8d92989fa9b5a79d877a8fa4bab49f8a755f4a3520000b21364b6074889db3bbaa9f9381746b625a5c5a5c5d656f8196a2b4b7a68f7a65503a2510000000000000000010253b50657a90a5c7b49f8a75604b35282627282c312f271b0d00000000132536556a7f95a4b4c0d0c1b39d8875604b36200b0010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c1700192e43586e8398adc0aa95806b5538281600000000000a1c3043546b8095aac9bca7927c67523d2712000000000000000000000000000000091e3245566b8096aabbc3af9a846f5b6074879db2c7b5a38f7a644f3b2a180500000000000000000000000000000012273c51677c91a6bcbba5907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9bca7927d7b7b7b7b7b7b7a65503a251000000000000000000000000000000d22374d62788283837e69543e291400000000000000000000000000000000000000000000000005192b3b4c5e6a7f949eb4bbb5a89e9589827c78767576787c8289959ea8b5bab49e937e695d4b3a2a180400000000000000061a2c3d4e606d8298a2b2beb4a69d9287807a77757475787d838a989faba59d889db3c8b49f8a755f4a3520000f243a4f64798a979fab9f8c7e6c60564d493c443f4b506073859ab0c4ab96816b56412c16000000000000000012273c51677c91a6bcb29d87725544311d111113171c1a140a00000000071c30435472879cb1c2d0dfcbb7a6907b65503b26100010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17001a2f455a6f849aafbea9937e69543e291400000000000114263650667b90abbcbca7927c67523d27120000000000000000000000000000000b21364b6075899eb3c8b6a5917c6651556a7f94a9bac1ad98826d5947341f0900000000000000000000000000000012273c51677c91a6bcbba5907b66503b2612121212121212121212121212110f0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9bfac9b9291919191919185715c46311c00000000000000000000000000000b20344859626e6e6e69604f3b26120000000000000000000000000000000000000000000000000b20344859667c8d9fb4bcb4a49c8a7f756d676361586163676d757f8a9ca4b4bcb49f8c7b655847331f0e000000000000000c2136495b687e93a0b2bfb3a29a887d736b656160566062676e78828d9fa8a69da6b7cab49f8a755f4a3520000d22374b5c6477828c99947f6a604b4538352c2f2e374354687e93a8bdae99836e59442e19000000000000000012273c52677c91a7bcb09b85705b3727150100000207050000000000000b20354a60758a9fb4cadfe7d4c4a8937e69533e29140010253a50657a8fa5bab29c87725d47321d0800000000000000152a3f546a7f94a9bfab96816c56412c17001b30455a70859aafbda7927d68523d28130000000000000c21364c61768b9fb5bca7927c67523d27120000000000000000000000000000081c2e3f53687d92a7b8c6b29d8773604b4c61778a9fb4c9b49f8a77624c37271502000000000000000000000000000012273c51677c91a6bcbba5907b66503b272727272727272727272727272726231c11030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9bfb9aca7a6a6a6a6a69b86715c46311c000000000000000000000000000005192b3b484d585858544f42321f0c0000000000000000000000000000000000000000000000061a2c3d4d6278899eabbcb4a29a86786a6157514e4c464c4e5157616a78869aa2b4bbaa9e8977614c3c2b19050000000000071a2d3d4e63798b9fb4beb3a19984766860544f4c4a454b4d5259626d7c8a9ea8b3b7c4cab49f8a755f4a352000071b2e3e4b59626d79848773604b42322820191a19273851667c91a6bbb09b86705b46311b000000000000000012273c52677c91a7bcb09a85705b45301b000000000000000000000000071c30435472889db2c7d8dfcfbcab917c67513c27120010253a50657a8fa5bab29c87725d47321d0000000000000000152a3f546a7f94a9bfab96816c56412c17001b30455a70859aafbca7927c67523d27120000000000000a1f33465873889eb3bca7927c67523d271200000000000000000000000000000e23374b5d71869cb1c5baa8947f69544347596d8298adc1baa9957f6a5544311d08000000000000000000000000000012273c51677c91a6bcbba5907b66503c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3b382f22110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9b0b0b0b0b0b0b0b0b09b86715c46311c0000000000000000000000000000000d1d2b34374343433e3b3224140200000000000000000000000000000000000000000000000c2135495b6d8297a8b9b7a59a8475625a4b4639383633363839464b5a6276849aa6b7b8a796816b5a4835200800000000000c21364a5b6e8398a9bab6a499837461584b433637353236383b484d5e667a8a9eb3bdcecab49f8a755f4a3520000010202e3b484c5b636f77625544311d15161e212d3745566a7f94a9bfb09b85705b46301b000000000000000012273c52677c91a7bcb09a85705b45301b06000000000000000000000000132536596e8398a9bac8cac1b59f8c78624d38220d0010253a50657a8fa5bab29d87725d4825130000000000000000152a3f546a7f94a9bfab96816c56412c17001b30455a70859aafbca7927c67523d27120000000000000417293a5c72879cb1bca7927c67523d27120000000000000000000000000005192b3c50657a8fa4b5c9b49f8a76614c363a4f647a8ea3b4c7b29d8874604b362010000000000000000000000000000012273c51677c91a6bcbba5907b6652525252525252525252525252525252504c402f1c0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f546a7f949b9b9b9b9b9b9b9b9b9b9b86715c46311c000000000000000000000000000000000d1920222e2e2e29261f14060000000000000000000000000000000000000000000000021528384e63798c9fb4bcab9d87766157483c322823211f212328323c48586176879db2bfb49f8b78624d36261401000000011527374e63798c9fb5bbaa9c86756156473a302622201d20232b34404c5c677d919fb1c8cab49f8a755f4a3520000002101d2b343d4a4e5962594837271f212932363d4a556074869bb1c3ae99846e59442f19000000000000000012273c52677c91a7bcb09a85705b45301b060000000000000000000000000e23394e63798b9faab3b4b0a397816c5a4835200b0010253a50657a8fa5bab39e88735443301c0700000000000000152a3f546a7f94a9bfab96816c56412c17001b30455a70859aafbca7927c67523d2712000000000000001b30465b70859bb0bca7927c67523d2712000000000000000000000000000b2034485a6e8398aec2c0ac97826c584733364a5c70859bb0c4b7a6917c67523e2d1b070000000000000000000000000012273c51677c91a6bcbba5907b6767676767676767676767676767676767665e4c38230f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013283d52687d858686868686868686868686836d58432e180000000000000000000000000000000000050b0d19191914120c02000000000000000000000000000000000000000000000000091d3245566d8298aabbb49f8c7a645847392b1e160e0c0a0c0e161e2b3a4758657b8fa1b3baa997816c5443301c08000000081d3144556d8298abbcb49f8c7963574638291c140c0b090b0d19202f3e4d5f6d8297aabbcab49f8a755f4a3520000000000d18202d363b484c483b2b29333739464b525c64738197a3b5bfaa947f6a553f2a15000000000000000012273c52677c91a7bcb09a85705b45301b060000000000000000000000000c21364a5b687e8b999e9f9b948475614b3c2b19050010253a50657a8fa5bab49f8a75604a35200b00000000000000152a3f546a7f94a9bfab96816c56412c17001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d2712000000000000000000000000021628384d62788b9fb4cab4a28e79634e3a292d3e52677d92a6b8c4b09a85705c4a36220c0000000000000000000000000012273c51677c91a6bcc0ab95807c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010253a4e5f687171717171717171717171716d64533f2b160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20364b6075899eb4c2ad98836e5c4a3a2a1b0e030000000000030e1b2a3a4b5d6f8399aec3b39e8874604b35200b0000000b20354b6075899eb3c2ad97826d5b4a39281a0c01000000000005122030414d62788b9fb4c9b49f8a755f4a35200000000000050f1a212b34373432363a474c52576168707985979fb1c1b3a18e79634e39240e000000000000000012273c52677c91a7bcb09a85705b45301b06000000000000000000000000071a2d3d4e60687a84888a867f73615746331e0e000010253a50657a8fa5babbaa8c77614c37210c00000000000000152a3f546a7f94a9bfab96816c56412c17001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d2712000000000000000000000000091e3245566b8095aabbc3af9a85705b4a361c20364b6075889db3c8b4a28e79644e3a2a170400000000000000000000000012273c51677c91a6bcc3b09e95919191919191919191919191919191919185715c46311c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1e31414e525b5b5b5b5b5b5b5b5b5b5b5b5853463523100000000000000000000000060c0e1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1b1913090000000011263b50667b90a8b9b6a48e79634e3e2e1c0c0000000000000000000c1c2e3f4f647a8fa5b7b8a78f7a644f3a250f00000010253a50657a8fa8b9b5a48d79634e3d2d1b0b000000000000000002122034485a6d8297adc8b49f8a755f4a352000000000000000070e19263138454b525861676e767d858e9ba3b1bdb9a799836f5b4a36210c000000000000000012273c52677c91a7bcb09a85705b45301b06000000000000000000000000000f1f31424e5c646f7375716a60554639291700000010253a50657a8fa5bac8a5907b66503b261100000000000000162b40556b8095aac0ab96816c56412c17001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d27120000000000000000000000000b21364b6075889eb3c8b7a5917c67513d2d1a1d3145566a8095aabbc0ac97826d5847331f0900000000000000000000000012273c51677c91a6bccdbcb0aba7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a79b86715c46311c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011323313a3d464646464646464646464646433f35281806000000000000000000000e1921233232323232323232323232323232323232323232323232323232323232312e261b0d000002172c42576c8197acc6b19c86715b4a36201000000000000000000000001122374b5c72879db2c5ab95806b56402b16010001162b40566b8095abc6b19c86715b49351f0f0000000000000000000005192b3c51667b90aabbb49f8a755f4a3520000000000000000e1e2b37444b5660676f767d838a929aa2b0b5c1b7a89e8978634d3d2d1a07000000000000000012273c52677c91a7bcb09a85705b45301b0600000000000000000000000000011424313e4a4f59566056544b4437291b0b00000010253a50657a8fa5babfaa95806a553f2e1b08000000000001152737576c8197acbfaa95806a55402b15001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d27120000000000000000000000081b2e3f52687d92a7b8c7b29d8774604b35200f1527384d62778b9fb4c9b49f8a77614c37261401000000000000000000000012273c51677c91a6bcd1cdc3c0bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb19b86715c46311c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005131e25283131313131313131313131312e2b23180a000000000000000000000e1e2c353847474747474747474747474747474747474747474747474747474747474642382b1b0900061b31465b70859bb0c1ab96816c563d2d1a020000000000000000000000081b2e3e576d8297acc2af9a846f5a452f1a0000051a2f455a6f849aafc0ab96816b563d2c1a0100000000000000000000000d21364b61768a9fb4b49f8a755f4a35200000000000000e1f2c3c48556069757d848b92999fa9b0b4c0bab4a69d8a7c655a49351f0f00000000000000000012273c52677c91a7bcb09a85705b45301b0600000000000000000000000000000614202d363938454b4538353126190b0000000010253a50657a8fa5bac6b19b86715d4b3722130200000000081d3144556f849aafbea8937e69533e2914001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d271200000000000000000000000e22374b5d71869bb1c5baa9947f6a5544311d080a203448596e8398adc2baa9947f6a5544311d08000000000000000000000012273c51677c91a6bcd5c5b8b3b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b19b86715c46311c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b10131c1c1c1c1c1c1c1c1c1c1c1c181610060000000000000000000006192c3c494d5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5b5649382613000417293a5d72889db2bca7927c67523d27120000000000000000000000000013283e53687d93a8bdb19c86715c3727150200071c31465c71869bb1bca7927c67523d27120000000000000000000000000a1e32465771869cb1b49f8a755f4a352000000000000b1b2c3d495a62737e8892999faaaeb4bac2b6b1a99f96877a655e4c3c2c190100000000000000000012273c52677c91a7bcb09a85705b45301b0600000000000000000000000000000002101b22242731363127201d1409000000000010253a50657a8fa5bac9b5a38f7a644f41302011060000051325364b6075899eb4c5a7917c67523c2712001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d27120000000000000000000005182b3b4f657a8fa3b5c9b49f8a77614c3726140105182b3b4f657a8fa3b5c7b29d8774604b35200f000000000000000000000012273c51677c91a6bcccb8a79e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9b86715c46311c0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2135495b637272727272727272727272727272727272727272727272727272727272706756422e19000a1f334658748a9fb4baa5907a65503b25100000000000000000000000000011273c51667c91a6bbb39e89735544311d0800091e33485e73889db3baa5907a65503b2510000000000000000000000000031629395a6f859aafb49f8a755f4a35200000000003172939495b637885939da6afb4bbc3b7b2aca49c938a8175645c4c402f1e0e0000000000000000000012273c52677c91a7bcb09a85705b45301b060000000000000000000000000000000000070d0f151d201d150b080100000000000010253a50657a8fa5bad2c1ae99836f5f4d3e2f211915141820304354667c91a8b9b8a68e79634e39240e001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d2712000000000000000000000b203448596e8398adc1c0ad97826d584733190900000d23374b5d71869bb1c5b7a5917c66513d2d1a070000000000000000000012273c51677c91a6bcc8b39e888888888888888888888888888888888888836f5a452f1a0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090b0d0d0d0d0d0b090200000000050b0d0d0d0d0d0c0a04000000000e23384d6379868787878787878787878787878787878787878787878787878787878785705b46311b000c21364c61768ba9bab8a38e79634e39240e0000000000000000000000000010253a4f657a8fa4bab8a78b75604b36200b000a20354a5f758a9fb4b8a38e79634e39240e00000000000000000000000000192e43586e8398adb49f8a755f4a3520000000000a1e3346576379889ba2b3b7c3b7b2aaa59d968f867e766c61574a3e2f2111000000000000000000000012273c52677c91a7bcb09a85705b45301b06000000000000000000000000000000000000000002090b090200000000000000000010253a50657a8fa5bacfc7b3a1927d675c4c40352c2a292b34414a6072859bb0c6b39e8873604a35200b001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d2712000000000000000000021528384d62778b9fb4cab4a28e79644f3a2a18000000081c2e3f53687d92a7b8c3af9a846f5b4a36210c0000000000000000000012273c51677c91a6bcbba5907c73737373737373737373737373737373736f6554412d180300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a161e212222222222201d150a00000e19202222222222211f170c0000000e23394e63798e9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c89745e49341f000b20364b60758ba7b8b9a48f79644f3a240f0000000000000000000000000010263b50657b90a5bab49f8a745544311d08000a1f34495f74899eb4b9a48f79644f3a240f00000000000000000000000004192f44596e8499aeb49f8a755f4a352000000005182b3b4c6176879da6b4c0b5b1a59d958e87817a716961584b46392d201103000000000000000000000012273c52677c91a7bcb09a85705b45301b060000000000000000000000000000000000000000000000000000000000000000000010253a50657a8fa5bad4cabfb39e897a655e4d493c3f3f3b484c5f697e93a3b4c1ad98836e5443301c07001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d2712000000000000000000091d3245566b8095aabbc4b09b85705c4a361c0c000000001121364b6075899eb3c9b4a28e79634e3a29170400000000000000000012273c51677c91a6bcbba5907b665d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5a544737251200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a28323638383838383631271a0a0e1e2b3538383838383733291c0c00000e23394e63788ea3b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b19e89745e49341f00091d31455673899eb3bba6917b66513c26110000000000000000000000000012283d52677d92a7bcb29d87725d3727150200081d32475d72879cb2bba6917b66513c2611000000000000000000000000061a2c3d5b70859bb0b49f8a755f4a35200000000b203448596c8197a5b6beb2a39b91878079726c655d544c463a33291b10020000000000000000050b0d0d12273c52677c91a7bcb09a85705b45301b0d0d0d0d0d0b050000000000000000000000000000000000000000000000000000000010253a50657a8fa5bac3b7b2b1a79e8a7b6d635b5754545659626d7d8c9fb4c1b4a38f7b655036251300001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d27120000000000000000000b20364b6075889eb3c8b7a6917c67523e2d1b0000000000091e3245566b8096abbcc0ac97816c5846331f0800000000000000000012273c51677c91a6bcbba5907b66504848484848484848484848484848484541372919080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003162838454b4d4d4d4d4d4b45382715192b3c484d4d4d4d4d4c473a291704000e23394e63798ea3abababababababababababababababababababababababababab9e89745e49341f00021527385c71879cb1bea9937e695438281602000000000000000000000003172939556a7f95aabfb09b85705b46301b0000061b30455b70859ab0bea9937e69543827150200000000000000000000000c2136495b73889db3b49f8a755f4a35200000000d22374d62778b9fb4c2b2a098867c746a645c574f4b3f3633291e170b0000000000000000000d181f222222273c52677c91a7bcb09a85705b453022222222222220180d00000000000000000000000000000000000000000000000000000010253a50657a8fa5bab7a59d9ba3a89e908278716c6a696b7077828d9faabbbbaa9b85705d4b37180800001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d27120000000000000000081b2e3e52677d92a6b8c7b39d8874604b3620100000000000031628384d62788c9fb4c9b49f8a76614c36261401000000000000000012273c51677c91a6bcbba5907b66503b33333333333333333333333333332f2d25190b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e324556606262626262605645311d2035485a6262626262615847331f0a000e23394e63798e9696969696969696969696969696969696969696969696969696969689745e49341f00001a2f44596f8499aec4ae99846f5645321e0a00000000000000000000000a1e33465770859aafc9ad98836d58432e18030003182e43586d8398adc2ae99836e5645311d0900000000000000000000011426364e63798ea6b7b49f8a755f4a352000000014293e54697e93aabbb6a49882746660554f4a3e3a372e30353026181405000000000000000d1d2a34373737373c52677c91a7bcb09a85705b4537373737373737342b1d0d000000000000000000000000000000000000000000000000000010253a50657a8fa5bab29d87869ba8b4a0988d86817f7e80858b979fabbbbdb49f8c7b654f3f2e1c0000001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d271200000000000000000d22374b5c71859bb0c5baa9957f6a5544311d080000000000000a2035495a6e8399aec2baa8947e695443301c08000000000000000012273c51677c91a6bcbba5907b66503b261e1e1e1e1e1e1e1e1e1e1e1e1e1a1812080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b21364b6076787777777874604b362022384d62787777777876614c37210c000d22374c62778080808080808080808080808080808080808080808080808080808080806b55402b16000014293e54697e93a9c2b49e8975604b38271502000000000000000000031628394b61768a9fb4bcab927d68523d281300000013283d53687d92a8c2b49e8975604b37261401000000000000000000081c304354697e93a9c4b49f8a755f4a3520000004192e44596e8399aec8b19c867460564b4437362d252b36434b43363120180d000000000005182a3b484c4d4d4d4d52677c91a7bcb09a85705b4d4d4d4d4d4d4d4d483b2b180500000000000000000000070b0e100c0a03000000000000000010253a50657a8fa5bab29c87798a9ea9b2ada39b969494969a9faab5bcbcb49f947f6a5d4b3721110000001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d27120000000000000005182b3b4f647a8fa3b5c9b49f8a77624c3727150200000000000006192b3c50657b90a4b6c6b29c8773604b35200f000000000000000012273c51677c91a6bcbba5907b66503b26110808080808080808080808080503000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667c8d8d8d8d8d7a644f3a24344a5f748b8d8d8d8d806c56412c17000b1f344859626b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b62503d281300000d23384d62788da4b5b9a8937e685645311d13040000000000000004131e324557697f94a9bab49f8b77614c37220c0000000d22374d62778ca4b5b9a8927d685544311d1202000000000000000a182a3a4b6073869cb1c7b49f8a755f4a35200000061c31465b71869bb0bda8937e685545383126221d2b3b485460544e42342b1d13050000000b1f344859626262626262677c91a7bcb09a8570626262626262626262594834200b000000000000000008131c202325211e160b0500000000000010253a50657a8fa5bab29c87727c8a9ca4b4b5b1aca9a9abafb4bbbfb3ab9f948172604a3f2e1b030000001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d2712000000000000000b203448596d8398adc1c1ad98826d594834190900000000000000000e20354a6073869cb1c6b6a5907b66513d2c1a060000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a2a2a28f79644f3a24344a5f74899fa2a296816c56412c170005182a3b484c565656565656565656565656565656565656565656565656565656565655504433210d00000b2035495a71869cb1c3b29d8774604b41311f170c06000000060c171f31414b6075889eb3c1b09b85705947341f0a0000000b2034485971869cb1c3b29c8773604b402f1e160a04000000070f1a28364758677c91a4b6cab49f8a755f4a35200000071d32475c72879cb1baa5907a655038292322252f3b4859627468604d483b3023130100000d22374c62777777777777777e93a8bdb09b8577777777777777777777624d37220d00000000000008131c253035383a36322920180d000000000010253a50657a8fa5aaaa9c8772657986969ea8afb3b5bcc8bbb4b0aaa1998c7f6d605443302110000000001b30455a70859aafbca7927c67523d2712000000000000051b30455a70859aafbca7927c67523d2712000000000000021527384c62778b9fb4c9b5a38f7a644f3b2a18000000000000000000071c304354697e93a8b9c3af99846f5b4935210b0000000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b7a48f79644f3a24344a5f74899fb4ab96816c56412c1700000d1d2a34374141414141414141414141414141414141414141414141414141414141403d33261504000006192b3c53687e93a4b6b7a596816c5f4e42332a211a17151719212a33424e5f6c8197a6b8b5a3917c67523a2a180400000005182b3b53687e93a5b7b6a595806a5e4c4032281f171514161a212c3845546176879db2c2cab49f8a755f4a35200000051b30455a70859aafbca7927c6756463938373a3f4b596277877e6f62594d41301e0a00001d32475d72878c8c8c8c8c8c939cadc1b5a39b8c8c8c8c8c8c8c8c8c8b755f4a352000000000000818253036434a4e4f4b4639342b1d0e0000000010253a50657a8f9595959587725b6374808992999d9faba3aa9f9b958e847a69614a4336251303000000001b30455a70859aaaaaa7927c67523d2712000000000000051b30455a70859aaaaaa7927c67523d2712000000000000091d3145566a8095aabbc4b09b85705c4b371d0d000000000000000000001325364b6176899eb4c9b59f8c79634e3929170300000000000012273c51677c91a6bcbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c170000000d181f222b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b28211507000000000e20354b6074879cb2bfb09e917d68604c473a352c2c2a2c2c353a474c60687d929fb1beb19b8672604a35200c00000000000d20364b6074879db2c0b49f8d7c665e4b453833292a292b2d363d495660728399a6b7cbcab49f8a755f4a3520000003182d42586d8297adc3b09b85746157504d4d4f535d6577859b938377675f4d39251000001d32475d72879ca2a2a2a2a2a8adbacbc1b5b0a2a2a2a2a2a2a2a29f8c755f4a35200000000000132536434a5460636561574d483b2c1e0e0000000d22384d62787f7f7f7f7f7e695356606b757d84888a8d8e8c8a86807a6f645c4f433025180800000000001b30455a708495959595927d67523d2712000000000000051b30455a708495959595927d67523d27120000000000000b20364b6075889db3c8b8a6927d67523e2e1b0000000000000000000000081e3346576c8196acc0bcab96816c5746331e0800000000000012273c51677c91a6bcbba5907b66503b26110707070707070707070707070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c1700000000050b0d161616161616161616161616161616161616161616161616161616161616130d040000000000081d314455677c91a1b3bdb49f8c7e6c61584e493d4140413c494d58616c7e8c9fb4bdb2a0907b665443301c070000000000091d314556687e93a2b4bcab9f8a7c6a60564c473a3f3e403d4a4e5b63748298a1b3c4cdcab49f8a755f4a352000000011263c51667b91a5b7b4a39983756b6562626568717b889ba3a199897d67523c271200001d32475d72879cb2b7b7b7b7bdc1cbd8d2c9c5b7b7b7b7b7b7b7b49f8a755f4a352000000000071c304354606873787a766f6259493c2c180800000b2035485a626a6a6a6a6a69604f454b5760676f737578787774716a645c4e4a3e321c130800000000000013283d52687d7f7f7f7f7f79634e39240e0000000000000013283d52687d7f7f7f7f7f79634e39240e0000000000071b2e3e52677d92a6b8c8b39e8875604b3620100000000000000000000000031729394e63798da2b3c9b49e8976614b36251300000000000012273c51677c91a6bcbba5907b66503b261d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d0c0a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c170000000c171f21292929292929292929292929292929292929292929292929292929292929261f140600000000011527374a60728399a4b5bbaa9f9281766a635b59575556595b636a7681939faabbb5a398826d5e4c362513000000000000021527384b6073859ba7b8baa89f8c7f7568615857555456585c646c798598a0b0abb0bdcab49f8a755f4a35200000000b20354b6074879db2bcb3a19989807b78777a7e85909da6b5b3a498836e59432e1904001d32475d72879caaaaaaaaaaaeb2becfc3b7b2aaaaaaaaaaaaaaaa9f8a755f4a3520000000091d30404a60727e898d8f8b8477635a49362513000005192b3c484d5555555555534f423239454b525a56606263616054554f4a3e362d2014000000000000000010253a4e5f686a6a6a6a6a635b4a36210c0000000000000010253a4e5f686a6a6a6a6a635b4a36210c00000000000d22364a5c70859bb0c4bbaa95806b5645321d090000000000000000000000000b2135495b6f849aafc3b9a8937e695443301c07000000000012273c51677c91a6bcbba5907b66503b32323232323232323232323232323232323232211e170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c1700000c1c2a33373e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3a3124140200000000091c3043546175869ca7b6bbb49f97897f78726e6c6a6c6e72787f89979fb4bbb5a69b8574604b402f1808000000000000000a1d3144556278899eaab9baaa9f94877d766f6c6a696b6d7279818c9ba3b09f969fb0cab49f8a755f4a3520000000081d314455667c909eb4bab3a79e96908d8c8f939ba3b3b7b3a69c8675614b36210c00001d32475d728795959595959598a0b2c6b7a59d9595959595959595958a755f4a35200000000f24394c5e6d81939ea7ab9f998978635443301c0700000e1e2b353840404040403e3b321d2832363d38454b4d4e4c4a433639362d211a0f0100000000000000000b1e31414e5255555555554e4a3d2d1a07000000000000000b1e31414e5255555555554e4a3d2d1a070000000005182a3b4f647a8fa3b4cab49f8b77624d38281502000000000000000000000000061a2c3d51667c91a5b7c6b19c8673604a35200e000000000012273c51677c91a6bcbba5907b665047474747474747474747474747474747474747473633291b0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c170004172a3a474c5454545454545454545454545454545454545454545454545454545454534e42311f0b000000000013253646576278899ca4b3bdb1a79e948d8783817f8183878d949ea7b1bdb2a39b88786256453222120000000000000000011527374859657c8c9ea8b8bbb4a59d928b85817f7e8082878e969faab49e958196abc1b49f8a755f4a3520000000011527374c5e6a7f939fa9b5b9b3aba5a2a2a4a8b0b5b7b2a1998879635746321e0a000014293e53697e7f7f7f7f7f7f8298aec3b29d877f7f7f7f7f7f7f7f7f7f6a55402a1500000011273c51667c91a0b3b8bcb4a79a8472604a35200b0000000e1920222a2a2a2a2a29261f14161e212727313638393735302524221b100700000000000000000000011323313a3d404040404039362d1f0f0000000000000000011323313a3d404040404039362d1f0f00000000000b1f3447596d8298adc1c2ad98836e5948341a0a00000000000000000000000000000f20354b6073879db2c7b6a4907b65503c2c19060000000012273c51677c91a6bcbba5907b665c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c4b4639291703000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c17000a1f33475861696969696969696969696969696969696969696969696969696969696968604e3a2611000000000008182939495a62788699a1b2b7b8b3aaa49c98969596989ca4aab3b9b6b2a19985786259483828160400000000000000000009192b3b4c5e667c8a9da6b4bcb7b2aa9f9a97949395989da5acb4ab9f9580788da2b7b49f8a755f4a35200000000009192f4050616a7e8b999fabafb4b9c6c7bab4b2ada59d938477635b4939291603000012263b4f60696a6a6a6a6a6a7c91a7bcb09a85706a6a6a6a6a6a6a6a6a61503c28130000051a2f455a6f849aafbecccfc5b4a28e79634e39240e00000000050b0d151515151514120c0203090b12151d20232322201c130f0d070000000000000000000000000005131e25282a2a2a2a2a24211a0f0100000000000000000005131e25282a2a2a2a2a24211a0f0100000000021527374c62778a9fb4c9b5a38f7a654f3b2b18000000000000000000000000000000081c304354697f94a9bac2ae99836e5a4935200a0000000012273c51677c91a6bcbba5907c72727272727272727272727272727272727272727272615746331e0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c17000c21374c61767e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e68533e29130000000000000b1b2c3c495a627583929da5b2b7c2b6b1aeacaaabaeb1b6c2b7b2a59d928375625a483b2b1a0a00000000000000000000000d1d2f404c5e667a88979fabb4bcbbb4afacaaa9abadb2b6b2a49c8c806b788da2b7b49f8a755f4a352000000000001222334350606979848c959a9ea8a2a3a99f9c9790877e726259493d2c1b0b0000000c1f32424f535555555555677c91a7bcb09a85705b5555555555555555504333200d0000091e34495e73899eb3c8dee3d1c0a7927d68523d2813000000000000000000000000000000000000000002090b0d0e0c0b07000000000000000000000000000000000000010b101315151515150e0c07000000000000000000000000010b101315151515150e0c07000000000000081d3144556a7f95a9bac5b19b86715d4b371d0d000000000000000000000000000000011426364c61768a9fb4c9b49f8c78624d3928160300000012273c51677c91a6bcc8b29d878787878787878787878787878787878787878787878675614b36210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c17000e23394e63798e9393939393939393939393939393939393939393939393939393939389745e49341f000000000000000e1e2c3c495761737d87939da5aab0b3b4bcc9bcb4b3b0aaa59d93877d726157483c2b1d0d0000000000000000000000000011212f404c5c6477828c9a9fabafb3b4bcc5b8b3b1aca59c94867a6b62778da2aaaa9f8a755f4a3520000000000004152533424f5b636f787f85898c8d8e8c8987827b73696054473b2c1f0e00000000021424323b3e4040404052677c91a7bcb09a85705b45404040404040403c332515030000091e34495e73899eb3c8dee4d1c0a8927d68533d2813000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20364b6074889db2c7b8a7927d68533f2e1c0000000000000000000000000000000000081f3347586d8297acc0bcab96806b5745321e0900000012273c51677c91a6bccbb7a69d9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c8b76614c36210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c17000e23394e63788ea3a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a99e89745e49341f00000000000000000e1e2c3946546067747e878e949b9d9faba3ab9f9e9b948e877e7467605446392b1e0e00000000000000000000000000000312222f3e4a59626d7a848b939a9d9faba3a79e9b978f877f75645d62788d959595958b755f4a3520000000000000071524323d494e5a626a6f747678797674726d6560544a43362a1d0e00000000000006141f26292a2a2a3c52677c91a7bcb09a85705b45302a2a2a2a2a2a28201507000000051a2f455a6f849aafbecdd1c5b4a28e79634e39240e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071b2d3e52677c91a6b7c8b39e8975604b362111000000000000000000000000000000000004172a3a4e64798ea2b4c9b39e8975604b36211100000012273c51677c91a6bcd4c4b7b2b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1a18b76614c36210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c17000e23394e63788ea3b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b39e89745e49341f0000000000000000000e1b2936434b56606972797f85888a8c8e8c8a88857f79726960554a4336281b0e000000000000000000000000000000000412202d3b474c5c646f777e84888a8c8e8b8986827a726a60564c61767f7f7f7f7f7f6a55402a150000000000000006141f2c353c494d55546061636361585d58504b43363025180d0000000000000000020c12141515273c52677c91a7bcb09a85705b45301b1515151515130d03000000000012273c51677c91a0b4bac0b4a79a8572604a35200b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c70859bb0c4bbaa96806b5645321e090000000000000000000000000000000000000c21364a5c70859ab0c4b9a7937d68533f2e1c08000012273c51677c91a6bcbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb6a18b76614c36210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c17000e23394e63798ea0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a09e89745e49341f000000000000000000000b18263038454b545b636a7073757779777573706a635b534b44373025180b00000000000000000000000000000000000002101d2a343e4a4f5962686f737577787673716d655d544b454658616a6a6a6a6a6a61503c28130000000000000000000e1a212b353836434a4c4d4e4c473a423b3530261c1308000000000000000000000000000012273c52677c91a7bcb09a85705b45301b060000000000000000000000001024394d5f6d82949fa9a5a29a8979635443301c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004182a3a4f64798ea2b4bdb49f8b78624d38281603000000000000000000000000000000000000071a2d3e52677c91a6b7c5b19c86715d4b372308000012273c51677c91a6a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a18b76614c36210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667b91a6b9a48f79644f3a24344a5f74899fb4ab96816c56412c17000e23394e63798b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b89745e49341f000000000000000000000008141c2832363d4a4e555b556062636260555b554e4a3d3631271c13080000000000000000000000000000000000000000000d181f2d363b474c535a5560626361585c574f4b3f36323a464c555555555555504333200d00000000000000000000060e19202325303537383937332a2d25201c14080000000000000000000000000000000012273c52677c91a7bcb09a85705b45301b060000000000000000000000000a1d30404a60727f8a8e908c8478635b493625130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f3447596d8297a8a8a8a899836e5a48351a0a00000000000000000000000000000000000000000f20364b6074889da8a8a8a48f7a6550362513000012273c51677c919393939393939393939393939393939393939393939393939393938b76614c36210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667c91a6a8a48f79644f3a24344a5f74899fa8a896816c56412c17000b20354a6072757575757575757575757575757575757575757575757575757575757575604b36200b000000000000000000000000010a151d202d36393f37444b4d4e4d4b44373f39362d201d150900000000000000000000000000000000000000000000000005101b222a34373e37444b4d4e4c463a423a372e211e2933364040404040403c33251503000000000000000000000000060b0d131c20212324211f1718100b0801000000000000000000000000000000000012273c52677c91a7a7a79a85705b45301b0600000000000000000000000000121c304354606974797b776f625a493c2c18080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c22374c61778a9393939393907b65503c2b19000000000000000000000000000000000000000000081d3144556a7f939393939393836e5443301c07000d23384d62787e7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7e74604b36200b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011263c51667c919393938f7a644f3a24344a5f748a93939393816c56412c1700071c304354606060606060606060606060606060606060606060606060606060606060605645321d09000000000000000000000000000002090f1a21242a2731353739373531272a24211a0f0802000000000000000000000000000000000000000000000000000000070d181f222927313537393633292d25231c110b171f212a2a2a2a2a2a282015070000000000000000000000000000000000070b0c0e0e0c0a040000000000000000000000000000000000000000000012273c52677c919292929285705b45301b060000000000000000000000000000132536434a5560646661594d483c2c1e0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384d63787e7d7d7d7d7d7d685d4b371e0e000000000000000000000000000000000000000000021527374c61767e7d7d7d7d7d7e72604a35200b000c2035495a626868686868686868686868686868686868686868686868686868686868605645311d0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d23384d62787e7d7d7d7e77614c3722283d53687e7d7d7d7e7a644f3a250f0000132536434a4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b45382815020000000000000000000000000000000000070c0e15151d20222422201d15150e0c070000000000000000000000000000000000000000000000000000000000000000050b0d13151d202223211f1718100e080000040a0c151515151515130d030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d23384d62787d7d7d7d7d7c66503b26110000000000000000000000000000000818253037444b4f504c473b352b1e0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2035495a6368686868686868604e3f2f1c0000000000000000000000000000000000000000000000091f3347586168686868686868605443301c070006192c3c494d53535353535353535353535353535353535353535353535353535353534b453827150200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2035485a626868686868615947341f263a4e606868686868645d4b37220d0000081825303536363636363636363636363636363636363636363636363636363636363632281a0a0000000000000000000000000000000000000000000001080b0d0e0d0b08010000000000000000000000000000000000000000000000000000000000000000000000000000000001080b0d0e0c0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2035485a626868686868665e4c38230f0000000000000000000000000000000008131c273136393b37342a20190e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006192c3c494d535353535353534e42312111000000000000000000000000000000000000000000000004182a3a474c535353535353534a433625130000000e1e2c35383e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3631271a0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006192b3c484d53535353534c473b2a181e31424e53535353534f4b3f2e1b0800000008131c202020202020202020202020202020202020202020202020202020202020201d150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006192b3c484d5252525252504c402f1c0900000000000000000000000000000000000009151d202426221f180c0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2c35383e3e3e3e3e3e3d3a312413030000000000000000000000000000000000000000000000000c1c2a33373e3e3e3e3e3e3d3530251808000000000e1920232828282828282828282828282828282828282828282828282828282828201d150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2b35383e3e3e3e3e37342a1d0c1324313a3d3e3e3e3e3a372e2010000000000000070b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2b35383d3d3d3d3d3b382f2212000000000000000000000000000000000000000002080b0f110c0b0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e19202328282828282828261e130600000000000000000000000000000000000000000000000000000c181f2228282828282828201c1308000000000000060c0d13131313131313131313131313131313131313131313131313131313130b0902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1920232828282828221f180c0006131e26282828282825221b10020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e192023282828282826231c120400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e13131313131313110b0200000000000000000000000000000000000000000000000000000000040a0c131313131313130b07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0d13131313130c0b04000000020b1113131313130f0d08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0d1313131313110f09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_StreamData: + offset: 0 + size: 0 + path: diff --git a/UI/Fonts/TMPro Fonts/EuclidCircularB-Regular SDF.asset.meta b/UI/Fonts/TMPro Fonts/EuclidCircularB-Regular SDF.asset.meta new file mode 100644 index 0000000..31a50cf --- /dev/null +++ b/UI/Fonts/TMPro Fonts/EuclidCircularB-Regular SDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7357c164f341b0147a6115fd4f243f6b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/TMPro Fonts/EuclidCircularB-Semibold SDF.asset b/UI/Fonts/TMPro Fonts/EuclidCircularB-Semibold SDF.asset new file mode 100644 index 0000000..4b79ba9 --- /dev/null +++ b/UI/Fonts/TMPro Fonts/EuclidCircularB-Semibold SDF.asset @@ -0,0 +1,2714 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: EuclidCircularB-Semibold SDF + m_EditorClassIdentifier: + hashCode: 1183442986 + material: {fileID: 21301536800525264} + materialHashCode: -85288351 + m_Version: 1.1.0 + m_SourceFontFileGUID: f107ab11e934487459b829102ee621e2 + m_SourceFontFile_EditorRef: {fileID: 0} + m_SourceFontFile: {fileID: 0} + m_AtlasPopulationMode: 0 + m_FaceInfo: + m_FaceIndex: 0 + m_FamilyName: Euclid Circular B + m_StyleName: Semibold + m_PointSize: 68 + m_Scale: 1 + m_LineHeight: 86.224 + m_AscentLine: 68 + m_CapLine: 48 + m_MeanLine: 34 + m_Baseline: 0 + m_DescentLine: -18.224 + m_SuperscriptOffset: 68 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -18.224 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -9.112 + m_UnderlineThickness: 6.8 + m_StrikethroughOffset: 13.6 + m_StrikethroughThickness: 6.8 + m_TabWidth: 16 + m_GlyphTable: + - m_Index: 3 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 15.5 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 4 + m_Metrics: + m_Width: 13.609375 + m_Height: 48.828125 + m_HorizontalBearingX: 2.921875 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 19.578125 + m_GlyphRect: + m_X: 251 + m_Y: 67 + m_Width: 15 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 5 + m_Metrics: + m_Width: 21.625 + m_Height: 19.515625 + m_HorizontalBearingX: 3.9375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 29.515625 + m_GlyphRect: + m_X: 391 + m_Y: 66 + m_Width: 23 + m_Height: 21 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 6 + m_Metrics: + m_Width: 45.015625 + m_Height: 48.28125 + m_HorizontalBearingX: 2.171875 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 49.375 + m_GlyphRect: + m_X: 261 + m_Y: 309 + m_Width: 46 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 7 + m_Metrics: + m_Width: 31.34375 + m_Height: 60.25 + m_HorizontalBearingX: 2.71875 + m_HorizontalBearingY: 54.265625 + m_HorizontalAdvance: 36.453125 + m_GlyphRect: + m_X: 33 + m_Y: 315 + m_Width: 33 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 8 + m_Metrics: + m_Width: 62.828125 + m_Height: 49.375 + m_HorizontalBearingX: 1.90625 + m_HorizontalBearingY: 48.828125 + m_HorizontalAdvance: 66.640625 + m_GlyphRect: + m_X: 163 + m_Y: 193 + m_Width: 64 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 9 + m_Metrics: + m_Width: 48.625 + m_Height: 49.84375 + m_HorizontalBearingX: 4.28125 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 52.359375 + m_GlyphRect: + m_X: 125 + m_Y: 436 + m_Width: 49 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 10 + m_Metrics: + m_Width: 7.890625 + m_Height: 19.515625 + m_HorizontalBearingX: 3.9375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 15.78125 + m_GlyphRect: + m_X: 353 + m_Y: 212 + m_Width: 9 + m_Height: 21 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 11 + m_Metrics: + m_Width: 16.109375 + m_Height: 65.28125 + m_HorizontalBearingX: 2.65625 + m_HorizontalBearingY: 54.40625 + m_HorizontalAdvance: 20.328125 + m_GlyphRect: + m_X: 6 + m_Y: 161 + m_Width: 17 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 12 + m_Metrics: + m_Width: 16.109375 + m_Height: 65.28125 + m_HorizontalBearingX: 1.5 + m_HorizontalBearingY: 54.40625 + m_HorizontalAdvance: 20.265625 + m_GlyphRect: + m_X: 6 + m_Y: 238 + m_Width: 17 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 13 + m_Metrics: + m_Width: 29.234375 + m_Height: 27.671875 + m_HorizontalBearingX: 2.109375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 33.453125 + m_GlyphRect: + m_X: 135 + m_Y: 270 + m_Width: 30 + m_Height: 29 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 14 + m_Metrics: + m_Width: 28.5625 + m_Height: 28.625 + m_HorizontalBearingX: 2.453125 + m_HorizontalBearingY: 34 + m_HorizontalAdvance: 33.453125 + m_GlyphRect: + m_X: 411 + m_Y: 472 + m_Width: 30 + m_Height: 29 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 15 + m_Metrics: + m_Width: 14.46875 + m_Height: 23.40625 + m_HorizontalBearingX: 1.84375 + m_HorizontalBearingY: 13.0625 + m_HorizontalAdvance: 19.171875 + m_GlyphRect: + m_X: 382 + m_Y: 261 + m_Width: 16 + m_Height: 25 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 16 + m_Metrics: + m_Width: 19.453125 + m_Height: 8.984375 + m_HorizontalBearingX: 3.875 + m_HorizontalBearingY: 23.53125 + m_HorizontalAdvance: 27.203125 + m_GlyphRect: + m_X: 34 + m_Y: 292 + m_Width: 21 + m_Height: 10 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 17 + m_Metrics: + m_Width: 13.59375 + m_Height: 13.609375 + m_HorizontalBearingX: 2.65625 + m_HorizontalBearingY: 13.0625 + m_HorizontalAdvance: 18.96875 + m_GlyphRect: + m_X: 491 + m_Y: 66 + m_Width: 15 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 18 + m_Metrics: + m_Width: 34.6875 + m_Height: 55.765625 + m_HorizontalBearingX: 1.21875 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 37.125 + m_GlyphRect: + m_X: 33 + m_Y: 387 + m_Width: 35 + m_Height: 57 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 19 + m_Metrics: + m_Width: 35.96875 + m_Height: 49.84375 + m_HorizontalBearingX: 3.46875 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 42.90625 + m_GlyphRect: + m_X: 115 + m_Y: 6 + m_Width: 37 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 20 + m_Metrics: + m_Width: 19.515625 + m_Height: 48.28125 + m_HorizontalBearingX: 0.140625 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 25.03125 + m_GlyphRect: + m_X: 389 + m_Y: 144 + m_Width: 20 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 21 + m_Metrics: + m_Width: 32.921875 + m_Height: 49.09375 + m_HorizontalBearingX: 2.78125 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 38.96875 + m_GlyphRect: + m_X: 206 + m_Y: 67 + m_Width: 34 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 22 + m_Metrics: + m_Width: 34.6875 + m_Height: 49.84375 + m_HorizontalBearingX: 2.375 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 39.984375 + m_GlyphRect: + m_X: 95 + m_Y: 208 + m_Width: 36 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 23 + m_Metrics: + m_Width: 39.65625 + m_Height: 48.28125 + m_HorizontalBearingX: 1.21875 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 43.3125 + m_GlyphRect: + m_X: 281 + m_Y: 369 + m_Width: 40 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 24 + m_Metrics: + m_Width: 34.0625 + m_Height: 49.03125 + m_HorizontalBearingX: 2.109375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 38.890625 + m_GlyphRect: + m_X: 235 + m_Y: 371 + m_Width: 35 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 25 + m_Metrics: + m_Width: 33.671875 + m_Height: 49.03125 + m_HorizontalBearingX: 2.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 38.6875 + m_GlyphRect: + m_X: 279 + m_Y: 432 + m_Width: 35 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 26 + m_Metrics: + m_Width: 33.65625 + m_Height: 48.28125 + m_HorizontalBearingX: 2.3125 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 36.921875 + m_GlyphRect: + m_X: 455 + m_Y: 292 + m_Width: 34 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 27 + m_Metrics: + m_Width: 34.265625 + m_Height: 49.84375 + m_HorizontalBearingX: 2.859375 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 39.984375 + m_GlyphRect: + m_X: 139 + m_Y: 310 + m_Width: 36 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 28 + m_Metrics: + m_Width: 33.71875 + m_Height: 49.09375 + m_HorizontalBearingX: 2.65625 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 38.6875 + m_GlyphRect: + m_X: 206 + m_Y: 6 + m_Width: 35 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 29 + m_Metrics: + m_Width: 13.609375 + m_Height: 35.359375 + m_HorizontalBearingX: 3.328125 + m_HorizontalBearingY: 34.8125 + m_HorizontalAdvance: 20.328125 + m_GlyphRect: + m_X: 491 + m_Y: 92 + m_Width: 14 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 30 + m_Metrics: + m_Width: 14.484375 + m_Height: 45.15625 + m_HorizontalBearingX: 2.578125 + m_HorizontalBearingY: 34.8125 + m_HorizontalAdvance: 20.53125 + m_GlyphRect: + m_X: 383 + m_Y: 204 + m_Width: 16 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 31 + m_Metrics: + m_Width: 28.828125 + m_Height: 34.40625 + m_HorizontalBearingX: 1.765625 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 32.4375 + m_GlyphRect: + m_X: 451 + m_Y: 415 + m_Width: 30 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 32 + m_Metrics: + m_Width: 28.625 + m_Height: 22.375 + m_HorizontalBearingX: 4.078125 + m_HorizontalBearingY: 30.875 + m_HorizontalAdvance: 36.78125 + m_GlyphRect: + m_X: 412 + m_Y: 381 + m_Width: 29 + m_Height: 23 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 33 + m_Metrics: + m_Width: 28.828125 + m_Height: 34.40625 + m_HorizontalBearingX: 1.84375 + m_HorizontalBearingY: 36.921875 + m_HorizontalAdvance: 32.4375 + m_GlyphRect: + m_X: 452 + m_Y: 461 + m_Width: 30 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 34 + m_Metrics: + m_Width: 30.671875 + m_Height: 49.640625 + m_HorizontalBearingX: 1.90625 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 35.296875 + m_GlyphRect: + m_X: 163 + m_Y: 6 + m_Width: 32 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 35 + m_Metrics: + m_Width: 49.703125 + m_Height: 49.84375 + m_HorizontalBearingX: 2.71875 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 54.609375 + m_GlyphRect: + m_X: 77 + m_Y: 312 + m_Width: 51 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 36 + m_Metrics: + m_Width: 50.46875 + m_Height: 48.28125 + m_HorizontalBearingX: 0.0625 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 50.53125 + m_GlyphRect: + m_X: 252 + m_Y: 6 + m_Width: 51 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 37 + m_Metrics: + m_Width: 35.359375 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 43.109375 + m_GlyphRect: + m_X: 470 + m_Y: 185 + m_Width: 36 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 38 + m_Metrics: + m_Width: 47.265625 + m_Height: 49.90625 + m_HorizontalBearingX: 2.515625 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 51.203125 + m_GlyphRect: + m_X: 80 + m_Y: 146 + m_Width: 48 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 39 + m_Metrics: + m_Width: 40.734375 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 48.6875 + m_GlyphRect: + m_X: 336 + m_Y: 126 + m_Width: 42 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 40 + m_Metrics: + m_Width: 30.046875 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 38.625 + m_GlyphRect: + m_X: 332 + m_Y: 352 + m_Width: 31 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 41 + m_Metrics: + m_Width: 29.375 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 36.859375 + m_GlyphRect: + m_X: 452 + m_Y: 352 + m_Width: 30 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 42 + m_Metrics: + m_Width: 45.84375 + m_Height: 49.90625 + m_HorizontalBearingX: 2.578125 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 51.890625 + m_GlyphRect: + m_X: 104 + m_Y: 69 + m_Width: 47 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 43 + m_Metrics: + m_Width: 40.65625 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 51.40625 + m_GlyphRect: + m_X: 338 + m_Y: 66 + m_Width: 42 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 44 + m_Metrics: + m_Width: 9.859375 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 20.609375 + m_GlyphRect: + m_X: 493 + m_Y: 6 + m_Width: 11 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 45 + m_Metrics: + m_Width: 30.796875 + m_Height: 49.09375 + m_HorizontalBearingX: 1.359375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 37.203125 + m_GlyphRect: + m_X: 238 + m_Y: 128 + m_Width: 32 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 46 + m_Metrics: + m_Width: 43.515625 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 47.1875 + m_GlyphRect: + m_X: 281 + m_Y: 126 + m_Width: 44 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 47 + m_Metrics: + m_Width: 30.53125 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 37.46875 + m_GlyphRect: + m_X: 370 + m_Y: 412 + m_Width: 31 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 48 + m_Metrics: + m_Width: 49.359375 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 60.109375 + m_GlyphRect: + m_X: 277 + m_Y: 66 + m_Width: 50 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 49 + m_Metrics: + m_Width: 43.109375 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 53.859375 + m_GlyphRect: + m_X: 298 + m_Y: 186 + m_Width: 44 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 50 + m_Metrics: + m_Width: 49.90625 + m_Height: 49.90625 + m_HorizontalBearingX: 2.515625 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 54.9375 + m_GlyphRect: + m_X: 79 + m_Y: 374 + m_Width: 51 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 51 + m_Metrics: + m_Width: 32.984375 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 40.1875 + m_GlyphRect: + m_X: 325 + m_Y: 429 + m_Width: 34 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 52 + m_Metrics: + m_Width: 58.828125 + m_Height: 49.90625 + m_HorizontalBearingX: 2.515625 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 57.125 + m_GlyphRect: + m_X: 54 + m_Y: 455 + m_Width: 60 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 53 + m_Metrics: + m_Width: 40.734375 + m_Height: 48.28125 + m_HorizontalBearingX: 5.375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 44.609375 + m_GlyphRect: + m_X: 374 + m_Y: 6 + m_Width: 42 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 54 + m_Metrics: + m_Width: 34.53125 + m_Height: 49.90625 + m_HorizontalBearingX: 1.84375 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 38.828125 + m_GlyphRect: + m_X: 141 + m_Y: 372 + m_Width: 36 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 55 + m_Metrics: + m_Width: 35.78125 + m_Height: 48.28125 + m_HorizontalBearingX: 1.421875 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 38.625 + m_GlyphRect: + m_X: 332 + m_Y: 291 + m_Width: 37 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 56 + m_Metrics: + m_Width: 39.296875 + m_Height: 49.09375 + m_HorizontalBearingX: 4.828125 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 48.953125 + m_GlyphRect: + m_X: 186 + m_Y: 130 + m_Width: 41 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 57 + m_Metrics: + m_Width: 48.6875 + m_Height: 48.28125 + m_HorizontalBearingX: 0.203125 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 49.03125 + m_GlyphRect: + m_X: 314 + m_Y: 6 + m_Width: 49 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 58 + m_Metrics: + m_Width: 62.96875 + m_Height: 49.09375 + m_HorizontalBearingX: 1.21875 + m_HorizontalBearingY: 49.09375 + m_HorizontalAdvance: 65.34375 + m_GlyphRect: + m_X: 186 + m_Y: 310 + m_Width: 64 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 59 + m_Metrics: + m_Width: 48.203125 + m_Height: 48.28125 + m_HorizontalBearingX: -0.40625 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 47.390625 + m_GlyphRect: + m_X: 238 + m_Y: 189 + m_Width: 49 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 60 + m_Metrics: + m_Width: 45.546875 + m_Height: 48.28125 + m_HorizontalBearingX: 0.6875 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 46.921875 + m_GlyphRect: + m_X: 260 + m_Y: 249 + m_Width: 47 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 61 + m_Metrics: + m_Width: 36.859375 + m_Height: 48.28125 + m_HorizontalBearingX: 2.578125 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 42.03125 + m_GlyphRect: + m_X: 410 + m_Y: 228 + m_Width: 38 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 62 + m_Metrics: + m_Width: 15.03125 + m_Height: 65.28125 + m_HorizontalBearingX: 5.171875 + m_HorizontalBearingY: 54.40625 + m_HorizontalAdvance: 22.09375 + m_GlyphRect: + m_X: 6 + m_Y: 315 + m_Width: 16 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 63 + m_Metrics: + m_Width: 34.6875 + m_Height: 55.765625 + m_HorizontalBearingX: 1.21875 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 37.125 + m_GlyphRect: + m_X: 34 + m_Y: 161 + m_Width: 35 + m_Height: 57 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 64 + m_Metrics: + m_Width: 15.03125 + m_Height: 65.28125 + m_HorizontalBearingX: 1.90625 + m_HorizontalBearingY: 54.40625 + m_HorizontalAdvance: 22.09375 + m_GlyphRect: + m_X: 6 + m_Y: 392 + m_Width: 16 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 65 + m_Metrics: + m_Width: 18.03125 + m_Height: 14.28125 + m_HorizontalBearingX: 2.78125 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 23.59375 + m_GlyphRect: + m_X: 353 + m_Y: 186 + m_Width: 19 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 66 + m_Metrics: + m_Width: 29.453125 + m_Height: 7.140625 + m_HorizontalBearingX: 2.78125 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 35.015625 + m_GlyphRect: + m_X: 93 + m_Y: 292 + m_Width: 31 + m_Height: 8 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 67 + m_Metrics: + m_Width: 18.015625 + m_Height: 12.921875 + m_HorizontalBearingX: -8.96875 + m_HorizontalBearingY: 51 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 232 + m_Y: 493 + m_Width: 19 + m_Height: 13 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 68 + m_Metrics: + m_Width: 35.09375 + m_Height: 35.5 + m_HorizontalBearingX: 2.3125 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 41.953125 + m_GlyphRect: + m_X: 213 + m_Y: 254 + m_Width: 36 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 69 + m_Metrics: + m_Width: 35.15625 + m_Height: 51.75 + m_HorizontalBearingX: 4.484375 + m_HorizontalBearingY: 51 + m_HorizontalAdvance: 41.953125 + m_GlyphRect: + m_X: 57 + m_Y: 83 + m_Width: 36 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 70 + m_Metrics: + m_Width: 34.140625 + m_Height: 35.5 + m_HorizontalBearingX: 2.3125 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 37.9375 + m_GlyphRect: + m_X: 459 + m_Y: 245 + m_Width: 35 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 71 + m_Metrics: + m_Width: 35.09375 + m_Height: 51.75 + m_HorizontalBearingX: 2.3125 + m_HorizontalBearingY: 51 + m_HorizontalAdvance: 41.953125 + m_GlyphRect: + m_X: 68 + m_Y: 6 + m_Width: 36 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 72 + m_Metrics: + m_Width: 34.609375 + m_Height: 35.5 + m_HorizontalBearingX: 2.3125 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 39.296875 + m_GlyphRect: + m_X: 409 + m_Y: 288 + m_Width: 35 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 73 + m_Metrics: + m_Width: 25.78125 + m_Height: 51.40625 + m_HorizontalBearingX: 1.21875 + m_HorizontalBearingY: 51.40625 + m_HorizontalAdvance: 28.015625 + m_GlyphRect: + m_X: 34 + m_Y: 229 + m_Width: 26 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 74 + m_Metrics: + m_Width: 35.21875 + m_Height: 49.640625 + m_HorizontalBearingX: 2.3125 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 41.953125 + m_GlyphRect: + m_X: 185 + m_Y: 434 + m_Width: 36 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 75 + m_Metrics: + m_Width: 32.171875 + m_Height: 51 + m_HorizontalBearingX: 4.484375 + m_HorizontalBearingY: 51 + m_HorizontalAdvance: 40.734375 + m_GlyphRect: + m_X: 162 + m_Y: 68 + m_Width: 33 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 76 + m_Metrics: + m_Width: 11.890625 + m_Height: 51.40625 + m_HorizontalBearingX: 3.203125 + m_HorizontalBearingY: 51.40625 + m_HorizontalAdvance: 18.296875 + m_GlyphRect: + m_X: 71 + m_Y: 229 + m_Width: 13 + m_Height: 52 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 77 + m_Metrics: + m_Width: 17.75 + m_Height: 66.296875 + m_HorizontalBearingX: -2.109375 + m_HorizontalBearingY: 51.40625 + m_HorizontalAdvance: 18.84375 + m_GlyphRect: + m_X: 6 + m_Y: 6 + m_Width: 19 + m_Height: 67 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 78 + m_Metrics: + m_Width: 34.6875 + m_Height: 51 + m_HorizontalBearingX: 4.484375 + m_HorizontalBearingY: 51 + m_HorizontalAdvance: 37.8125 + m_GlyphRect: + m_X: 139 + m_Y: 131 + m_Width: 36 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 79 + m_Metrics: + m_Width: 9.3125 + m_Height: 51 + m_HorizontalBearingX: 4.484375 + m_HorizontalBearingY: 51 + m_HorizontalAdvance: 18.296875 + m_GlyphRect: + m_X: 142 + m_Y: 193 + m_Width: 10 + m_Height: 51 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 80 + m_Metrics: + m_Width: 52.15625 + m_Height: 34.75 + m_HorizontalBearingX: 4.484375 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 60.71875 + m_GlyphRect: + m_X: 427 + m_Y: 51 + m_Width: 53 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 81 + m_Metrics: + m_Width: 32.171875 + m_Height: 34.75 + m_HorizontalBearingX: 4.484375 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 40.734375 + m_GlyphRect: + m_X: 380 + m_Y: 335 + m_Width: 33 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 82 + m_Metrics: + m_Width: 35.765625 + m_Height: 35.5 + m_HorizontalBearingX: 2.25 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 40.25 + m_GlyphRect: + m_X: 6 + m_Y: 469 + m_Width: 37 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 83 + m_Metrics: + m_Width: 35.15625 + m_Height: 48.96875 + m_HorizontalBearingX: 4.484375 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 41.953125 + m_GlyphRect: + m_X: 188 + m_Y: 371 + m_Width: 36 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 84 + m_Metrics: + m_Width: 35.09375 + m_Height: 48.96875 + m_HorizontalBearingX: 2.3125 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 41.953125 + m_GlyphRect: + m_X: 232 + m_Y: 432 + m_Width: 36 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 85 + m_Metrics: + m_Width: 20.875 + m_Height: 34.40625 + m_HorizontalBearingX: 4.484375 + m_HorizontalBearingY: 34.40625 + m_HorizontalAdvance: 26.859375 + m_GlyphRect: + m_X: 391 + m_Y: 98 + m_Width: 22 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 86 + m_Metrics: + m_Width: 26.921875 + m_Height: 35.5 + m_HorizontalBearingX: 1.90625 + m_HorizontalBearingY: 34.75 + m_HorizontalAdvance: 31.21875 + m_GlyphRect: + m_X: 412 + m_Y: 415 + m_Width: 28 + m_Height: 36 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 87 + m_Metrics: + m_Width: 25.765625 + m_Height: 43.859375 + m_HorizontalBearingX: 1.09375 + m_HorizontalBearingY: 43.453125 + m_HorizontalAdvance: 29.03125 + m_GlyphRect: + m_X: 176 + m_Y: 254 + m_Width: 26 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 88 + m_Metrics: + m_Width: 31.421875 + m_Height: 34.75 + m_HorizontalBearingX: 4.078125 + m_HorizontalBearingY: 34 + m_HorizontalAdvance: 39.984375 + m_GlyphRect: + m_X: 474 + m_Y: 139 + m_Width: 32 + m_Height: 35 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 89 + m_Metrics: + m_Width: 38.625 + m_Height: 34 + m_HorizontalBearingX: 0.0625 + m_HorizontalBearingY: 34 + m_HorizontalAdvance: 38.765625 + m_GlyphRect: + m_X: 420 + m_Y: 183 + m_Width: 39 + m_Height: 34 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 90 + m_Metrics: + m_Width: 53.71875 + m_Height: 34 + m_HorizontalBearingX: 0.34375 + m_HorizontalBearingY: 34 + m_HorizontalAdvance: 54.40625 + m_GlyphRect: + m_X: 427 + m_Y: 6 + m_Width: 55 + m_Height: 34 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 91 + m_Metrics: + m_Width: 38.15625 + m_Height: 34 + m_HorizontalBearingX: 0.203125 + m_HorizontalBearingY: 34 + m_HorizontalAdvance: 38.5625 + m_GlyphRect: + m_X: 332 + m_Y: 246 + m_Width: 39 + m_Height: 34 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 92 + m_Metrics: + m_Width: 38.625 + m_Height: 48.21875 + m_HorizontalBearingX: 0.140625 + m_HorizontalBearingY: 34 + m_HorizontalAdvance: 38.765625 + m_GlyphRect: + m_X: 424 + m_Y: 123 + m_Width: 39 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 93 + m_Metrics: + m_Width: 28.5 + m_Height: 34 + m_HorizontalBearingX: 2.78125 + m_HorizontalBearingY: 34 + m_HorizontalAdvance: 33.859375 + m_GlyphRect: + m_X: 370 + m_Y: 472 + m_Width: 30 + m_Height: 34 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 94 + m_Metrics: + m_Width: 19.375 + m_Height: 65.28125 + m_HorizontalBearingX: 1.90625 + m_HorizontalBearingY: 54.40625 + m_HorizontalAdvance: 23.125 + m_GlyphRect: + m_X: 6 + m_Y: 84 + m_Width: 21 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 95 + m_Metrics: + m_Width: 7.890625 + m_Height: 55.765625 + m_HorizontalBearingX: 5.09375 + m_HorizontalBearingY: 48.28125 + m_HorizontalAdvance: 18.15625 + m_GlyphRect: + m_X: 38 + m_Y: 83 + m_Width: 8 + m_Height: 57 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 96 + m_Metrics: + m_Width: 19.375 + m_Height: 65.28125 + m_HorizontalBearingX: 1.84375 + m_HorizontalBearingY: 54.40625 + m_HorizontalAdvance: 23.125 + m_GlyphRect: + m_X: 36 + m_Y: 6 + m_Width: 21 + m_Height: 66 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 97 + m_Metrics: + m_Width: 15.765625 + m_Height: 8.09375 + m_HorizontalBearingX: 4.015625 + m_HorizontalBearingY: 23.734375 + m_HorizontalAdvance: 23.53125 + m_GlyphRect: + m_X: 66 + m_Y: 292 + m_Width: 16 + m_Height: 9 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 98 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 15.5 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 491 + m_Metrics: + m_Width: 49.84375 + m_Height: 13.609375 + m_HorizontalBearingX: 2.25 + m_HorizontalBearingY: 13.0625 + m_HorizontalAdvance: 54.40625 + m_GlyphRect: + m_X: 425 + m_Y: 97 + m_Width: 51 + m_Height: 15 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 516 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 0 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 32 + m_GlyphIndex: 3 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 33 + m_GlyphIndex: 4 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 34 + m_GlyphIndex: 5 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 35 + m_GlyphIndex: 6 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 36 + m_GlyphIndex: 7 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 37 + m_GlyphIndex: 8 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 38 + m_GlyphIndex: 9 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 39 + m_GlyphIndex: 10 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 40 + m_GlyphIndex: 11 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 41 + m_GlyphIndex: 12 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 42 + m_GlyphIndex: 13 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 43 + m_GlyphIndex: 14 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 44 + m_GlyphIndex: 15 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 45 + m_GlyphIndex: 16 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 46 + m_GlyphIndex: 17 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 47 + m_GlyphIndex: 18 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 48 + m_GlyphIndex: 19 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 49 + m_GlyphIndex: 20 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 50 + m_GlyphIndex: 21 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 51 + m_GlyphIndex: 22 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 52 + m_GlyphIndex: 23 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 53 + m_GlyphIndex: 24 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 54 + m_GlyphIndex: 25 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 55 + m_GlyphIndex: 26 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 56 + m_GlyphIndex: 27 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 57 + m_GlyphIndex: 28 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 58 + m_GlyphIndex: 29 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 59 + m_GlyphIndex: 30 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 60 + m_GlyphIndex: 31 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 61 + m_GlyphIndex: 32 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 62 + m_GlyphIndex: 33 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 63 + m_GlyphIndex: 34 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 64 + m_GlyphIndex: 35 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65 + m_GlyphIndex: 36 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 66 + m_GlyphIndex: 37 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 67 + m_GlyphIndex: 38 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 68 + m_GlyphIndex: 39 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 69 + m_GlyphIndex: 40 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 70 + m_GlyphIndex: 41 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 71 + m_GlyphIndex: 42 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 72 + m_GlyphIndex: 43 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 73 + m_GlyphIndex: 44 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 74 + m_GlyphIndex: 45 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 75 + m_GlyphIndex: 46 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 76 + m_GlyphIndex: 47 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 77 + m_GlyphIndex: 48 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 78 + m_GlyphIndex: 49 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 79 + m_GlyphIndex: 50 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 80 + m_GlyphIndex: 51 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 81 + m_GlyphIndex: 52 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 82 + m_GlyphIndex: 53 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 83 + m_GlyphIndex: 54 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 84 + m_GlyphIndex: 55 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 85 + m_GlyphIndex: 56 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 86 + m_GlyphIndex: 57 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 87 + m_GlyphIndex: 58 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 88 + m_GlyphIndex: 59 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 89 + m_GlyphIndex: 60 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 90 + m_GlyphIndex: 61 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 91 + m_GlyphIndex: 62 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 92 + m_GlyphIndex: 63 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 93 + m_GlyphIndex: 64 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 94 + m_GlyphIndex: 65 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 96 + m_GlyphIndex: 67 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 97 + m_GlyphIndex: 68 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 98 + m_GlyphIndex: 69 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 99 + m_GlyphIndex: 70 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 100 + m_GlyphIndex: 71 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 101 + m_GlyphIndex: 72 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 102 + m_GlyphIndex: 73 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 103 + m_GlyphIndex: 74 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 104 + m_GlyphIndex: 75 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 105 + m_GlyphIndex: 76 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 106 + m_GlyphIndex: 77 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 107 + m_GlyphIndex: 78 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 108 + m_GlyphIndex: 79 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 109 + m_GlyphIndex: 80 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 110 + m_GlyphIndex: 81 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 111 + m_GlyphIndex: 82 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 112 + m_GlyphIndex: 83 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 113 + m_GlyphIndex: 84 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 114 + m_GlyphIndex: 85 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 115 + m_GlyphIndex: 86 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 116 + m_GlyphIndex: 87 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 117 + m_GlyphIndex: 88 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 118 + m_GlyphIndex: 89 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 119 + m_GlyphIndex: 90 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 120 + m_GlyphIndex: 91 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 121 + m_GlyphIndex: 92 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 122 + m_GlyphIndex: 93 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 123 + m_GlyphIndex: 94 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 124 + m_GlyphIndex: 95 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 125 + m_GlyphIndex: 96 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 126 + m_GlyphIndex: 97 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 160 + m_GlyphIndex: 98 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8203 + m_GlyphIndex: 516 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 491 + m_Scale: 1 + m_AtlasTextures: + - {fileID: 28160480733836102} + m_AtlasTextureIndex: 0 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 30 + m_Height: 78 + - m_X: 0 + m_Y: 78 + m_Width: 32 + m_Height: 77 + - m_X: 30 + m_Y: 0 + m_Width: 32 + m_Height: 77 + - m_X: 0 + m_Y: 155 + m_Width: 28 + m_Height: 77 + - m_X: 0 + m_Y: 232 + m_Width: 28 + m_Height: 77 + - m_X: 0 + m_Y: 309 + m_Width: 27 + m_Height: 77 + - m_X: 0 + m_Y: 386 + m_Width: 27 + m_Height: 77 + - m_X: 0 + m_Y: 463 + m_Width: 48 + m_Height: 47 + - m_X: 27 + m_Y: 309 + m_Width: 44 + m_Height: 72 + - m_X: 27 + m_Y: 381 + m_Width: 46 + m_Height: 68 + - m_X: 48 + m_Y: 449 + m_Width: 71 + m_Height: 62 + - m_X: 28 + m_Y: 155 + m_Width: 46 + m_Height: 68 + - m_X: 32 + m_Y: 77 + m_Width: 19 + m_Height: 68 + - m_X: 51 + m_Y: 77 + m_Width: 47 + m_Height: 63 + - m_X: 62 + m_Y: 0 + m_Width: 47 + m_Height: 63 + - m_X: 28 + m_Y: 223 + m_Width: 37 + m_Height: 63 + - m_X: 28 + m_Y: 286 + m_Width: 32 + m_Height: 21 + - m_X: 60 + m_Y: 286 + m_Width: 27 + m_Height: 20 + - m_X: 65 + m_Y: 223 + m_Width: 24 + m_Height: 63 + - m_X: 71 + m_Y: 306 + m_Width: 62 + m_Height: 62 + - m_X: 87 + m_Y: 286 + m_Width: 42 + m_Height: 19 + - m_X: 73 + m_Y: 368 + m_Width: 62 + m_Height: 62 + - m_X: 119 + m_Y: 430 + m_Width: 60 + m_Height: 62 + - m_X: 74 + m_Y: 140 + m_Width: 59 + m_Height: 62 + - m_X: 98 + m_Y: 63 + m_Width: 58 + m_Height: 62 + - m_X: 109 + m_Y: 0 + m_Width: 48 + m_Height: 62 + - m_X: 89 + m_Y: 202 + m_Width: 47 + m_Height: 62 + - m_X: 129 + m_Y: 264 + m_Width: 41 + m_Height: 40 + - m_X: 133 + m_Y: 304 + m_Width: 47 + m_Height: 62 + - m_X: 135 + m_Y: 366 + m_Width: 47 + m_Height: 62 + - m_X: 133 + m_Y: 125 + m_Width: 47 + m_Height: 62 + - m_X: 156 + m_Y: 62 + m_Width: 44 + m_Height: 62 + - m_X: 157 + m_Y: 0 + m_Width: 43 + m_Height: 62 + - m_X: 136 + m_Y: 187 + m_Width: 21 + m_Height: 62 + - m_X: 157 + m_Y: 187 + m_Width: 75 + m_Height: 61 + - m_X: 170 + m_Y: 248 + m_Width: 37 + m_Height: 56 + - m_X: 180 + m_Y: 304 + m_Width: 75 + m_Height: 61 + - m_X: 180 + m_Y: 124 + m_Width: 52 + m_Height: 61 + - m_X: 207 + m_Y: 248 + m_Width: 47 + m_Height: 47 + - m_X: 179 + m_Y: 428 + m_Width: 47 + m_Height: 61 + - m_X: 182 + m_Y: 365 + m_Width: 47 + m_Height: 61 + - m_X: 226 + m_Y: 426 + m_Width: 47 + m_Height: 61 + - m_X: 229 + m_Y: 365 + m_Width: 46 + m_Height: 61 + - m_X: 226 + m_Y: 487 + m_Width: 30 + m_Height: 24 + - m_X: 273 + m_Y: 426 + m_Width: 46 + m_Height: 61 + - m_X: 200 + m_Y: 0 + m_Width: 46 + m_Height: 61 + - m_X: 200 + m_Y: 61 + m_Width: 45 + m_Height: 61 + - m_X: 232 + m_Y: 122 + m_Width: 43 + m_Height: 61 + - m_X: 245 + m_Y: 61 + m_Width: 26 + m_Height: 61 + - m_X: 246 + m_Y: 0 + m_Width: 62 + m_Height: 60 + - m_X: 271 + m_Y: 60 + m_Width: 61 + m_Height: 60 + - m_X: 308 + m_Y: 0 + m_Width: 60 + m_Height: 60 + - m_X: 232 + m_Y: 183 + m_Width: 60 + m_Height: 60 + - m_X: 254 + m_Y: 243 + m_Width: 58 + m_Height: 60 + - m_X: 255 + m_Y: 303 + m_Width: 57 + m_Height: 60 + - m_X: 275 + m_Y: 120 + m_Width: 55 + m_Height: 60 + - m_X: 292 + m_Y: 180 + m_Width: 55 + m_Height: 60 + - m_X: 330 + m_Y: 120 + m_Width: 53 + m_Height: 60 + - m_X: 332 + m_Y: 60 + m_Width: 53 + m_Height: 60 + - m_X: 368 + m_Y: 0 + m_Width: 53 + m_Height: 60 + - m_X: 275 + m_Y: 363 + m_Width: 51 + m_Height: 60 + - m_X: 421 + m_Y: 0 + m_Width: 66 + m_Height: 45 + - m_X: 487 + m_Y: 0 + m_Width: 22 + m_Height: 60 + - m_X: 421 + m_Y: 45 + m_Width: 64 + m_Height: 46 + - m_X: 485 + m_Y: 60 + m_Width: 26 + m_Height: 26 + - m_X: 485 + m_Y: 86 + m_Width: 25 + m_Height: 47 + - m_X: 385 + m_Y: 60 + m_Width: 34 + m_Height: 32 + - m_X: 419 + m_Y: 91 + m_Width: 62 + m_Height: 26 + - m_X: 385 + m_Y: 92 + m_Width: 33 + m_Height: 46 + - m_X: 418 + m_Y: 117 + m_Width: 50 + m_Height: 60 + - m_X: 468 + m_Y: 133 + m_Width: 43 + m_Height: 46 + - m_X: 383 + m_Y: 138 + m_Width: 31 + m_Height: 60 + - m_X: 414 + m_Y: 177 + m_Width: 50 + m_Height: 45 + - m_X: 464 + m_Y: 179 + m_Width: 47 + m_Height: 60 + - m_X: 347 + m_Y: 180 + m_Width: 30 + m_Height: 26 + - m_X: 377 + m_Y: 198 + m_Width: 27 + m_Height: 57 + - m_X: 326 + m_Y: 240 + m_Width: 50 + m_Height: 45 + - m_X: 347 + m_Y: 206 + m_Width: 20 + m_Height: 32 + - m_X: 404 + m_Y: 222 + m_Width: 49 + m_Height: 60 + - m_X: 376 + m_Y: 255 + m_Width: 27 + m_Height: 36 + - m_X: 326 + m_Y: 285 + m_Width: 48 + m_Height: 60 + - m_X: 453 + m_Y: 239 + m_Width: 46 + m_Height: 47 + - m_X: 403 + m_Y: 282 + m_Width: 46 + m_Height: 47 + - m_X: 449 + m_Y: 286 + m_Width: 45 + m_Height: 60 + - m_X: 319 + m_Y: 423 + m_Width: 45 + m_Height: 60 + - m_X: 326 + m_Y: 346 + m_Width: 42 + m_Height: 60 + - m_X: 374 + m_Y: 329 + m_Width: 44 + m_Height: 46 + - m_X: 364 + m_Y: 406 + m_Width: 42 + m_Height: 60 + - m_X: 364 + m_Y: 466 + m_Width: 41 + m_Height: 45 + - m_X: 405 + m_Y: 466 + m_Width: 41 + m_Height: 40 + - m_X: 446 + m_Y: 346 + m_Width: 41 + m_Height: 60 + - m_X: 406 + m_Y: 375 + m_Width: 40 + m_Height: 34 + - m_X: 406 + m_Y: 409 + m_Width: 39 + m_Height: 47 + - m_X: 445 + m_Y: 409 + m_Width: 41 + m_Height: 46 + - m_X: 446 + m_Y: 455 + m_Width: 41 + m_Height: 46 + m_FreeGlyphRects: + - m_X: 0 + m_Y: 510 + m_Width: 48 + m_Height: 1 + - m_X: 27 + m_Y: 449 + m_Width: 21 + m_Height: 14 + - m_X: 30 + m_Y: 77 + m_Width: 2 + m_Height: 1 + - m_X: 28 + m_Y: 307 + m_Width: 43 + m_Height: 2 + - m_X: 60 + m_Y: 306 + m_Width: 11 + m_Height: 3 + - m_X: 71 + m_Y: 368 + m_Width: 2 + m_Height: 13 + - m_X: 73 + m_Y: 430 + m_Width: 46 + m_Height: 19 + - m_X: 32 + m_Y: 145 + m_Width: 42 + m_Height: 10 + - m_X: 51 + m_Y: 140 + m_Width: 23 + m_Height: 15 + - m_X: 62 + m_Y: 63 + m_Width: 36 + m_Height: 14 + - m_X: 74 + m_Y: 202 + m_Width: 15 + m_Height: 21 + - m_X: 89 + m_Y: 264 + m_Width: 40 + m_Height: 22 + - m_X: 87 + m_Y: 305 + m_Width: 46 + m_Height: 1 + - m_X: 129 + m_Y: 304 + m_Width: 4 + m_Height: 2 + - m_X: 133 + m_Y: 366 + m_Width: 2 + m_Height: 2 + - m_X: 98 + m_Y: 125 + m_Width: 35 + m_Height: 15 + - m_X: 109 + m_Y: 62 + m_Width: 47 + m_Height: 1 + - m_X: 133 + m_Y: 187 + m_Width: 3 + m_Height: 15 + - m_X: 136 + m_Y: 249 + m_Width: 34 + m_Height: 15 + - m_X: 157 + m_Y: 248 + m_Width: 13 + m_Height: 16 + - m_X: 156 + m_Y: 124 + m_Width: 24 + m_Height: 1 + - m_X: 135 + m_Y: 428 + m_Width: 44 + m_Height: 2 + - m_X: 180 + m_Y: 365 + m_Width: 2 + m_Height: 1 + - m_X: 182 + m_Y: 426 + m_Width: 44 + m_Height: 2 + - m_X: 119 + m_Y: 492 + m_Width: 107 + m_Height: 19 + - m_X: 179 + m_Y: 489 + m_Width: 47 + m_Height: 22 + - m_X: 200 + m_Y: 122 + m_Width: 32 + m_Height: 2 + - m_X: 246 + m_Y: 60 + m_Width: 25 + m_Height: 1 + - m_X: 180 + m_Y: 185 + m_Width: 52 + m_Height: 2 + - m_X: 207 + m_Y: 295 + m_Width: 47 + m_Height: 9 + - m_X: 232 + m_Y: 243 + m_Width: 22 + m_Height: 5 + - m_X: 207 + m_Y: 303 + m_Width: 48 + m_Height: 1 + - m_X: 271 + m_Y: 120 + m_Width: 4 + m_Height: 2 + - m_X: 275 + m_Y: 180 + m_Width: 17 + m_Height: 3 + - m_X: 255 + m_Y: 363 + m_Width: 20 + m_Height: 2 + - m_X: 509 + m_Y: 0 + m_Width: 2 + m_Height: 60 + - m_X: 485 + m_Y: 45 + m_Width: 2 + m_Height: 15 + - m_X: 419 + m_Y: 60 + m_Width: 2 + m_Height: 31 + - m_X: 418 + m_Y: 92 + m_Width: 1 + m_Height: 25 + - m_X: 510 + m_Y: 86 + m_Width: 1 + m_Height: 47 + - m_X: 481 + m_Y: 91 + m_Width: 4 + m_Height: 42 + - m_X: 468 + m_Y: 117 + m_Width: 17 + m_Height: 16 + - m_X: 383 + m_Y: 120 + m_Width: 2 + m_Height: 18 + - m_X: 414 + m_Y: 138 + m_Width: 4 + m_Height: 39 + - m_X: 464 + m_Y: 177 + m_Width: 4 + m_Height: 2 + - m_X: 377 + m_Y: 180 + m_Width: 6 + m_Height: 18 + - m_X: 292 + m_Y: 240 + m_Width: 34 + m_Height: 3 + - m_X: 312 + m_Y: 240 + m_Width: 14 + m_Height: 123 + - m_X: 347 + m_Y: 238 + m_Width: 30 + m_Height: 2 + - m_X: 367 + m_Y: 206 + m_Width: 10 + m_Height: 34 + - m_X: 404 + m_Y: 198 + m_Width: 10 + m_Height: 24 + - m_X: 376 + m_Y: 206 + m_Width: 1 + m_Height: 49 + - m_X: 499 + m_Y: 239 + m_Width: 12 + m_Height: 272 + - m_X: 453 + m_Y: 222 + m_Width: 11 + m_Height: 17 + - m_X: 403 + m_Y: 255 + m_Width: 1 + m_Height: 27 + - m_X: 494 + m_Y: 286 + m_Width: 17 + m_Height: 225 + - m_X: 449 + m_Y: 282 + m_Width: 4 + m_Height: 4 + - m_X: 275 + m_Y: 423 + m_Width: 44 + m_Height: 3 + - m_X: 374 + m_Y: 285 + m_Width: 2 + m_Height: 44 + - m_X: 374 + m_Y: 291 + m_Width: 29 + m_Height: 38 + - m_X: 312 + m_Y: 345 + m_Width: 62 + m_Height: 1 + - m_X: 326 + m_Y: 406 + m_Width: 38 + m_Height: 17 + - m_X: 368 + m_Y: 345 + m_Width: 6 + m_Height: 61 + - m_X: 256 + m_Y: 487 + m_Width: 108 + m_Height: 24 + - m_X: 319 + m_Y: 483 + m_Width: 45 + m_Height: 28 + - m_X: 405 + m_Y: 506 + m_Width: 106 + m_Height: 5 + - m_X: 418 + m_Y: 329 + m_Width: 31 + m_Height: 17 + - m_X: 487 + m_Y: 346 + m_Width: 24 + m_Height: 165 + - m_X: 368 + m_Y: 375 + m_Width: 38 + m_Height: 31 + - m_X: 418 + m_Y: 329 + m_Width: 28 + m_Height: 46 + - m_X: 446 + m_Y: 406 + m_Width: 65 + m_Height: 3 + - m_X: 406 + m_Y: 456 + m_Width: 40 + m_Height: 10 + - m_X: 446 + m_Y: 501 + m_Width: 65 + m_Height: 10 + - m_X: 486 + m_Y: 406 + m_Width: 25 + m_Height: 49 + - m_X: 445 + m_Y: 455 + m_Width: 1 + m_Height: 11 + m_fontInfo: + Name: + PointSize: 0 + Scale: 0 + CharacterCount: 0 + LineHeight: 0 + Baseline: 0 + Ascender: 0 + CapHeight: 0 + Descender: 0 + CenterLine: 0 + SuperscriptOffset: 0 + SubscriptOffset: 0 + SubSize: 0 + Underline: 0 + UnderlineThickness: 0 + strikethrough: 0 + strikethroughThickness: 0 + TabWidth: 0 + Padding: 0 + AtlasWidth: 0 + AtlasHeight: 0 + atlas: {fileID: 0} + m_AtlasWidth: 512 + m_AtlasHeight: 512 + m_AtlasPadding: 5 + m_AtlasRenderMode: 4165 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: [] + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: f107ab11e934487459b829102ee621e2 + pointSizeSamplingMode: 0 + pointSize: 68 + padding: 5 + packingMode: 0 + atlasWidth: 512 + atlasHeight: 512 + characterSetSelectionMode: 0 + characterSequence: 32 - 126, 160, 8203, 8230, 9633 + referencedFontAssetGUID: + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4165 + includeFontFeatures: 0 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: [] + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!21 &21301536800525264 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: EuclidCircularB-Semibold SDF Material + m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 28160480733836102} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _Diffuse: 0.5 + - _FaceDilate: 0 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 6 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.8333333 + - _ScaleRatioB: 0.6770833 + - _ScaleRatioC: 0.6770833 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 512 + - _TextureWidth: 512 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} +--- !u!28 &28160480733836102 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: EuclidCircularB-Semibold SDF Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + serializedVersion: 2 + m_Width: 512 + m_Height: 512 + m_CompleteImageSize: 262144 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 1 + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_AlphaIsTransparency: 0 + m_ImageCount: 1 + m_TextureDimension: 2 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 0 + m_WrapV: 0 + m_WrapW: 0 + m_LightmapFormat: 0 + m_ColorSpace: 0 + image data: 262144 + _typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c191a1c1d1c1b18130d0b0600000000000000000000000000000000060c0d1d1d1d1d1d1d1b19140e0c060000000000000000000000000000000000000000000000000000000000070d0f1416191a1715120c0a03000207090b0b0b0b0b0b0b0b0000000000000000000000000000000000000000000000030a0c121517191a191614110c09030000000000000000000000000000000000000000000000000000000000000000050b0d131515120c0a04000000000000000000000000000000000000000000000003090b1c2020202020202020202019171107000000000000000000000000000000000000000000000000000811181a20202020202020202015130d030000000000000000000000000000000000000000000000040a0c1f202020202020202020110f090000000000000000000000000000000000000000000000000000050b0d2020202020202020200d0b050000000000000000000000000000000000000000000000000006101618202020202020202020100e0800000000000000000000000000080d0f1f20202020202020202020190b07000000000000000000000000000000000000040e141620202020202020201f0c0a04000000000000050e151720202020202020201f0c0903000000000000000000000000000000000006101618202020202020202020100e080000000000000000000c171f212e30313232302d282320190e08000000000000000000000000000e192023323232323232312f2a23211a0f05000000000000000000000000000000000000000000000000050b101b2224292c2e2f2d2a27211e160b161c1e202020202020202013110b020000000000000000000000000000000003090c171e21272a2c2e2f2e2c2a26211e160b0902000000000000000000000000000000000000000000000000000000030d181f22282b2a27211f170b0100000000000000000000000000000000000000000a161e2132353535353535353535352e2c24180a00000000000000000000000000000000000000000000000b19252c2f3535353535353535352a272015070000000000000000000000000000000000000000000c171f213435353535353535353527241d120400000000000000000000000000000000000000000000000d1820223535353535353535352220190e00000000000000000000000000000000000000000000000917232a2d35353535353535353525221b100200000000000000000002101b222535353535353535353535352f201c1308000000000000000000000000000000081621292b353535353535353535211f170b00000000081622292c353535353535353534211e160b0000000000000000000000000000000917232a2d35353535353535353525221b10020000000000000c1c293337434546484745423d38352b231c1103000000000000000000000e1e2c353848484848484746443f38352c20190e000000000000000000000000000000000000000000010d1820222e363a3f414344423f3c36322922293133353535353535353528261f140600000000000000000000000000010b161e212933363c3f41434543413f3c363228201d150a000000000000000000000000000000000000000000000000000b171e2a34373d40403c3633291d15090000000000000000000000000000000000000a1a283236474a4a4a4a4a4a4a4a4a4a4440362818060000000000000000000000000000000000000000000819293741444a4a4a4a4a4a4a4a4a3f3c32251500000000000000000000000000000000000000000c1c2933374a4a4a4a4a4a4a4a4a4a3c39302212000000000000000000000000000000000000000000000d1d2b34374a4a4a4a4a4a4a4a4a38352b1e0e000000000000000000000000000000000000000000061727353f424a4a4a4a4a4a4a4a4a3a372e211000000000000000000010202e373a4a4a4a4a4a4a4a4a4a4a4a44353025180800000000000000000000000000041626343d414a4a4a4a4a4a4a4a4a3633291b0b0000001626343e414a4a4a4a4a4a4a4a4a3632281b0b00000000000000000000000000061727353f424a4a4a4a4a4a4a4a4a3a372e211000000000000417293a474c595a5c5d5c5a58534d493c372e1e160b000000000000000006192c3c494d5d5d5d5d5d5d5b59544e493d352b1e100200000000000000000000000000000000000009141d2b34373e4a4f5456585a5755524b4639363c45494a4a4a4a4a4a4a4a3e3a31241402000000000000000000000009141d28323639464c515456585a585654514b46393632281c1308000000000000000000000000000000000000000000000c1b29333b474c525555524c463a312719090000000000000000000000000000000003162838454b5c6060606060606060606059534636241401000000000000000000000000000000000000000011253747545a606060606060606060544f433219090000000000000000000000000000000000000417293a474c5f606060606060606060514c40301d09000000000000000000000000000000000000000005182b3b484c5f606060606060605f4d483c2b190500000000000000000000000000000000000000001023354552586060606060606060604f4b3f2e1b08000000000000000d1d2e3f4b4f5f60606060606060606060594a43362513000000000000000000000000000e213444515660606060606060605f4c463a2917040008183445515760606060606060605f4b46392816030000000000000000000000001023354552586060606060606060604f4b3f2e1b08000000000a1f334758616e6f717271706d68625a504b3f32281b0c000000000000000c2035495a62727272727272706e69635b4d483c2e201000000000000000000000000000000000000d1926313b484c555c64696b6e6f6c6a6761574f4a4c595e6060606060606060534e42311f0b000000000000000000010f19263139464b535761676a6c6e6f6e6b69666157534b45383025180e00000000000000000000000000000000000000000c1c2a39464b5962686a6a6761584b4437271808000000000000000000000000000000091e3245566071757575757575757575756e645342311f0f0000000000000000000000000000000000000000182c4154656f7575757575757575756a614f3727150100000000000000000000000000000000000a1f3347586174757575757575757575665e4c39240f00000000000000000000000000000000000000000b2034485962757575757575757575625a4835200a0000000000000000000000000000000000000000162a3f52636d757575757575757575655d4b37220e0000000000000a1a2b3b4b5d6474757575757575757575756e605443301c0700000000000000000000000014293d51626b757575757575757574615846331f0a0013253651636c757575757575757574615746321e09000000000000000000000000162a3f52636d757575757575757575655d4b37220e000000000c21374c6176828586878785827d786f655d4b4639291c0c0000000000000d23384d627887878787878786847f796e625a4b3f2e1d0d0000000000000000000000000000000e1d2b37444b59626b727a7e818384827f7c766d645c4b6b73757575757575757568604e3a2611000000000000000003111f2c37444b5761686f767c7f81838483817f7c766f6860564a43362b1e1002000000000000000000000000000000000004172a3a4757616c777d807f7c766a6055443626140100000000000000000000000000000b21364b6076868a8a8a8a8a8a8a8a8a8a836e604e3d2d1b0b000000000000000000000000000000000000001a2f445a6f848a8a8a8a8a8a8a8a8a7f6a5544311d0800000000000000000000000000000000011426364c61768a8a8a8a8a8a8a8a8a8a7c66513c271100000000000000000000000000000000000000011527374c62778c8a8a8a8a8a8a8a8c78624d3827150200000000000000000000000000000000000000182d42586d828a8a8a8a8a8a8a8a8a7a654f3a25100000000000021628384859647b8a8a8a8a8a8a8a8a8a8a8a8372604a35200b0000000000000000000000071b2d3e566b808a8a8a8a8a8a8a8a8b76614c36210c071c3043546c818a8a8a8a8a8a8a8a8a75614b36210c000000000000000000000000182d42586d828a8a8a8a8a8a8a8a8a7b654f3a2510000000000d22374d62778c9a9b9d9c9a97928c847b6d6157463a291a0a00000000000e23384e63788d9d9d9d9d9c9b99948c8378645d4b3c2b1905000000000000000000000000000e1e2c3b485560697780878f9496989997949189827a6b6073898a8a8a8a8a8a8a8a7e68533e2813000000000000000512212e3d49556068757e848a919496989a989694918a847d74676054483c2d201103000000000000000000000000000000000a1f3347586175818b929595918a8073605443301c0e0000000000000000000000000000091e32455663798a9f9f9f9f9f9f9f9fa1937e685c4a3928160300000000000000000000000000000000000011263b51667b90a49f9f9f9f9f9f9d8774604b35200f00000000000000000000000000000000081c304354697f94a89f9f9f9f9f9f9d8773604b35200b00000000000000000000000000000000000000081d3144556a7f95aa9f9f9f9f9fab95806b5645311d0900000000000000000000000000000000000000182d42586d82979f9f9f9f9f9f9f8f7a654f3a25100000000003111e3245566278889da99f9f9f9f9f9fa79c8675615443301c0700000000000000000000000d22364a5c72879d9f9f9f9f9f9fa9927d67523929160b20354a6073889d9f9f9f9f9f9fa9917c6751392816030000000000000000000000182d42586d82979f9f9f9f9f9f9f8f7a654f3a2510000000000d22374d62778ca2b1b2b1afadab9f9990817561584638281502000000000e23384e63788da3b2b2b2b2b0aeab9f99897b645a4834200f0000000000000000000000000e1e2c3c495962737e89959ca5a9abadafacaaa89e978c807473889e9f9f9f9f9f9f937d68533e2813000000000000011223303f4b5b63737d88939a9fa9a9abadafadaba9a99f9992877d72625a4a3e2f2111000000000000000000000000000000091c2f404c617686979faaaaaaa89e958372604b3c2b190500000000000000000000000000031628384a5b687e93a0b2c3b5b5b5bfb49f8b7a645746321e130000000000000000000000000000000000000b20354a6073879cb2c6b5b5b5b7a6917c67513d2d1a070000000000000000000000000000000b20354b6073879db2b5b5b5b5b9a8947e695443301c08000000000000000000000000000000000000000b20354b6074889db2b5b5b5b5b5b39e8875604b36200f00000000000000000000000000000000000000182d42586d8297adb5b5b5b5b5a48f7a654f3a251000000000112232434b6074859ba6b8b5b5b5b5bcab9e89796357463625130000000000000000000000000f24394f64798ea5b6b5b5b5b5b5ae99836e5746321e1325364f657a8fa6b7b5b5b5b5b5ae98836e5745321e090000000000000000000000182d42586d8297adb5b5b5b5b5a48f7a654f3a2510000000000d22374d62778ca2b7c7c6c5c9bcb5af9f978676615645321d0d000000000e23384e63788da3b8c7c7c7c5c9bcb5a79e8978624d3d2c1a06000000000000000000000a1a2c3c495a637785939ea8b2b6c3c0c3c4c1c6b9b4ab9f968576889eb3b5b5b5b5a8937d68533e28130000000000000f2030414d5d657986929da6afb4bac7c1c3c4c3c0c7bab4aea59d918578645c4c3f2f1e0e00000000000000000000000000000f23384c5e6f849aa4b4bbc8c6b9b4a1947e695a4835200b00000000000000000000000000000a1a2d3d4e606e8298a5b6c8d8cacdbaa99c8675614b41301f0e0000000000000000000000000000000000071c304354697e93a8b9cccad4c4af9a85705b4a36210c0000000000000000000000000000061a2c3d51667c91a5b6cacadac9b49e8976614c36261401000000000000000000000000000000000000061a2c3d51667c91a6b7cbcacacacbb8a6927c67523d2d1a07000000000000000000000000000000000000182d42586d8297adc2cacacabaa48f7a654f3a25100000000e1e2f404f616d8298a3b5c4d5cacfbeb49f8d7c665b49392918080000000000000000000000071b2d3e566b8096abc3d4cacacac9b49f8a76614b36211c3043546c8196abc4d4cacacac9b49f8a75604b36210b0000000000000000000000182d42586d8297adc2cacacabaa48f7a654f3a2510000000000d22374d62778ca2b7ccdbdadacfcabdb1a49a8474604b3b2a18050000000e23384e63788da3b3b4bac7c9cecfc5b8a799836e5b4936210c00000000000000000002152738495a6378879ba3b3b9c6cad3d6d8d9d7d7cdc9bcb4a39a85899eb3c9cacabda8937d68533e281300000000000b1b2d3e4d5f677b899ca4b3b7c4c9ced8d6d8d9d8d6d7cdc9c3b7b2a39b887a655d4c3c2b1a0a0000000000000000000000000011263b50667b90a1b3c2ced9d7cdbfb49f8a78624d38220d0000000000000000000000000000000f1f31424c6176879daabbcee2d7c7b6a497826d5f4d3d2c1a0a00000000000000000000000000000000001325364b6176899eb4c9dadcc8b4a28e79634e3a291704000000000000000000000000000c2135495b6f849aafc3d4e3cfbcab96816c5846331808000000000000000000000000000000000000000c2135495b6f849aafc4d4e7dfe7d5c4b09a85705b4a36210b000000000000000000000000000000000000182d42586d8297adc2d7dfcfbaa48f7a654f3a251000000b1b2c3c4c5e697f94a0b2c1d2e2d2c1b2a0947f695e4c3c2c1b0b0000000000000000000000000d22364a5c72879db2c7dcdfdfe1cdbaa9917c6752392820354a6073889db2c8dddfdfe1cdbaa8917c67513828160300000000000000000000182d42586d8297adc2d7dfcfbaa48f7a654f3a2510000000000d22374d62778ca2b7bec6c9d2e3dfcec2b4a2947f6a5947341f0b0000000e23384e63788d9e9e9fa9aab4bac7d5c5b59f8c79634e39230e000000000000000000091d3145566378889da5b5c1ccd6dfdfd6ccc8c6c5c7cacec1b4a29a9ea7b9cce0d2bda8937d68533e2813000000000417293a4a5c677d8b9ea7b5c2cbd4dfe0ded8d5d4d5d8dee0ded4cac1b4a69d8a7b655a4838271502000000000000000000000003182d43586d8298adbfd0e2ebe9e1cdbaa9947f69543f2a1400000000000000000000000000000001131f334658647a8b9fb4bfd0e2d3c2b1a0927d675b493828150200000000000000000000000000000000081e3346576c8196abbccfe3d1c0ac97826c5847331f08000a0a0a0a0a0a0a0a0a0a0a031729394e63798c9fb5cadfdfcab59f8c79634e3a291700000000000000000000000000000000000000031628384e63788c9fb5cadff2fff3ddc8b4a28e79634e392917030000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100008182939495b667c8c9fb4becfdfd5c5b5a398826e614f402f1e0e000000000000000000000000000f24394f64798ea5b6cadff4fde9d7c7ae98836e574532253a4f647a8fa6b7cbdff4fce9d7c6ad98836e5645321e0900000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000d22374d62778ca2a6a9b1b5c2ccd9e0d1c0b49e8a77624c37220d0000000e23384d6378898888898c949fa9bacecfbcab947f6a553f2a150000000000000000071b2d3e4b6074859ba6b7c3d2e1d9cecac5b8b3b1b0b2b4bbc8c0b4afb3b9c5d6e8d2bda8937d68533e2813000000000a1f334658647a8b9fa9b9c5d2dfdfd5ccc8c2c0bec0c3c9ccd6e0dfd1c4b7a89e8978625645311d0c0000000000000000000000071c31475c71869cb1c6dbeefefce9d7c7ad98826d58432d18030000000000000000000000000000000417293a4a5c697f94a1b3c4d4e0cebeb49e8a79635645321d1200000000000000000000000000000000031729394d63788c9fb5cadfdec9b49f8a76614c362614202020202020202020202020201e3346576c8196abbccfe3d3c2af99846f5b49351b0b00000000000000000000000000000000000000091e3245566b8196abbccfe3f8fff7e4d1c0ac97816c5746331e0a0000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100013253646576379899eaabbcedcd8c8b8a69b8575604b4332221200000000000000000000000000071b2d3e566b8095abc3d4e6f9fff4dec9b49f8a75604b362d3e566b8196abc4d4e6fafff3dec9b49e8975604b36210b00000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000d22374d62778c8f91949ca4afbbccdee1cdb9a8947f6a543929170300000c2035495a6373737375777f8b9fb4c9dac9af99846f5a442f1a05000000000000000d22364a5c6b8096a3b5c4d4e1d4c8bbb4aca79e9c9b9d9faab2b6c3c5c9ccd6e4e8d2bda8937d68533e2813000000061a2c3d4c6176879ca9bac7d6e1d4cac5b8b3adaaa9abaeb3b9c5cbd5e2d4c6b8a79b8574604b3b2a180400000000000000000000081d32475d72879cb2c7dcf1ffffeed8c3ae99836e59442e1904000000000000000000000000000000000b1b2e3e4a60728399a6b7c9d9e1cdb9a89b8574604b40301e0e000000000000000000000000000000000b2035495a6f8499aec2d3e1cdbaa9947f69544330353535353535353535353535353525364c6176899eb4c9dadecab6a4907b66503d2c1a00000000000000000000000000000000000000000b21364b6075899eb3c9daecffffffefdec9b49e8976614c3621110000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100f1c3043546175869ca7b9c8d9e2cebbaa9e887862564532251504000000000000000000000000000d22364a5c72879cb2c7dcf1f3f1f3e1cdbaa8917c665138364a5c72879db2c7ddf2f1f3f5e1cdb9a8917c665138281502000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000b21364b60757b7a7c7e86949dafc0d1e4d6c6b09b85705746331e0a000006192c3c494d5e5e5460626b8096abc0d6c6b19c87715c47321c07000000000000061a2c3d4f647a8d9fb5c1d2e2d4c3b7aa9f978f898685878a929ca4b0bccce0e8f4e8d2bda8937d68533e28130000000c2135495b6d8298a5b6c7d7ded1c3b7b2a79e98959495989ea7b3b7c4d2dfd6c5b5a395806b5947341f0b00000000000000000000051b30455a70859aafc6d6e8f4f3e5d1c0ac96816c57412c17020000000000000000000000000000000000101c3043546177889dabbccfe3d6c6b5a396816c5e4c3c2b190900000000000000000000000000000006192c3c50657b90a4b6caded7c7b29d8773604b4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4354697e93a8b9cde7d6c5b19c8673604a35200f00000000000000000000000000000000000000071b2d3e53687d92a7b8cce7f7fffffff5e1cdb9a8937e69533f2e1c0800000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25101f30414a60728399a4b6c5d6dfcebdb49f8c7b655a483828160700000000000000000000000000000f24394f64798ea5b6cadfe5dedbdee5d7c6ad98836d56453a4f647a8fa5b7cadfdedbdee5e9d6c6ad98836d5645321d09000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000091e3245566066646669737f94a2b4c8dddfcab49f8b76614c36210c0000000e1e2c35384949434a4f64798ea4b9cec8b39e88735e49331e090000000000000c2135495b6e8398abbccfdfd4c4b7a59d8c827a74717072767d87969eafbbccddeee8d2bda8937d68533e2813000005192b3c4e63798c9fb4c3d3e0d1c0b4a59d918883807f808389929da6b5c1d2e2d2c1b49f8a77614c3a29170400000000000000000000152a3f556a7f94a8b9ccd8dfdfd6c7b4a2917c66513c2611000000000000000000000000000000000000001325364759657b8d9fb4c0d1e3d2c1b09f917c665a48372614010000000000000000000000000000000e23384c5e71869cb1c5d6dfcab7a5917c665f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f6073879cb1c6d6e0ccb9a7937e695443301c07000000000000000000000000000000000000000d22364a5c71859bb0c5d6e8fdf6f4f6fce9d6c6b19c86715d4b37230d00000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251c2d3d4d5f6b8095a1b3c2d3e2d1c0b19f937e685d4b3c2b1a0a0000000000000000000000000000071b2d3e566b8095abc3d3e0d2c9c6c9d2dec9b49e8975604b3e566b8096abc3d4d2c9c6c9d2e0dec9b49e8975604b36200b000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000003162838454b514f51556070859ab0c5dae3cfbcab8e78634e39230e000000000e192023332530374c61778ca1b6ccc9b39e89745e49341f090000000000000e23394e63798c9fb5c9dadac9b7a69d877a6d6460545b5861687480959dafbfd0e3e8d2bda8937d68533e281300000b2035485a6d8298abbccfe1d2c2b4a29a877c746d6b696b6e747d889ba3b5c4d4e1cdbaa895806b5846331f0a000000000000000000000c22374c6177899eb4bac7cacac5b8a99b8573604b35200b0000000000000000000000000000000000000008182a3a4b5d6b8095a2b4c5d5dfcdbdb39e8978625544311d11000000000000000000000000000000091c2f4053687e93a7b9cce0d4c3af9a8475757575757575757575757575757575757575757c90a4b6cae4d9c9b39e8976614b3625130000000000000000000000000000000000000004172a3a4f647a8fa3b5c9e3f3eae2dfe2eaf4dec9b6a48f7a65503b2b1805000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a252a3a4a5c677d919eafbfd0e0d4c4b4a297816d604e3f2e1e0e0000000000000000000000000000000d22364a5c72879cb2c7dcd2c2b5b1b5c2d2ccb9a8917b66514a5c72879db2c7d2c2b5b1b5c2d2e1ccb9a8917c6651382715020000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000a1a2832363b3a374451667c91a6c9daebd9c9a5907a65503b25100000000000060c0e1e1321364b60768ba0b5cbc9b39e89745e49341f09000000000005192b3b566c8196abbccfe3cfbcab9d8878645c4f4a433a474c55606b7f95a1b3c7dce8d2bda8937d68533e281300000d22384d62788b9fb4c9d9dac9b5a49a847667605555545655606877859ba6b7cbdfd7c6b49e8976614c36210c000000000000000000000a1f344759677d929fa9b2b5b4b1a79e8a79635443301c0800000000000000000000000000000000000000000c1c2f3f4b6073849aa7b8cce0e0ccb8a79a8473604b3f2f1d0c0000000000000000000000000000001121364b6175899eb3c9d9dcc7b3a29a8b8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8c9fb4c2d3e3cfbcab96816b5746321808000000000000000000000000000000000000000a1f3347586d8297adc1d2e4e5d8cec9ced8e5e5d3c2ad98836e5948342009000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a27374758647a8a9eb4bcccddd7c7b7a69b8474604b42312111000000000000000000000000000000000f24394e64798ea5b6cadec9b5a49ca4b5c3d3c6ad97826d554f64798ea5b6cac9b5a49ca4b5c5d6d6c6ad98826d5645311d090000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000a161e21262526384e63788dabbccfe3d1bca6917c67513c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f0900000000000b2034485971879cb1c9dadfcab59f8d7b65594a3e35302a3337444b60728499afc0d1e3d2bda8937d68533e2813000115273753697e93aabbcee3cfbcab9c867461584b44373f37444b596276879db2c1d2e1ccb9a8917c67513c27120000000000000000000004182a3a4d5f687e8b979d9f9f9c95897c655b4936261401000000000000000000000000000000000000000000111d3144556278899eb3bdcddfd6c5b4a295806b5d4c3b2a18080000000000000000000000000000091e3246576b8096abbccfe3d0c0b3aa9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fabbccfe0dfcab49f8c78624d39291600000000000000000000000000000000000000001325364c61768a9fb4c9deead8c7bab4bac7d8eadfc9b49f8b77624c372715010000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a3144556176879da8b9cddae1cdbaa99d887762564531241403000000000000000000000000000000071a2d3e566b8095abc3d3d9c8b19c869ca5b6cac9b39e897560566b8095abc3d4c5b19c869ca7b9ccdec9b39e8975604b36200b0000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000003090b110f21364b60768a9fb5cadfd1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f0900000000000d22374d62788ca4b6cae7d7c7ae99836f5d4b3b2d201c171f2731435464798ea2b4c8dcd2bda8937d68533e281300081d3144556e8499aec8d8dfcab59f8d796456463a31262a27313b4758667b90a3b5c9ddd6c6ac97816c573b2a1805000000000000000000000c1c30414e60687881888a8a878077655e4c3d2c18080000000000000000000000000000000000000000000001142637485a667c919fb0c1d2e3d1c0b49f8d7b6559473625130000000000000000000000000000031628394d62788c9fb4cadfded0c8bbb4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4bcc9d9e5d2c2ae99836e5a49351b0b00000000000000000000000000000000000000071c304354697e94a9bacde1e2cebaa99fa9bacee2e2cebbaa957f6a5544311d080000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a424b6073849aa5b7c6d7decdbcb49f8b7a64594838271506000000000000000000000000000000000d21364a5c72879cb2c7dccebbaa927d879db2c7ccb9a7907b665c72879cb2c7ccb8a7907b899eb3c9deccb9a7907b66513727150200000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000091e32455674899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000012283d52677d92a7c2d3e2cdbaa9907b66503f2e1d100704091525364a5c70859ab0c5dad2bda8937d68533e2813000b20354b6074899eb4c9ded9c4ae99846f5c4a38291d1414151d2a3a4c5e71869bb1c6dbdcc7b29c87725948341f0b0000000000000000000000132331424e5a626c727575726b61584c402f1f0e00000000000000000000000000000000000000000000010d181f2b3c4c5e6c8196a3b5c6d6e3cfbcab9d8877615443301c1000000000000000000000000000000b2035495a6e8399aec2d2e5e6d8cecacacacacacacacacacacacacacacacacacacacacacfd9e7dec9b5a4907b65503c2b1900000000000000000000000000000000000000000b20354a6073879cb2c7d7e5d2c2b49f8a9fb4c0d1e3d8c8b29d8874604b35200f0000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3f4e606c8196a2b4c3d4e1d0c0b09e927d675c4a3b2a1a0a00000000000000000000000000000000000f24394e64798ea4b6cadfcab49f8b768196abc4d5c5ac97826d64798ea5b6cac8b39e89748398aec9d9d6c5ad97826d5544311d0800000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000021628385f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f090000000000152a3f546a7f94a9bfd4dfc9b49f8a76604b3621110000000008182d3d556a7f94aabfd4d2bda8937d68533e2813000f24394f64798ea8b9cce1d5c5a6917c67513e2d1a0b0100020d1c2f4054697e93a9bed3dfcab6a58c77624c37220d0000000000000000000000051324313c494d5756606055564c473a3023120000000000000000000000000000000000000000000008141c2a3439454b516074859ba8b9cde1d9c9b7a69a8472604a3e2e1c0c0000000000000000000000000006192b3c50657b90a4b5c9def3eae2dfdfdfdcd8d8d8d8d8d8d8d8d8d8d8d8d9dfdfdfdfe3ebe8d5c5b19c86715d4b371e0e0000000000000000000000000000000000000005192b3b50657b90a4b6cae5dec9b5a4927d92a2b4c8dcdfcbb7a6917c66513d2c1a0600000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f4b5d687e929fb0c0d1e1d3c3b4a296806b5f4d3e2d1d0d0000000000000000000000000000000000071a2d3d556b8095aac3d3dac5b09a85707a8fa6b8cbc8b39e88746b8095aac3d3c6ad97826d7d92abbccfdec9b39e8975604b36200b00000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000001f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f090000000000162c41566b8196abc0d6dbc6b19c86715645321e09000000000011263b51667b90a6bbd0d2bda8937d68533e28130011263b51667b90a6c6d6e0cbb8a68c77624c37220f00000000001124394e64798ea3c5d6e6d3c3a38e79644e39240f00000000000000000000000b1e31414e525656565656565656524d41301d0a00000000000000000000000000000000000000000c1826303b484c5760666d7078899eb4c9dee7d5c4b3a1947f695c4b3a291704000000000000000000000000000e23374b5d71869cb1c5d5e8fbf1e1d4cac7c3c3c3c3c3c3c3c3c3c3c3c3c4c7d0ddeef7f5e0ccb8a7927d68533f2e1c00000000000000000000000000000000000000000b203448596e8399aec3d3e6d7c6b19c8671849aafc5d5e7d4c4af9a846f5b4935210a00000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f59647b8b9fb4bdcdded6c6b6a59a8473604b413120100000000000000000000000000000000000000c21364a5b72879cb2c7dcd4c3a9947f6974889eb3c8ccb8a7907b72879cb1c7cdb9a8917c66778b9fb4cadfccb9a7907b665037271501000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f090000000000182e43586d8398adc2d8dac4af9a856f5a3828160300000000000f243a4f64798fa4b9ced2bda8937d68533e28130013283d52687d92a7bdd2ddc8b39e88735947341f0b00000000000b20364b60758ba7b9cce0d0baa5907b65503b2610000000000000000000000011253a4e60686b6b6b6b6b6b6b6b675f4d392515090000000000000000000000000000000000000c1c2936434b59626c757c8285888d9fb5cadff2e2d0bfb49f8c7a645846331f1300000000000000000000000000081c2e3f53687d93a7b8cce0f6e6d4c3b7b2adadadadadadadadadadadadafb3bfd0e3f6ead8c8b39e8875604b36211100000000000000000000000000000000000000021527374d62788b9fb4cadfe1cdbaa8937e697c92a7b8cce0dfcab59f8c79634e39281603000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a65566278889da9bacedbdac9b9a89d8776615544312313020000000000000000000000000000000000000e24394e63798ea4b6cadecab6a58e79636d8297acc6d5c5ac9781798ea4b6cac9b49e89756070859bb0c5dbd6c5ac97826d5544311d08000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f090000000000182e43586d8398adc2d8dac4af9a856f5a3828160300000000000f243a4f64798fa4b9ced2bda8937d68533e281300142a3f54697f94a9bed4dcc7b19c87725c3b2a18050000000000081d31445574899eb3c9ded2bca7927d67523d2812000000000000000000000013283d52687e80808080808080807d6752443127190e000000000000000000000000000000000c1c2a3a4654606a77818a91979b9d9fabbccfe3f8eee2cebbaa9d8776614c41311e0e000000000000000000000000001121364b6075899eb3c8d9ebdfcab7a59d98989898989898989898989899a1b3c7dcf0e2cebbaa95806b5645321e0900000000000000000000000000000000000000081d3144556a8095aabbcee2dec9b49f8a766175889eb3c9dae3cfbcab96816c5745321e09000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a656074859ba6b7c7d8e3cfbcab9e8a7963584737261405000000000000000000000000000000000000071a2d3d556b8095aac3d3dcc7b29d87725b667b90a8b9ccc8b39d888095aac2d3c7ae98836e566a7f95aac4d4dec8b39e8974604b35200b000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f090000000000162c41566b8196abc0d6dbc6b19c86715645321e09000000000011263b51667b90a6bbd0d2bda8937d68533e281300162b40566b8095abc0d5dbc5b09b86705b46311b000000000000021527375d72889db2c7ddd3bea9937e69543e291400000000000000000000051a2f445a6f8495959595959595958772624b44372b1e1200000000000000000000000000000a1a2a3a475861727f8a969fa9adb0b3b5bcc9daecfffeead8c8b7a598836e5f4e3c2b1808000000000000000000000000091e3245566b8095aabbcee2dcc7b29d878283838383838383838383838399afc4d9eedfcab49f8b78624d38281602000000000000000000000000000000000000000b20364b6074889db3c8d9e4d2c1ac97826d586b8096abbccfe3dac9b39e8975604b362110000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a6e6f8298a3b5c4d5e5d7c6b59f8d7c665b4a3a2a1909000000000000000000000000000000000000000c21364a5b72879cb1c7dcd6c6ac96816c576075899eb4c9cbb8a69d899eb4c9cebaa9927c675264798ea6b7cbdfccb8a7907b6550372715010000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f090000000000152a3f546a7f94a9bfd4dfc9b49f8a76604b3621110000000008182d3e556a7f94aabfd4d2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000001d32485d72879db2c7dcd3bea9937e69543e29140000000000000000000002182d42576d8297ababababababa595806b6055483c301c13080000000000000000000000021528384758617683949ea8b4bac7c5c8cacfdae2eaebf4f6e6d4c3b2a0927d685a48362614010000000000000000000000031628384d62788b9fb4cadfddc8b39d88746e6e6e6e6e6e6e6e6e6e6e7f94a9bfd4e4d2c1ad98836e5948341a0a00000000000000000000000000000000000000061a2c3d51677c91a6b7cbe6ddc9b5a38e79644f63788c9fb5cadfe0ccb9a7927d68533e2e1b070000000000000000000000182d42586d8297adc2d7ecdac5af9a84838498a0b2c1d2e2e1cdb9a895806a5e4b45382f1c13080000000000000000000000000000000000000e24394e63798ea4b6cadecdb9a8907b6550566e8398adc7d5c4b8a89ea8b9cdc9b49f8a76614c6074889db2c8ddd5c5ac97826c5544311d080000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000012273d52677d92a7c2d3e2cdbaa9907b66503f2e1d1007040a1525364a5c70859ab0c5dad2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000081d32485d72879db2c7dcd3bea9937e69543e29140000000000000000000000142a3f54697f94a9c1c0c0c0c3af9e958073625a4d403025180a00000000000000000000091d32455661768699a1b4b9c6cdd7dbd7d8cec9ced8d6dfe2eae1cfbfb49e8a78625443301c0c0000000000000000000000000a2034485a6e8398aec1d2dfcbb7a6917c6758585858585858586074879db2c7ddddc9b5a38f7a644f3b2b1900000000000000000000000000000000000000000c2135495b70859aafc4d5e7d6c5b09b85705c4a5b6f849aafc5d5e7d6c5b19b86715c4b37220c0000000000000000000000182d42586d8297adc2d7ecdcc8b4a29a989aa2b2becfdfefdec9b49e8a7c736a60564c403025180800000000000000000000000000000000071a2d3d556a8095aac2d3dec9b49e8975604b52677c91a9baced5c6b9b4b9c6d7c9af99846f5846546d8297acc7d8ddc8b39e8874604b35200b0000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f0900000000000d22374d62788ca4b6c9ded7c7ae99846f5d4b3c2d201c171f2731435464798ea2b4c8ddd2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000081d32485d72879db2c7dcd3bea9937e69543e2914000000000000000000000010253b50657b90a3b5c9d5d5ccbcaf9e968578665e4a4336271a0b0000000000000000071b2d3e4b6074849aa4b3bfcdd7d8cecac1c8bbb4bbc8c1c9cdd7e5e1ccb9a89a8473604b3a2a1704000000000000000000000005192b3c4f657a8fa3b5c9ddd4c4b09a85705c4a434343433d51667c91a5b7cadfd5c4b09b85715c4b371d0d00000000000000000000000000000000000000031628394e63798ea2b4c8e2e0ccb9a7927d68533e52677c91a6b8cbe0ddc9b5a38f7a644f3a2a180400000000000000000000182d42586d8297adc2d7ece3d1c0b4afaeafb3c0cfdcecf6e1cdb9a89e91887f75665e4a43362513000000000000000000000000000000000c21364a5b72879cb1c7dcdac9ae99836e56454c61768a9fb4c9dfd7cdc9cdd7cfbcab937d68533a51667c91a9bacee0ccb8a7907b65503726140100000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f0000000000000b2034485971869cb1c9d9dbc7b3a1907b655a4a3e35302a3338454b6072849aafc0d1e4d2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000081d32485d72879db2c7dcd3bea9937e69543e291400000000000000000000000e23384b5d71859bb0bccddcdaccbcb0a39b897c6b60544538291b0b000000000000000d22364a5c6d8197a2b4c2d0e1d3c8bbb4aca5aa9faaa4acb4bac7d2e0d6c6b4a2937e685847331f0c0000000000000000000000000d23374b5d71869bb1c5d5ddc8b4a28e79644e3a2a2e36495b6f849aafc3d4e0cbb7a6927d67523e2e1b0000000000000000000000000000000000000000091e3246576c8196acc0d1e3dec9b39e8975604b364b6075889eb3c9dae4d2c1ad98826d5847331f0800000000000000000000182d42586d8297adc2d7eceeded1c8c5c3c4c7d0deecf0f2e9d7c6b9b4a69d94887c6b605443301c140000000000000000000000000000000e24394e63798ea4b6cadecfbcab927d68523846576f8499afc9d9e9e1dee1dfcab49f8b77614c374b61768a9fb4c9dfd5c5ac97816c5544311d0800000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0c6d6c9b39e89745e3a29170c060000000005192b3b566b8196abbccfe3d0bfb39d8878645c4f4a433a474c56606b7f95a2b3c7dee8d2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000081d32485d72879db2c7dcd3bea9937e69543e29140000000000000000000000081c2f3f51667c909eb0becde1dacdc1b4a79e918072605646392916030000000000071b2d3e4f647a8d9fb5c0d1e0d3c2b6aa9f978f8b8a8b8f969fa9b5c2d2e0d1c0b39e8976614c3a2a18040000000000000000000000081c2e3f52687d92a6b8cbe0d1c0ad97826d584733293a4e63798ea2b4c8e1d8c7b39d8874604b36201000000000000000000000000000000000000000000c21364b6175899eb3c9dee3d1c0ab96816c57453245566b8096abbccfe3dfc9b49f8a77614c36251300000000000000000000182d42586d8297adc2d7ecfceee3dcdad8d9dadadadadadcdfe3d7cdc4b7b3a69d918072604a42311e0e00000000000000000000000000071a2d3d556a8095aac2d3dfcab59f8b77624c373953687d93abbccfe3f6f3efdac5b09a857059473446576f849aafc4d9ddc8b39e8874604b35200b00000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba8b9cdc9b49f89745847332320190e000000000e23384e63798c9fb4c9dadfcbb7a69d877a6d6460545b5861687480959dafc0d0e3e8d2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000081d32485d72879db2c7dcd3bea9937e69543e29140000000000000000000000001124384c5e6b8096a0b0bcccd6dfd1c5b8b39e968274615746321e1300000000000d22364a5c70859aabbccfded3c3b6a49c8c827a7674767a818b9ca4b5c2d3e0ccb8a796816c5947341f0a0000000000000000000000001120364b6075889eb3c8d8dec9b49f8a77614c373346586c8197acc0d0e2cebaa9957f6a5645311d0900000000000000000000000000000000000000081b2e3e53687d93a8b9cce1dcc8b4a28e79634e3928384d63788c9fb5cadfe2cdbaa9947f695443301c07000000000000000000182d42586d8297adc2d7ecf0e0d2c9c6c5c5c5c5c5c5c5c7cacfd9ddd5cbc4b7b29e96816c604e3c2b19050000000000000000000000000c21364a5b71869cb1c6dcdbc5b09b8570594734374c62778b9fb4cadff4f8e4d2c1a9937e69543b2a3954697e93a9c2d3e0cbb8a6907a655036261401000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c2712000000000000000000091d32455674899eb4c9cdbaa98c76614c3f38352c1e0e0000000c2135495b6e8398abbccfe3d4c4b7a69d8c827a74717072777d87969eafbcccdeeee8d2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000081d32485d72879db2c7dcd3bea9937e69543e2914000000000000000000000000091c2f404a607282969eb4b9c6d0e2d6ccbcb0a0988475614b41301d0c000000000f24394f64798ea2b4c9dadac9b6a59c86796c65615761656c78869ca4b6c8d9d5c5b49f8b77614c37220c000000000000000000000000091d3245566b8095aabbcee1cdbaa9947f6a5544364c6176899eb4c9dedfc9b49f8b77624c38271502000000000000000000000000000000000000000d22374b5c71869bb1c6d6e7d5c4af9a85705b49362035495a6f849aafc4d5e7d7c7b29d8773604a35200e000000000000000000182d42586d8297adc2d7ece5d2c2b5b1b0b0b0b0b0b0b0b2b4bcc9c9d2e0d4cbbcb09f937e695a4835200a0000000000000000000000000e23394e63798ea4b6caded4c4aa957f6a553b2a34485970859bb0c5daf0f2ddc9b5a38d78624d3823384d63788da4b6caded5c5ac97816c5443301c08000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c2712000000000000000000021528385c72879cb1c7d7c7a8927d685d594d493c2c19060000061a2c3d4e647a8d9fb5c1d2e2d4c4b7ab9f978f898685878b929ca5b0bccce0e8f4e8d2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000081d32485d72879db2c7dcd3bea9937e69543e291400000000000000000000000000121c304354607380919ea8b4c0ced8e0cdbeb2a298826d5f4d3b2a1804000003172939556b8095aac0d1e3cfbcab9c8776635b504b464b4f5a6375869caabbcee2cebbaa937e6953392916030000000000000000000000021528384d62778b9fb4c9dfd7c7b29d8774604b4354697e93a8b9cde1d1c0ad98826d5947341a0a0000000000000000000000000000000000000004182a3a4f647a8fa3b5c9e4e0cbb8a6917c67523d2c1a2c3c51677c91a6b8cbe0dfcab6a5907b66503c2b19060000000000000000182d42586d8297adc2d7ecdec9b5a49c9a9a9a9a9a9a9b9d9fabb0b5c1cddbdfcdbdb49e8a78624d3828160200000000000000000000061a2c3d556a8095aac2d3dfcbb7a68e79644e39242a3b54697f94a9c2d2e5f0dbc6b09b86715a48352035495a72879cb1c7dcddc8b39d8874604b35200b000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c271200000000000000000000192e44596e8399aec1d2c8b39d887b726e635a4935200c0000000f22364a5c6b8096a3b5c4d4e1d4c9bcb4aca79e9c9b9d9faab2b6c3c5c9ccd6e4e8d2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000081d32485d72879db2c7dcd3bea9937e69543e291400000000000000000000000000001325364455606b7c8a9aa2b4bac7d4dccfc0b2a0917d675947341f0b00000a1e33465771879cb1c6dcdfcab59f8d7a6458493d3632363c495763798c9fb4cadfd8c8b09b86705746321e0a0000000000000000000000000a203448596e8398adc1d2dfcab7a5917c66514a6073879cb2c6d6ddc8b4a28e79644f3b2a1800000000000000000000000000000000000000000a1f3347586d8298adc1d2e5d9c9b39e8875604b36200f20364b6074889db3c9dae6d3c3ae99836e5a4835200a0000000000000000182d42586d8297adc2d7ecdbc6b19c8685858585858585878b909ba3b0bdcddfe1cdb9a896816c5645321e09000000000000000000000c2136495b71869cb1c6dcddc8b29d88735c4a362223384d63788da4b5c9dee5d3c2aa947f6a553c2b192c3c566b8196abc6d6e0cbb8a68f7a6550362614010000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000011263c51667c91a3b5c3cbb8a69d8c878378634d38230e000000071b2d3e4b6074859ba6b6c3d2e1d9cfcac5b9b3b1b0b2b4bbc8c0b4afb3b9c5d6e8d2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b060000000000081d32485d72879db2c7dcd3bea9937e69543e29140000000001080b0f0f0f0f0f0f0f0f182637444b5f677884939fa9b7c3d4decfbeb39e8977614c37220e00000c21364b61768ba4b6caded8c3ae99836e5c4a3a2c211e212c39495b6d8298adc2d8ddc9b5a38b76614b36210c00000000000000000000000005182b3b4f647a8fa3b5c9ddd4c3af9a846f5b50667b90a4b6cae4d4c3b09a85705c4a361d0d00000000000000000000000000000000000000011426364c61778a9fb4c9dfe3cfbcab95806b5645311d091d3144556b8095abbccfe3dfcab49f8c78624d3827150200000000000000182d42586d8297adc2d7e4cfbaa48f7b7070707070707072757b85969eb0c0d1e4d7c6b39e8975604b36210b000000000000000000000e23394e63798ea4b6c9ded7c7ac97826c573e2d1b2035495a71869cb1c6dbdecab6a48e79634e392310253b50657b90a8b9cce1d5c4ac96816c5443301c080000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c2712000000000000000000000b20354b6073859ba5b5bcc4b8ab9f9c8f7a644f3a240f00000000101d3144556378889da5b5c1ccd6dfdfd6ccc9c6c5c7cacec1b4a29a9ea7b9cce0d2bda8937d68533e281300162b40566b8095abc0d5dac5b09b85705b46301b000000000000081d32485d72879db2c7dcd3bea9937e69543e291400000009151d20242424242424242424212631404d5a62727e8b9da5b7c5d6e0ccb8a7947e69543c2c1906000e23384e63788da3c2d3e5d1bca6917c67513e2d1c0f0a0e1b2c3d51667b91a6bbd0e4d2c1a38d78634e38230e000000000000000000000000000d22374b5c70859bb0c4d5dcc8b4a28e79635a6f8499aec3d3dfcbb7a5917c67513e2d1b0000000000000000000000000000000000000000081c304354697f94a9bacde2dfcab49f8c78624d382715021527374d62788c9fb5cadfe3cfbcab95806b5645311d0900000000000000182d42586d8297adc2d7e4cfbaa48f7a655b5b5b5b5b5b566065708096a2b4c8dde0ccb9a78f7a654f3a2510000000000000000000061a2c3d556a7f95aac2d3cacdbaa9917b66513c2611192c3c556a8095aac3d4cac7b19c87725b4936210b20364b6075899eb3c9cacac8b39d8874604b35200b0000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c271200000000000000000000081c304354627787949fabbcc9bcb4a48f79644f3a240f0000000002152737495a6378879ba3b3b9c6cad3d5d8d9d7d6cdc9bcb4a39a85899eb3c9ded2bda8937d68533e281300152a40556a7f95aabfd4dbc6b19b86715c38281502000000000005182b3b5e73889db3c8ddd2bda8937d68533e281300000919273135393939393939393939363228303c485460697a879da7b9cce0d5c5b09b85705a4935200c0010253a50657a8fa5bacfe2cdb7a28d78624d3823100000000f22374d62778ca2b7cce1d0baa5907b65503b261000000000000000000000000000081b2e3e52677d92a6b7cbe0d1c0ac97816c63788c9fb4cadfd7c7b29d8774604b35201000000000000000000000000000000000000000000b20354b6073879db2c7d7e6d4c4af99846f5a49351a0a00092035495a6f849aafc4d5e7d9c9b39e8875604b36200f00000000000000182d42586d8297adc2d7e4cfbaa48f7a654f4545454538454b506074859bb0c5dae8d6c5a9947f6a543f2a150000000000000000000c2135495b71869cb1b5b5b5b5b49f8a76604b36210b0f24394f64798ea5b7b5b5c4ab95806b563d2c1a081d3144556e8398aeb5b5b5b5b7a68f7a654f3625130000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000001142636485962757f8b9fb5cacfb9a48f79644f3a240f000000000009192c3c495a637785939ea8b2b6c3c0c3c4c1c6b9b4ab9f968576889eb3c8ddd2bda8937d68533e28130013293e53687e93a8bdd3ddc7b29d88725645321d0900000000000b20344859758a9fb4cadfd0bba6917c66513c26110001152737444b4f4f4f4f4f4f4f4f4f4b4639282b36434a5c6479899eb3c5d5ddc9b5a38d78634d38230e0011273c51667c91a6bbd1e0cbb6a08b76614b36210c0000000b20364b60758ba0b5cae0d1bca7927c67523d271200000000000000000000000000001020364b6074889db3c7d8dec9b49e8a766b8196abbccfe1cdbaa9947f6a5544311d080000000000000000000000000000000000000005192b3c50667b90a5b6cae5dfcbb7a6917c66513c2b19000006192c3c51677c91a6b7cbe0e0cbb8a6927d67523d2d1a07000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a3030302731364455687e93a8bdd2e8d6c1ac96816c57412c170200000000000000000e23394e63798ea49f9f9f9f9f9f99846f5745321e090d22364a5c72879d9f9f9f9fa68f79644f3a240f0215273752687d92ab9f9f9f9f9f9f96816c5443301c0700182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000006192c3c4f61697e889dabbccfc7b9a48f79644f3a240f0000000000000e1e2c3c495962737e89959ca5a9abadafaca9a89e978c807473889eb3c8ddd2bda8937d68533e28130012273c51677c91a6c9dadfc9b49f8a75604b36200b00000000000d22374d62778caabbcee2d6c6a48f7a644f3a250f00081d31445560646464646464646464615746321e25303e4a5b677c91a7b8cce0d2c1a6917b66513c26110010253a50657a8fa5bacfe1ccb7a28c77624d37220e0000000c22374c61778ca1b6cce1d0baa5907b65503b26100000000000000000000000000000091d3145566a7f95a9bacee1cdb9a8947e75899eb3c9d9dec9b49f8a76614c37271501000000000000000000000000000000000000000b2035485a6e8399aec3d3e6d8c8b29d8774604b35200e0000000e20354b6074889db3c9d9e7d5c5b09a85705c4a36210b000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251b1b151d27374f64798ea4b9cee3d8c2ad98836d58432e18030000000000000000152a40556a7f8a8a8a8a8a8a8a8a8a7e685339281603071b2d3e566c818a8a8a8a8a8a8772604a35200b000d22374c62778d8a8a8a8a8a8a8a8a8875604a35200b00182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c2712000000000000000000000c2035495a697f939da6b7c9bfb3aea48f79644f3a240f000000000000000e1e2c3b485560697780878e9396989997949189827a6b6073889eb3c8ddd2bda8937d68533e28130010253a4f657a8fabbccfe2cebaa98f7a654f3929170400000005192b3b52677c91a7c8d8e1ccb9a88d78624d38230d000b20354b60747a797979797979797975614b3621131c2d3d4b6074889eb3c8ded2bda8937d68533e2813000e23394e63788ea3c3d3e6d0bba6907b66513c2c1a0d070c192b3b50657a90a5bacfe6d4c3a38e79644e39240f0000000000000000000000000000021527384c62778b9fb4c9dfd7c6b29c877e93a7b9cce7d0c0ac97826c584733190900000000000000000000000000000000000000021527384d62788c9fb4cadfe2cebbaa957f6a5544311d08000000081d3144556b8095abbccfe3ddc8b4a28e79644e392917030000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251b1b151d26374f64798ea4b9cee3d7c2ad98826d58432d1803000000000000000013283c50616a75757575757575757568604e3b1b0a000010293e51626c75757575757573605443301c07000b1f3447596f75757575757575757573605443301c0700182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c2712000000000000000000000d23384d62788c9fb3b7c4beb1a199918e7a644f3a240f00000000000000000e1d2b37444b59626a72797e808384827f7c766d645c5e73889eb3c8ddd2bda8937d68533e2813000c21374c61778b9fb5cadfd8c7ab96806b5746331f170e0d0e18203448596d8298adc2d8dec9b49e8974604b36200b000b20364b60748b8e8e8e8e8e8e8e8e7b6650362515101c30435470869bb0c5dbd4bfaa957f6a55402a15000c21374c61768ca5b6cadfd7c2ac97826d5a49382a211a212a3748596c8196acc1d6dfcab7a58c77624c37220d0000000000000000000000000000000a1f3447596d8298adc0d1dfcab6a59c899eb3c5d6dcc7b4a28e79634e3a2a170000000000000000000000000000000000000000091d3145566b8095abbccfe3dfcab49f8b77624d37261401000000011527374d62788c9fb4cadfe4d1c0ac97816c5746331e0a0000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a3030302731364455687d93a8bdd2e8d5c0ab96806b56412b160100000000000000000d2033435055606060606060606060534e42311f0000000e22344451566060606060605d4a43362513000005182a3b475d6060606060606060605d4a433625130000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c271200000000000000000001162b41566b8096abbccbc5b1a097837c7974604b36210b0000000000000000000d1926313b484c555c64696b6e6f6c6a6761574f4a5e73889eb3c8ddd2bda8937d68533e2813000a1f33475871869bb0c6dbdec9b39e8976614b4233292322242a34444d62788b9fb4c9dfd9c3ae99846e5544311d0800091d31455673899ea4a4a4a4a4a4947f6954433228222634485a73889db3c8ddd5c0ab96806b56412b16000a1f33475872879cb2c7dcdfc9b49f8b786256483b362d353a475562778a9fb4c9deddc7b29d87725948341f0b00000000000000000000000000000005182a3b4f647a8ea2b4c8ddd3c3b6a89ea8b9cce3d3c3af9a846f5b4a361c0c00000000000000000000000000000000000000000b20364b6075889eb3c9d9e6d3c3ae98836e59483419090000000000092035485a6f8499afc4d4e7dec9b49e8a76614c3621110000000000182d42586d8297adc2d7e4cfbaa48f7a654f4545454538454b506073859ab0c5dae8d6c6a9947f69543f2a14000000000000000000031525333c404a4a4a4a4a4a4a4a4a3e3b312414020000051626343e414a4a4a4a4a4a4835302518080000000d1d2a34374a4a4a4a4a4a4a4a4a4835302518080000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c2712000000000000000000011527375b71869bb0c9d8c8ad97826f6764605645321e090000000000000000000009141d2a34373e4a4f5456585a5754514b4639495e73889eb3c8ddd2bda8937d68533e28130004172a3a566b8095abc1d2e0ccb9a797816c604c463a3937393b474c626e8399aabbcee2d0bfa8937e69533727150200021527385c71869cb1b9b9b9b9b19b8673604b45383837444d62788da6b8cbe0d3bea9947e69543f29140004172a3a576c8196acc3d4e2cebbaa9b857462594e4a3d494e586173849aa9bacde1d4c4ac97816c573b2a1805000000000000000000000000000000000d22364a5c70859bb0c4d4e1d3c6b9b3b9c6d6dfcab6a5917c66513d2d1a0000000000000000000000000000000000000000071a2d3d52677c92a6b8cbe7dfcab6a5907b65503b2b1800000000000006192b3c51667c91a6b7cbdfe1cdb9a8937e69533f2e1c0800000000182d42586d8297adc2d7e4cfbaa48f7a655b5b5b5b5b5b566065708096a2b4c8dde1ccb9a88f7a65503a251000000000000000000000071520282a35353535353535353529261f140600000000081622292c35353535353533201c130800000000000d181f2235353535353535353533201c1308000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c2712000000000000000000081d31445573889db3c8cebbaa8d7863514e4b45382816020000000000000000000000010d181f222d36393e414344423f3c363228495e73889eb3c8ddd2bda8937d68533e2813000010253a50657a8fa3b5c9ded6c5b19f937e6c6158514e4d4e5159626d8095a1b3c8d8dbc7b3a18d78634e38230e000000172c42576c8197acc5d6cec9b5a3937e6a6056504d4f55606d8298adc4d5e4d2c1a7917c67523c2712000011263b51667b90a5b7cadfd8c8b5a39a84776b635b5e5b636a76849aa2b4c7d7dfcbb7a6917c66513c27110000000000000000000000000000000000071b2d3e52677c91a6b7cbdfe4d6ccc9ccd6e4d6c6b29c8773604b35200f00000000000000000000000000000000000000000c21364a5b70859ab0c4d5e7d7c7b29c8773604a35200d000000000000000e20354b6074889db2c9d9e9d7c6b19c86715d4b37230d00000000182d42586d8297adc2d7e4cfbaa48f7b7070707070707072757b85969eb0c0d1e4dac9b39e8975604b35200b0000000000000000000000030d131520202020202020202013110b02000000000000050e14172020202020201e0b070000000000000000050b0d2020202020202020201e0b070000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20354b60758a9fb5cacab49f8a75604b393632281a0a0000000000000000000000000000050b101b2224292b2e2f2d2a27211e33495e73889eb3c8ddd2bda8937d68533e281300000e23374b5d71869bb1c2d2e4cebdae9c9381766c66636263666d7782959eafbfd0e4d0c0ae99846f5b4935210c00000010263b50657b90a7b8cce0d2c2b49f8d7f746965626468737f94a0b2c6e2ddc9b5a38d78624d38220d00000b20364b6074879db2c3d3e5d2c1b4a29a8a8079747374787f899aa2b3c0d1e5d4c3b29d8875604b36200b0000000000000000000000000000000000001020354b6074889db2c7d7e9e8e1dee1e8e1ccb9a8937e695443301c0800000000000000000000000000000000000000031729394e63798ea2b4c8e2e2cdbaa9947f695443301c0700000000000000081d3144556b8095abbccfe3decab6a48f7a65503b2b1805000000182d42586d8297adc2d7ecdbc6b19c8685858585858585888b909ba3b0bccddee3cfbcab98836e5544311d08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758babbccfc9b39e8974554431211e160a000000000000000000000000000000000000070d0f1416191a1715120c1e33495e73889eb3c8ddd2bda8937d68533e28130000081c2e3f51677c91a4b5c7d8dbcbbaae9f9689817b7877797c828998a0afbcccddd6c6b3a28f7a644f3d2c1a060000000b20364b6074899eb3c3d4e3cfbcab9f94877e7b777a7d86949dafbecfe1d4c3b09b86715a4835200b0000081d314455687d92a5b6c7d7dfd1c0b4a89e958e8a888a8d949ea7b3c0d0ded8c8b7a5937e685645321d09000000000000000000000000000000000000081d3144556a7f94a9bacde1f6f5f3f5ecdac9b49e8976614c36261401000000000000000000000000000000000000000a1e3346576c8197acc0d1e4dfc9b49f8a77614c3625130000000000000000011527374d62788c9fb4cadfe5d3c2ae98836e5948342009000000182d42586d8297adc2d7ecdec9b5a49c9a9a9a9a9a9a9b9d9fabb0b4c1cddae5d4c4b59f8c79644e372715010000000000000000000000040d131620202020202020201c191309000000000000050b0d2020202020202020200f0d07000000000000071017192020202020202020181610060000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5dac9b39e89745e49261409020000000000000000000000000000000000000000000000010305020000091e33495e73889eb3c8ddd2bda8937d68533e28130000001120354a6072869ca9bacee2d8cbbdb1a79e97918e8c8e91979ea8b2beccdae1ccb9a89a846f5c4b371f0e00000000081d3144556a7f94a5b7c9dad9c9bcb4a59d94908d8f939ca4afbbccdcdfcab7a5947e69543c2b19050000021527374b6074879ca9bacddaded1c6b9b4aaa99f9d9fa9aab3b8c5d0dee1cebbaa9d8774604b38281502000000000000000000000000000000000000011527374c61778a9fb4c9deeefffff8e3cfbcab96816c574633180800000000000000000000000000000000000000000c21364b6176899eb4c9dee5d2c2ad98826d5847331808000000000000000000092035485a6f8499aec4d4e7dfcab49f8b77624d372715010000182d42586d8297adc2d7ece5d2c2b5b1b0b0b0b0b0b0b0b2b4bcc9c8d1dfe4d6c7b7a698826e5c4a3619090000000000000000000000071521282b3535353535353535312e261b0d000000000d181f3535353535353535353524221b10020000000a18242b2e35353535353535352d2b23180a00000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f00000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8ddd2bda8937d68533e2813000000071c304354647a8b9fb4becde3dbcec5b8b3aca6a3a2a3a6acb4b9c6cfdce2ccbcb39e8979634d3e2e1b0000000000021527374b6075879dabbccfe3d9cfc3b6b2a9a5a2a4a8b1b5c2ccd9decebdb29d8775604b36210e00000000091d314455647a8b9fb4bcc9d7e4d6ccc9c7bab4b3b4bac7c8ccd6e3d7cdbcb49f8b7b645645311a0a0000000000000000000000000000000000000000091f3347586d8297adc0d1e3f7faf4dfcab59f8c78634d3929170000000000000000000000000000000000000000081b2e3f53687e93a8b9cce1dec9b5a48f7a644f3a2a170000000000000000000005192b3c51667c91a6b7cbdfe2cebbaa957f6a5544311d080000182d42586d8297adc2d7ecf0e0d2c9c6c5c5c5c5c5c5c5c7cacfd9dde4dfd3c5b9a99d8877624d3d2d1a0000000000000000000000041526333d404a4a4a4a4a4a4a4a4642382b1b0900000d1d2a344a4a4a4a4a4a4a4a4a4a3a372e201000000718283640434a4a4a4a4a4a4a4a433f35281806000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8ddd2bda8937d68533e2813000000001325364a5c697e93a0b0bdcfd9e3d5ccc8c1bbb8b7b8bbc2c9ccd6e4d8cebcaf9e917d675b49352010000000000000091e324556667c8d9fb5becfd9e3d3cac7bebab7b9bdc6c9d2e0e0cebfb19f917d675645321e0900000000011527374a5c687e929fabbac6d0dfe1ded8cec9c8c9cdd7dee0dfd0c7bab49e937e685d4b38271500000000000000000000000000000000000000000004182a3a4e64798ea2b4c8dce5e5e5d3c2ae99846f5b49351b0b00000000000000000000000000000000000000000e22374b5d71869cb1c6d6e8d6c6b19c86715d4b371c0c00000000000000000000000e20354b6074889db2c8d9ead8c8b29d8874604b35200f0000182d42586d8297adc2d7e5e5e5e5dedbdadadadadadadadddfe3dfddd4cbc2b6a79e8b7a645948341f0f00000000000000000000000d213344505560606060606060605b56493826130005182a3b475e6060606060606060604f4b3e2e1b07001024364653596060606060606060585346352310000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9ded1bca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8ddd2bda8937d68533e28130000000008182e3e4f606d82969fb4bcc9d0dfe0ded6d0cdccced1d7dee1dfcfc7bab49d95806b5f4d3c2c1902000000000000031628384c5e6a7f959fb4bcc9d3dfdfdcd3d0cccfd2dbdee1d6ccbdb1a197816c5f4d38281602000000000009192e3e4e606a7f8d9fa8b3c0cacfdadbdddfdddfdddbdacfcac0b4a99f92806b604e3f2e1a0a000000000000000000000000000000000000000000000c21364a5c70859aafc3d4d0d0d0cab6a4907b65503c2c19000000000000000000000000000000000000000004182a3b4f657a8fa4b5c9d0d0cdb9a8937e68533f2e1b000000000000000000000000081d3144556a8095aabbced0d0cbb7a6917c66513d2c1a0600182d42586d8297adc2d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0cfd4cac7c3b7b2a49c897c665c4b3b2b1801000000000000000000000013283d50626b7575757575757575716756422e19040b1f34475970757575757575757575645c4b37220d02172b4053646e75757575757575756d64533f2b16000000182d42586d8297adc2d0d0cfbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4c9cacabca7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8ddd2bda8937d68533e28130000000000102032424b607381939fabb3c0caced9dbdddfe2dfdddbd8cec9bfb3a99f927f6b625141301e0e00000000000000000a1a304050616d81949fabb6c2cbd4dadddfe2dfdddbd6cdc5b9b39f978373604b41301a0a000000000000001020314250616a7d8a9aa2b0b5bcc9c6c8cacfcac8c6c9bcb5b0a29a8a7d6b6250423120100000000000000000000000000000000000000000000000071a2d3d51677c91a5b7bbbbbbbbc5b19c8673604a35200e00000000000000000000000000000000000000000b1f3447596d8398adc2bbbbbbbbb49e8976614c362110000000000000000000000000011426374d62788b9fb4bbbbbbbbc4af9a846f5b4935210c00182d42586d8297adbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb9c3b7b2aca59d938679665e4c3e2e1d0d000000000000000000000000162b40556b808a8a8a8a8a8a8a8a85715b46311c060d22374c62778a8a8a8a8a8a8a8a8a7a644f3a240f04192e43596e828a8a8a8a8a8a8a8a826d58432d18000000182d42586d8297adbbbbbbbbbaa48f7a654f3a251000000000000000000000000a1f344a5f74899fb4b5b5b5b5a7917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8ddd2bda8937d68533e2813000000000002141d314455606c7e8c9aa2afb4bbc8c6c8cacecac8c6c8bbb4afa1998b7d6a615144342312000000000000000000001222334352636d7f8d9ca4b2b7c3c5c7c9cecac8c6c6b9b4a79e93817460554431231300000000000000000213233343505f677984909a9fabadb1b3b4bcb4b3b1adab9f9a90847a675f5044332414020000000000000000000000000000000000000000000000000f20354b6074879da5a5a5a5a5a5a7937e685443301c0700000000000000000000000000000000000000000c22374c61778a9fa5a5a5a5a5a5a597826c5746331e0a00000000000000000000000000092034485a6f8499a5a5a5a5a5a5a5a28d79634e38230e00182d42586d8297a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a4a2a59d9791877e74635b4c402f201000000000000000000000000000162b40556b80959f9f9f9f9f9f9b86715b46311c060d22374c62778c9f9f9f9f9f9f9f8f79644f3a240f04192e43596e83989f9f9f9f9f9f98826d58432d18000000182d42586d8297a5a5a5a5a5a5a48f7a654f3a251000000000000000000000000a1f344a5f74899f9f9f9f9f9f9f917c67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8ddd2bda8937d68533e281300000000000001142637444b60697a84909a9faaadb0b3b4bbb4b2b0adaa9f9a8f8379675f5043342616040000000000000000000004152535455261697b86939da5aab0b2b4bbb4b3b1aca89e95897e6d6056453727150500000000000000000005152533414d5b636f7b858b92989b9d9fab9f9d9c98928b857b6f645c4d413326150600000000000000000000000000000000000000000000000000081d314455697f90909090909090908975614b362513000000000000000000000000000000000000000000152a3f546a7f9090909090909090908e7a644e392917030000000000000000000000000005192b3c51667c90909090909090909090816c56412c1700182d42586d829090909090909090909090909090909090908f8d8b87817c75686055493d2f22120200000000000000000000000000162b40556b8095aab5b5b5b5b09b86715b46311c060d22374c62778ca1b5b5b5b5b5a48f79644f3a240f04192e43596e8398aeb5b5b5b5ad98826d58432d18000000182d42586d8290909090909090908f7b654f3a251000000000000000000000000a1f344a5f748b8a8a8a8a8a8a8a8a7d67523c27120000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8cacabda8937d68533e28130000000000000009192631424f5c646f7b858b92989b9d9faa9f9d9b98918a847a6e635b4d413325160800000000000000000000000007172735434f5d65747d878f959b9d9faa9f9e9b979089807668604b45382819090000000000000000000000071523303d4a4e5d6570777d8386888a8c8a8886837d7770655d4e4a3e302315070000000000000000000000000000000000000000000000000000011426374b61757b7b7b7b7b7b7b7b7a6457463218080000000000000000000000000000000000000000000f243a4f647a7b7b7b7b7b7b7b7b7b7b655c4a361b0b0000000000000000000000000000000d20354b60737b7b7b7b7b7b7b7b7b7b7a654f3a2510000e24394e63797b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a7876726c6660564b44372c1f12040000000000000000000000000000162b40556b8095aac0cacac6b09b86715b46311c060d22374c62778ca1b7cacacab9a48f79644f3a240f04192e43596e8398aec3cacac2ad98826d58432d180000000e24394e63797b7b7b7b7b7b7b7b7b76614c36210c0000000000000000000000081d32475b6d747575757575757575675f4d3925100000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3b5b5b5b5a8937d68533e2813000000000000000009141d323e4a4e5e6670777d8386888a8c8a8886837c766f655d4e493d302315070000000000000000000000000000091725323f4c55606873798085888a8c8a8886817b756b61584e4232281a0a0000000000000000000000000005121f2d363f4b505961676e717375767573716e686259504c3f362d20130500000000000000000000000000000000000000000000000000000000091e334657616666666666666666645c4a392816000000000000000000000000000000000000000000000d22364a5c64666666666666666666655d4b3e2d1b00000000000000000000000000000000081d3144556066666666666666666666655d4b37220e000c21364a5b636666666666666666666666666666666666666462615757514b45383127190e00000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7ccdfceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d180000000c21364a5b63666666666666666666615846331f0a000000000000000000000004182b3e4f5b5f6060606060606060524d41301d0a0000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000091e33495e73889e9f9f9f9f9f9f937d68533e28130000000000000000000114202d36404c505861676e717375767573716d6761584f4b3f352c1f1305000000000000000000000000000000000715212f37444b5460646a707275767573716c6660564c463a311d150a000000000000000000000000000000010f1a212e373b474c52585c54606160555c58524c473b382f211a0f01000000000000000000000000000000000000000000000000000000000003172939464b50505050505050504f4a3e2d1b0b00000000000000000000000000000000000000000000071b2d3e4a4f505050505050505050504b3f2f20100000000000000000000000000000000001142637444b505050505050505050504f4b3f2e1b0800071a2d3d4a4e5050505050505050505050505050505050504f4d4b46393c3632281d15090000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d18000000071a2d3d4a4e5050505050505050504c463a2917040000000000000000000000000f20313e474a4a4a4a4a4a4a4a4a3c39302313010000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000091e33495e73898a8a8a8a8a8a8a8a7e68533e281300000000000000000000010f1a212f383a474c52585b54606160545b58524c463a372e211a0f01000000000000000000000000000000000000031119273136434a4f555b54606160555c57514b453833291c130200000000000000000000000000000000000007111c232a34373d4336434b4c4b4437433d37342a231c110700000000000000000000000000000000000000000000000000000000000000000b1b2933363b3b3b3b3b3b3b3b39362d201000000000000000000000000000000000000000000000000010202d363a3b3b3b3b3b3b3b3b3b3b382f211102000000000000000000000000000000000009192631353b3b3b3b3b3b3b3b3b3b3a372e21100000000f1f2d36393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a3836322827201d150a02000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d18000000000f1f2d36393b3b3b3b3b3b3b3b3b3633291c0c00000000000000000000000000031320233137444b4e52504c463a33291b1305000000000000000000000b20364b60758ba0b5cac9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000071c3145596b73757575757575757568604e3a261100000000000000000000000007111c232a33373d4336434b4c4b4336433c363329231c11060000000000000000000000000000000000000000000009151d2530353a4036434a4c4b4437423b3632281f170c00000000000000000000000000000000000000000000080c181f22282e263035373531262e28221f180d0800000000000000000000000000000000000000000000000000000000000000000000000b171e21262626262626262624221b100200000000000000000000000000000000000000000000000002101b222426262626262626262625231c11030000000000000000000000000000000000000009141d202626262626262626262625221b1002000000010f1a21242626262626262626262626262626262626262523211e16110b09020000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d1800000000010f1a2124262626262626262626211f170c000000000000000000000000000004172735414d556064676561584c463a2a1d0d000000000000040a0c131320364b60758ba0b5cac9b39e89745e49341f090000000000000000000000000000000000000000000000000000000000000216293c4c595e6060606060606060534e42311f0b0000000000000000000000000000090c171f21282e263035373530262e27211f170b08000000000000000000000000000000000000000000000000000108131c20242b253035373531272c26211e160a0400000000000000000000000000000000000000000000000000040b0c1219141c2021201d1419130d0b050000000000000000000000000000000000000000000000000000000000000000000000000000030a0c11111111111111110f0d0700000000000000000000000000000000000000000000000000000000070d0f111111111111111111100e080000000000000000000000000000000000000000000001080b11111111111111111111100e0800000000000000070c0e1111111111111111111111111111111111110f0d0c0903000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d18000000000000070c0e1111111111111111110c0a0400000000000000000000000000000012223545525f6774797d7a766d6158483b2a1805000000000c171f21282828364b61768ba0b6cbc9b39e89745e49341f09000000000000000000000000000000000000000000000000000000000000000d1e2e3c45494a4a4a4a4a4a4a4a3e3a3124140200000000000000000000000000000000040a0c1219141c2021201c1418120c0a04000000000000000000000000000000000000000000000000000000000000070b0f15131c2021201d1517110b0903000000000000000000000000000000000000000000000000000000000000000001080b0c0b0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d1800000000000000000000000000000000000000000000000000000000000000000000000a1d304052636c7d898e92908c8276625948341f100000000c1c2933363e3e3e3a4d63788da2b8cdc9b39e89745e49341f090000000000000000000000000000000000000000000000000000000000000000101e293133353535353535353528261f14060000000000000000000000000000000000000000000001080b0c0b080100000000000000000000000000000000000000000000000000000000000000000000000000000000070b0c0b08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006101618202020202020202020100e08000000000000000000000000000000000000000000000000050b0d2020202020202020201a181208000000000006101618202020202020202020100e080000000000000000000000000000000a141a1c2020202020202020202009020000000000000001080b101010101010100f0d0700040a0c101010101010100d0b06000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d18000000000000000001080b0f1416140f0d0700000000000000000000000000000000001024394d5f6c81929ea7a7ab9f978777624c3e2e1b08000417293a464c5353535458677c91a6bcd1c7b29d88725d48331d080000000000000000000000000000000000000000000000000000000000000000000d161c1e202020202020202013110b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d0f20202020202020202020202020202020202020202020202020202020202020201a1711070000000000000000000000060c0e131615110b09020000000000000000000917232a2d35353535353535353525221b10020000000000000000000000000000000000000000000e1920223535353535353535352f2d25190b0000000917232a2d35353535353535353525221b10020000000000000000000000000d1b272f31353535353535353535351d150a000000000009141d202525252525252524221b10171f21252525252525252320190e0000000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d180000000000000008141c2025292b2924221b100700000000000000000000000000000417293a51677c919fb3b8c5bcb5a599836f5c4b37220d000a1f33465861686868696c76859bb1c6dbc6b09b86715b46311c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d131620202020202020201c19130900000000000000061016192020202020202020191610060000000002101b222435353535353535353535353535353535353535353535353535353535353535352f2c24190b0000000000000000050e192023292b2a26201d150a00000000000000061727353f424a4a4a4a4a4a4a4a4a3a372e211000000000000000000000000000000000000000000e1e2b354a4a4a4a4a4a4a4a4a4a45413729190800061727353f424a4a4a4a4a4a4a4a4a3a372e211000000000000000000000000a1b2c3943474a4a4a4a4a4a4a4a4a4a32281a0a00000009192631353a3a3a3a3a3a3a39362d202a33373a3a3a3a3a3a3a38352b1e0e00000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d1800000000000311182630353a3f403f39362d221b10020000000000000000000000000a1f33475872879cb1bdccd6cfc3b3a18f7a644f3a250f000c21364c61767e7d7d7f81889ba3b5c9d5c4ac97826d57422d180200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d121416181a1b1b19181614120d0b06000000000000000000000000000000000000071521282b3535353535353535312e261b0d00000000000a18232b2e35353535353535352e2b23180a00000010202e373a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4440362919070000000000000e19202c35383e403f3b3632281a130500000000001023354552586060606060606060604f4b3f2e1b0800000000000000000000000000000000000005192b3c485e6060606060606060605a5447372512001023354552586060606060606060604f4b3f2e1b08000000000000000000001427394a565c6060606060606060605e45382815020001142637444b4f4f4f4f4f4f4f4e4a3e2d3a474c4f4f4f4f4f4f4f4d493c2b1906000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d18000000000513212e36434b4f5455544f4a3e372e20120400000000000000000000000c21374c61768ca4b6cae0e8e3d0bfa9937e69543e2914000e23384e63788d939394979ea6b5c1d2cbb7a6927c67523d27120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b10181f2227292b2d2f31302e2d2b2a27232019130e0c0600000000000000000000000000041526333d404a4a4a4a4a4a4a4a4642382b1b09000000061828363f434a4a4a4a4a4a4a4a433f3628180600071b2e3e4b4f606060606060606060606060606060606060606060606060606060606060606059544736241100000000010f1e2b353c494d535554504b45383123160800000000162a3f52636d757575757575757575655d4b37220e0000000000000000000000000000000000000b2035485a707575757575757575756f6654412d1800162a3f52636d757575757575757575655d4b37220e000000000000000000051a2f43566871757575757575757575705645321d0900081d3144556065656565656565645c4a3647586165656565656565625a4935200b000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d18000000021323313f4b546064696b69645c4f4b3e2f221200000000000000000000000f243a4f64798fabbccfe3f8ecd6c1ac97816c57422c17000e23384e63788da3a8a9acb3b8c4d2cdbeb39d8875604b36210b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000309141d20252a34373c3e40424446454442403f3d38352b282320190e0a03000000000000000000000d213344505560606060606060605b56493826130000001023364653586060606060606060585346362310000d22374b5c6475757575757575757575757575757575757575757575757575757575757575756f6554402c17000000000f1f2d3c484d5a63686b6a6660564e4233261603000000182d42586d828a8a8a8a8a8a8a8a8a7a654f3a25100000000000000000000000000000000000000d22384d62788a8a8a8a8a8a8a8a8a846f5a452f1a00182d42586d828a8a8a8a8a8a8a8a8a7a654f3a2510000000000000000000071c31475c71868a8a8a8a8a8a8a8a8a74604b36200b000b20354b60757a7a7a7a7a7a7a7a644e394c61767a7a7a7a7a7a7a78624d38230d000000162b40556b8095aac0d5dbc6b09b86715b46311c060d22374c62778ca1b7cce1ceb9a48f79644f3a240f04192e43596e8398aec3d8d7c2ad98826d58432d18000000102031414d5d65737a7e807e7971645c4c402f1c0c000000000000000000000c21364c61768b9fb5cadfe7e3cfbfa9937e69543e2914000e23384e63788da3b8bec1c8cbcdc9bdb0a0937e685645321e09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b171e2631353a3b484c51545557595b5a59575654524d483c3d38352c211e160b02000000000000000013283d50626b7575757575757575716756422e19040001162b3f53646e75757575757575756e64533f2b16000f243a4f64798a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a836f59442f1a0000000a1b2d3d4a5a626f787e807f7b7568605144332111000000182d42586d82979f9f9f9f9f9f9f8f7a654f3a25100000000000000000000000000000000000000d22384d62778d9f9f9f9f9f9f9f9a846f5a452f1a00182d42586d82979f9f9f9f9f9f9f8f7a654f3a2510000000000000000000071c31475c71869c9f9f9f9f9f9f9f8b75604b36200b000c21364c61768b8f8f8f8f8f8f86715c4751667c8f8f8f8f8f8f8f816c56412c17000000162b40556b8095aac0d5dbc6b09b86715b46311c000d22374c62778ca1b7cce1cfb9a48f7a644f3a250f04192e43596e8398aec3d8d7c2ad98826d58432d180000071b2d3e4d5f677b868f9495948e857a665e4c3a2a17040000000000000000000a1f33465872869cb1bdccd5cfc3b3a18f7a644f3a240f000e23384e63788da3b8bdbdbdc6b9b4ae9e96826e604e3828160200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b161e293337444b4f55596267696b6d6f70706e6d6b6967625a58534d493c3632291d150a00000000000000162b40556b808a8a8a8a8a8a8a8a85715b46311c060003192e43586e828a8a8a8a8a8a8a8a826e58432e19000f243a4f64798f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f99846f59442f1a0000031628394a5b6378838d93959490887d6b62513f2f19090000182d42586d8297adb5b5b5b5b5a48f7a654f3a25100000000000000000000000000000000000000d22384d62778da2b5b5b5b5b5af9a846f5a452f1a00182d42586d8297adb5b5b5b5b5a48f7a654f3a2510000000000000000000071c31475c71869cb1b5b5b5b5b5a08b75604b36200b000c21364c61768ba1a4a4a4a49c86715c4751667b91a4a4a4a4a496816c56412c17000000162b40556b8095aac0d5dcc7b19c87725c392816030d22374c62778ca1b7cce1cfbaa5907a65503b251004192e43596e8398aec3d8d7c2ad98826d58432d1800000d22364a5c677d8c9ca4a9aaa9a39b8b7c665847331f0a0000000000000000000417293a51667c919fb3b8c5bcb4a599836e5c4b37220d000e23384e63788da3a8a8a8a8a6a89e988e8173604b42311a0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002131b293239464b5560656b71777c7e80828486858382807f7c78726d68635a534b463932281a10020000000000162b40556b80959f9f9f9f9f9f9b86715b46311c060003192e43586e83989f9f9f9f9f9f98836e58432e19000f243a4f64798fa4b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5ae99846f59442f1a0000091e32455763798899a1a8aaa9a69d92806b5d4b3727150200182d42586d8297adc2cacacabaa48f7a654f3a25100000000000000000000000000000000000000d22384d62778da2b7cacacac4af9a846f5a452f1a00182d42586d8297adc2cacacabaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6cacacab5a08b75604b36200b000c21364c61768ba1b6babab19c86715c4751667b91a6bababaab96816c56412c17000000162b40556b8095aac0d5ddc8b39d88735746321e090d23384d62788da2b7cde2d1bba6917c66513c2711001a2f44596f8499aec4d9d7c2ad98826d58432d180005182a3b4f647a8b9faab5c2c0c1b5a99d8876614c382816020000000000000000000b24384c5e6c81919ea7a7ab9f978777614c3e2e1b07000e23384e63788d9393939392918f89837a6c6055443124140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009151d3039464b57616a747a80868b91939597999b9a99979594928d87827d78716861574b45382e21150100000000162b40556b8095aab5b5b5b5b09b86715b46311c060003192e43586e8398adb5b5b5b5ad98836e58432e19000f24394e64798ea3c8d8cacacacacacacacacacacacacacacacacacacacacacacacacac4ae99846f59442f1a00000b21364b6075879da6b3bfc0c4b8b39f8d7b655544311d0800182d42586d8297adc2d7dfcfbaa48f7a654f3a25100000000000000000000000000000000000000d22384d62778da2b7ccdfd9c4af9a846f5a452f1a00182d42586d8297adc2d7dfcfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbdfcab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbcfc1ab96816c56412c17000000162b40556b8095aac0d5dfcab49f8a76614b36210c0f243a4f64798fa4b9cee4d4bea9947f6954372715021628385b71869bb0c6dbd7c2ad98826d58432d18000b1f3448596f849aaabbc8d2d5d2c7b8a697826d5645321e09000000000000000000091d2f4052636c7d888e928f8b817561594734201000000c21364c61767e7d7d7d7d7d7c7a756e645c4b44372614060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d192731414d57616a767f888f959b9faba9aaacaeb0afaeacaba9a7a59d98928d867d756960564b3f331c1408000000162b40556b8095aac0cacac6b09b86715b46311c060003192e43586e8398adc3cacac3ad98836e58432e19000c22374c61778caabbcee2dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd9c4ae99846f59442f1a0001142637546a7f94a5b7c4d0d5d5cbbcab9d8774604b36200b00182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5e3cfbcab8f7a644f38271511263c51667b91a6bbd0e6d8c2ad98836d5544311d0a1e32455673889db2c8ddd6c1ac97816c57422c17000d22374c62778b9fb5c8d8e6eae5d5c4b49f8975604b36210b0000000000000000000012223445525f6774787c7a766c6157473b2a180200000a1f33465861686868686868666460554f4a3e312619090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f1d2b37444b5f67757f89949ea7aab1b5bcc9c0c2c4c5c5c3c2c0bec3b7b2ada8a39b93887e74655d5043302618080000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e19000b20354a60738a9fb4cadff4f4f4fff3e8e0dececececececececececececececececec4ae99846f59442f1a00081d31445571869cb1c3d4e2eae7dac9b7a5907b65503b261000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000080e1012100a0100000000000d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5ebd9c9aa95806b56453120182c3d54697e93a9bed3e8dec8b39e8875604b38281d21364b60758a9fb4c9dfd5c0aa95806b55402b160010263b50657b90abbccfe6f6fff2e1cdbaa88e79634e39230e0000000000000000000004172734414d546063676561574b46392a1d0c0000000417293a464c535353535353514f4b4437362d1d14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1f2c3b4855606c7d88949ea7b3b8c5c6cacfdad5d7d9dbdad8d7d5d4d4cac7c2c1b5b0a79e93877b6a614b433626140100162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900071c30435473889db2c8ddf2fffff3e3d5ccc8b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9ae99846f59442f1a000b20354b60758a9fb4cadff1fff7e7d4c3a9947e69543f291400182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000003111c232528251e1305000000000d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5eaddc7b29d8774604b40352b36495b70859ab0c5daefe0ccb8a7917c6756453731324052677c91aabbcee2d3bea9947e69543f29140011273c51667c91a6c5d5e7fbfff9e5d3c2a48f79644f3a240f00000000000000000000000917233036434b4e524f4b463933291b0c00000000000c1c2933363e3e3e3e3e3d3c3a363127221b10010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1c2c3d4959627481929ea7b3b8c5ccd5dbdfe3e2dfdddbd9dadbdcdfe2e6dfddd7d2c9c5b8b3a59d8c806d605443301c0800162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e190000132536596e8398aec7d7eafdfbe8d5c5b8b3a4a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a399846f59442f1a000c21364b61768ba7b9cce0f5ffffecdac9aa957f6a55402a1500182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000011212e373b3d39302313000000000d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5eadfcbb7a5947f6a5e4d483c495463788da2b4c8ddf1e8d5c5b29d877460554b44454b5e6f849aafc8d8e6d4c3a6917c66513c2611000f24394f64798ea6b8cbe0eef5eddecab6a48c77624d37220d000000000000000000000000051318263035393d3a3632281e170b000000000000000c171f212828282828282724201d150907000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a2a3a495b637784969fb3b8c5ccd5e0e2dfd9d7cdc9c7c6c4c4c5c7c9ced8d8dee1e4ddd5ccc3b6aa9f958172604b35200b00162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e19000012273d52677c92a9bacde2f5f5e0ccb8a79e8f8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e836f59442f1a000a1e32465774899eb3c9deebf5f1e3cfbcab927d68533d281300182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000c1c2e3f4b50524d41301e0e0000000d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5eae6d4c3b49f8c7c6c625a5b5a62728399aec0d1e4f0e5decab6a59983746660555660687c8c9fb4cadfdfcab7a58c77624c37220d000b20354b6074889eb3c1d0dee1decfbeb19c8672594834200b000000000000000000000000000008141c20232725211e160b03000000000000000000040a0c131313131313110f0b080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000818283847586379889ba2b0bdccd5e0e2d8cec9c4c7bab4b2b0afafb0b1b4bac7c3c9cdd7e1e7e0d3c8bbb49f927d68533d281300162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000c21364b61768a9fb4c6d7e9f3dec8b39e887a79797979797979797979797979797979797978624d38230d0003162939596e8398aebccddde0dfd3c3b59f8c78624d38220d00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000004182a3a4b5d65675f4d3c2c1a0a00000d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5eaf2e2cebbaa9f8d8178727072788399a1b3c7deede0d2c9c6c3b3a199867b747171757e8a9fabbccfe3ddc7b29d87725948341f0b00081d3144556a7f94a3b4c0c9cdc9bfb2a0917c66513b2b180500000000000000000000000000000001080b0e12100c090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013253645566176879ca6b4c0cde0e6d8cec8bbb4afa9a99f9d9b9a9a9b9c9fa9a7aeb4bac6cdd7e5e6d9cebda8937e69533e291400162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000a1e3346576d8298a8bacde1efe0ccb8a795806a6464646464646464646464646464646464625a4935200b00000f253a4f647a8f9eb0bcc8ccc9c3b6a597816c5a4835200b00182d42586d8297adc2d7e4cfbaa48f7a654f3a251000010f1f334758657b7d675b4938271502000d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5eaf0e5d8c8bbab9f968d8785878c99a1b3bfd0e2ddcfc2b5b1b5bfb3a49c9089868689939fa8bac9d9e4d0bfab96816b563b2a180500011426374b6074859aa2afb4b9b4afa198826d5e4d391d0d00000000000000000000000000000000000000000000000000000000000000000000000000020c121415151515151515130d030000000000000000000b0b0b0b0b0b0b0b06040000040a0c1215181a1916140f0d070000000000000000000000000000000000000000071c3043546074849aa5b6c4d1dfdfd1c8bbb4aa9f9a948e8a8886848586878a8d92989fa8b4bac7d7e9ebd3bea8937e69533e291400162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e190000031729394d62788a9fb4c1d2e2e8d5c5af9e937e6b60544e4e4e4e4e4e4e4e4e4e4e4e4e4e4d493c2b190600000d22374b5c6b80969eadb3b8b4b0a59c8775614b3c2b190500182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000f2032424c6176888a79635645311d12000d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5eae0d3cac7c9bcb4aba59d9b9c9fabb3bfcfdde3cfbfb3a49ca4b5c2b5b1a79e9b9b9ea8b4bac6d7e7d7c6b3a18d79634e38230e000000091d324556617684919a9fa89e99918375614b40301d0000000000000000000000000000000000050b0d14191b1d1d1d1d1d1d100e08000000000006141f27292a2a2a2a2a2a2a2720150700000000040d131620202020202020201c19130b171f21272a2d2f2e2b2924221b100a0400000000000000000000000000000000021628384a60728298a2b4c3d3e2dccec1b5aa9f978b847e797472716f6f707275787d838a959fa9bacde1e8d3bea8937e69533e291400162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e190000000b203448596a8095a3b5c4d4e4e3ccbcad9c93807261584c40393939393939393939393938352b1e0e000000081b2e3e4b6072808f989ea79f9b948779635746331e0e0000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100b1b2d3e4f606f83999b8574604b402f1d0d0d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5e5d3c2b6b1b1b5c2c3b6b2b0b2b5bcc9cfdde2d5c5b3a199869ca7b8c8c5b9b3b1b1b4b9c6cdd7e4e0cdbaa899846f5b4935210c00000002152838475861727c84898b89847c6e615746332212000000000000000000000000000000040e192022292e3032323232323225231c11030000021424323b3e3f3f3f3f3f3f3f3c332515030000071521282b3535353535353535312e26222933363d40424443413e39362d221f180c010000000000000000000000000000091e324556677d92a0b2c0d1e1dbcdbdb1a39b8b82786f69635b5d5b5a5a5b556063676e757f8b9fb4c9dee8d3bea8937e69533e291400162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000005192b3b4b6074859ba6b7c6d5e3dacabaad9e968376665e4b45392e24242424242424242320190e0000000000101c304354606b7a83888b8a867e74635b49392917000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25101628394a5c697e93a1a396806b5e4c3b2a180d22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2512121212121212121212121c31475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0d5decab6a49c9ca4b5c4cac7c5c7cacfdae7ded2c4b8a6998377899eaab9c6ccc9c6c6c9ccd6e1e0d5ccbbb49f8a78624d3d2c1a06000000000a1a2a3a475460676f7476746f665e4b463929170400000000000000000000000000000c181f2b35383e43464748484848483a372e211100000c1f32424f5455555555555555504333200d00041526333d404a4a4a4a4a4a4a4a464238373a464c5255575a5856544e4a3e37342a1c140800000000000000000000000004182a3a4b6075879db2becfdedecdbdb09f9785786d625a544e4a3d46454537444b4e5257616a7b8fa4bacfe4d3bea8937e69533e291400162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e19000000000d1e3245566277889da8b8c5d4e2d8cabcb0a199887b6c60574b3e321e160f0f0f0f0f0d0b0600000000000001142636434b5c646e73767571696056493d2c1b0b000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25101e324657647a8b9fb4b59f8d7c66594836251322384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2727272727272727272727272731475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aac0cacac7b19c86869ca6b4c0c9d3d6d9d8d5d2c9c1b5a69d8877657b8c9ea8b5c1c9d2d6d9d9d7d5ccc5b8b39d937e685a49351f0f0000000000000c1c2a36434a525a5660565a514c4033291b0b00000000000000000000000000010f1c2a333c484d53595b5d5d5d5d5d5d504b3f2e1c080012273b4f61696a6a6a6a6a6a6a61503c2713000d213344505560606060606060605b56494b4f5861676a6d6f6e6b69645c554c473a3026180c00000000000000000000000a1f3347586a7f94a5b7cadce2d0bfb09e968174625a4d483c39362d312f302731353839464e63788ea3b8cde3d3bea8937e69533e291400162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000000021628384859647a8a9ea7b7c3d1dedacdbfb3a69d908175645c4f4332281b0e00000000000000000000000000081826303e4a4f5856606054544b45382c1f0f00000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251e30414b6175869ca9babcab9e8877625443301c22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c475c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6cbc6b19c86715c4751667b91a6bbd0c1ab96816c56412c17000000162b40556b8095aab5b5b5b5b09b8577889aa2b1b6c2c1c4c3c0c2b5b1a39b887a645d667c899ba3b0b5c1c1c3c3c1c5b8b3a79e927f69604e3c2c1901000000000000000c182530353c38454b45383c39301e170b00000000000000000000000000000f1f2c3a474c5a62696e70727272727272655d4b37230e0014293e54697e7f7f7f7f7f7f7f6a553f2a150013283d50626b757575757575757571674b5d646d767c7f828483807e79726a61594b43362a1c0d000000000000000000000c22374c6177899eb3c3d4e6d5c4b3a196806d6056493c352b24211a1c1a1a151d202328394e63788ea3b8cde3d3bea8937e69533e291400162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000a1a2b3b4a5c647a899da5b4c0cde0ddcfc4b7b29f97867a6a614b45392b1e100200000000000000000000000008182b3b484c5757575757534e42311a0f0100000000182d42586d8297adc2d7e4cfbaa48f7a654f3a252c3c4d5f6d8297a4b6c7c9b8a69a8472604a3e2e22384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a6552525252525252525252525252525252525c71869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1b6bbbbb19c86715c4751667b91a6bbbbbbab96816c56412c17000000162b40556b80959f9f9f9f9f9f9b86717784939ca4a9acaeaeaba8a39b928578645c4d5e667885939ba3a9abaeaeacaaa79e96897d69614f42311e0e00000000000000000008131c2027283236322827241d120300000000000000000000000000000b1b2c3d4958616d787e83858787878787877b65503a2510001e33485e73889494949494948c755f4a352000162b40556b808a8a8a8a8a8a8a8a8571616c7a828a929597999896938e877f77686054473a2b1d0d000000000000000006192c3c556a8095a7b9cce1e0cbb7a69a8373604b45382c20190e0c070d0f121212121223394e63788ea3b8cde3d3bea8937e69533e291400162b40556b8095aac0d5dbc6b09b86715b46311c000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000d1d2d3e4a5c6479879aa2b0bccbd5e2d4cbbdb1a49c8c7f6e6057483c2e20100200000000000000000000000b20344859626c6c6c6c6c68604e3a26110000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2737495a677d929fb1c2d3d5c4b3a2947f695c4a3929384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a6767676767676767676767676767676767676771869cb1c6dbe0cab5a08b75604b36200b000c21364c61768ba1a5a5a5a59c86715c4751667b91a5a5a5a5a596816c56412c17000000162b40556b808a8a8a8a8a8a8a8a857162737e868f9497999896938f867d75625a4b404d5a63747d858e9396999997958f898176675f4f43322414000000000000000000000000070b12161e211e16110f090000000000000000000000000000000417293a495b6376828b93989b9c9d9d9d9d907b66503b2611001e33485e73889daaaaaaaa9f8c755f4a352000162b40556b80959f9f9f9f9f9f9b867175818d989fa9aaacafadaba9a49c95897e736158483c2b1d0d000000000000000c2035495a71869cb1c5d6e6d4c3b39d887661554432281a0e0602101b2224272727272727394e63788ea3b8cde3d3bea8937e69533e291400162b40556b8095aac0d5dcc7b19c87725c3a2a18040003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000010202d3e4a5b637784969eb3b8c4d0e1dfcec3b6aa9f948275625a4b3f2e201001000000000000000000000d22374c627781818181817e68533e28130000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a3144556278899eb3becee0e2d0c0b49f8b7a64574633384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7ead4bfaa957f7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d879db2c8dde0cab5a08b75604b36200b000c21364c61768b90909090909086715c4751667c90909090909090816c56412c1700000013283d50626b75757575757575757167546068717a7f818483807e7a71686056483c303c4956606871797e818484827f7a746c61584d413225150600000000000000000000000000000002090b09020000000000000000000000000000000000000a1f334658637987979faaaeb0b2b2b2b2a5907b66503b2611001e33485e73889db3bfbfb49f8a755f4a352000162b40556b8095aab5b5b5b5b09b857787979fabb4bac7c2c4c3c0c2b6b1a79e938576625a483b2b19090000000000000e23384d63788da4b5c9e4dfcab7a5937e6958463726150a000010202d36393c3c3c3c3c3c3c4e63788ea3b8cde3d3bea8937e69533e291400162b40556b8095aac0d5ddc8b39e88735847331f0a0004192e44596e8399aec3d8d8c3ad98836e58432e19000000000000000210202d3d4959617380909da6b3bfcdd7e1d3c8bbb4a0988578645d4b3e2e1f0f0000000000000000000011263b50667b909797979785715b3a2a180400000000182d42586d8297adc2d7e4cfbaa48f7a654f3a3f4b6074859ba8b9ccdceceee2cebbaa9d8776614c41384d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7ecd7c3af9e9591919191919191919191919191919191919191919da6b7cbdfe0cab5a08b75604b36200b000b20354b60737b7b7b7b7b7b7b7b654f3a4c61777b7b7b7b7b7b7b79634e38230e0000000d213344505560606060606060605b56434b535c64696c6f6e6b69645c534b45382b1e2c38454b535c64696c6e6e6c6a6560554c473a31231507000000000000000000000000000000000000000000000000000000000000000000000000000004182a3a4c6176879ca5b4bbc8c5c7c7c7bba5907b66503b2611001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0cacac7b29c87879ca5b5bcc9cdd7d7d9d8d5d3cac5b8b3a29b867862594837261401000000000115273754697e94a9c2d2e5ddc7b29d8774604b3a2919090000071b2d3e4a4f525252525252525263788ea3b8cde3d3bea8937e69533e291400162b40556b8095aac0d5e0cbb8a68c77614c37220d00031729395b71869bb0c6dbd8c3ad98836e58432e19000000000000000002101f2c3b4755606b7c8899a1b4bac7d2dfd9cebeb2a39b887b645c4b3d2c1b0b00000000000000000013293e53687e93a8acac9e89745947341f0a00000000182d42586d8297adc2d7e4cfbaa48f7a654f3b4c5d6b8095a3b5c6d6e8f4f4ead8c8b6a598826d5f4e3d4d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7ecdeccbcafaaa7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7b2b7c4d4e6e0cab5a08b75604b36200b00081d3144556066666666666666655d4b3747596166666666666666635b4935210c000000041526333d404a4a4a4a4a4a4a4a464230353e4b4f5457595956534f4b3e3632281a0e1a2832363e4a4e545659595755504b4437332a1c13050000000000000000000000000000030a0c121515130d0b050000000000000000000000000000000a1f3347586c8196a5b6c3cecfcac7bab4b3a5907b66503b2611001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dfcab6a59c9ca4b6c3cec9c7c5c6c9ccd6dbded6ccc0b4a49c8777625544311d0e00000000081d31445570859ab0c5dae7d5c5aa95806a5645311c0c0000000d22364a5c64676767676767676767798ea3b8cde3d3bea8937e69533e291400162b40556b8095aac0d5e7d5c5a6907b66513b2b18090a1e33465773889eb3c8ddd7c2ac97826d57422d18000000000000000000010f1d2a37444b5e667783939fa9b5c1cee1e2cfc1b5a69e8a7a645b49392916030000000000000001162c41566b8196abc0b9a78c77614c37220c00000000182d42586d8297adc2d7e4cfbaa48f7a654f4759657b8d9fb5c1d1e4e3dfdfe2e6d3c3b2a0927d685b494d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7eceadaccc3bfbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcc8cbd4e2f2e0cab5a08b75604b36200b0001152737444b505050505050504f4b3f2e3b474c505050505050504e493d2c1a0600000000071521282b3535353535353535312e1c202e373a3f424443413e3a372e211e160a000a151d202d36393e41444442403a3531271f170c0000000000000000000000000000010b161e21272a2b282220180d04000000000000000000000000000c22374c61778a9fb4c3d3c9bcb5aba99f9e9e907b66503b2611001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5e6d3c3b6b2b1b6c2c7bab4b2b0b1b4b9c6c6cfe0e0d1c2b6a59a8473604b3d2c1a060000000b20354b60748a9fb4c9dfe0ccb8a78f7a644f382715000000000f24394f647a7c7c7c7c7c7c7c7c7c7f94a9bed4e8d3bea8937e69533e291400162b40556b8095aac0d5ead7c2ad98826d594836261e1a27374c61768ba6b8cbe0d5c0ab96806b56412b1600000000000000000000000c192731404c59616f7e8a9ba3b1bdcdd7dfd2c5b8a89e8979635746321e100000000000000000132536596e8499aec3c5a48f7a644f3a250f00000000182d42586d8297adc2d7e4cfbaa48f7a654f546177889dabbccfdfdacfcac9ced8e1cfbeb49e8a7963564d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7ecf8eaded7d4d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1dddfe6f2ffe0cab5a08b75604b36200b000009192731353b3b3b3b3b3b3b3a372e212a34373b3b3b3b3b3b3b38352c1f0f000000000000040d131620202020202020201c1908101b22252a2c2f2e2b2925221b10090300000002090f1a2124292c2f2f2d2a25201d150904000000000000000000000000000008141c2932363c3f403d37342b1f170c00000000000000000000000012283d52677d92a9bacdcfbcab9f968c8a8888887b65503b2510001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5eae1d3cac7c6c1b5b0a99f9c9b9c9ea8aeb2beccd6e0d3c3b4a2957f6a5b4935210e0000000e23384d63788daabbcee2ddc8b39e8874604b35200b00000002172c41576c81919191919191919191949daec2d6e8d3bea8937e69533e291400162b40556b8095aac0d5eadfc9b49f8b7762544437322c354455697e94a9c4d5e7d4bfa9947f6a543f2a1500000000000000000000000009151d2f3b474c60687985979fb4b9c6d6e3d5c6b9a79c8675614b3e2d1b07000000000000071c30435471879cb1c6bda7927d68523d281300000000182d42586d8297adc2d7e4cfbaa48f7a654f60728399a6b7c9dadac9bcb5b4bac7d8e1cdb9a89b8574604d62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7ecfff7ede7e5e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f1f3f9fff5e0cab5a08b75604b36200b00000009151d202626262626262625221b10181f222626262626262623211a0f01000000000000000000000b0b0b0b0b0b0b0b06040000080d0f14171a1916140f0d08000000000000000000070d0f141719191715100b08010000000000000000000000000000000818263039464b515555534d483b332a1c0c0000000000000000000002182d42576d8297acc7d7cab59f8d807775737373655d4b37230e001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5eaf1e6d9c9bcb4a39b918a878587899098a0b3b9c5d6e2d1c0b49f8c79634e3c2b1905000011263b50667b90a5c8d8eadac5af9a85705443301c0800000002172c41576c8196a7a7a7a7a7a7a7a7a9aebbcbdee8d3bea8937e69533e291400162b40556b8095aac0d5eae2cdbaa999837260554b453d494e6074879db2c7dde6d3c3a6917c67513c27120000000000000000000000000001121d2a34424e5b637481929ea8b9c5d5e3d6c5b6a497826d5c4a36220e0000000000000b20354a6074899fb4c9c0aa95806b55402b1600000000182d42586d8297adc2d7e4cfbaa48f7a655c697f94a1b3c4d5e3cfbcab9f9fa9bacee2d7c6b5a396816c5e62778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7ecf3e5dad2cfcacacacacacacacacacacacacacacacacacacacadcdee5f0fee0cab5a08b75604b36200b0000000001080b11111111111111100e0800040b0c111111111111110e0c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008182636434b5761676a6a6862594c473a2a1c0c000000000000000000051a2f445a6f8499afc4d8c3ad98826e6260545e5e504b3f2f1c08001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5eaf5e3cfbcab9f94857c76727071757b83909ea7b9c6d6e2cebbaa97826d5a4835200b000012273c52677c91a7bcd1e6d8c3ad98836e583626140100000002172c41576c8196acbcbcbcbcbcbcbcbec2cbd9e9e8d3bea8937e69533e291400162b40556b8095aac0d5eaead7c7b3a19781736660565b5b636e8096a5b7cbdfdfcab6a58c77624c37220d0000000000000000000000000000000c181f313d4956606c7d8a9ea7b8c5d5e4d3c2b49f8c7a644f3c2b190500000000000d22384d62778da9bacdc3ad98836e58432e1900000000182d42586d8297adc2d7e4cfbaa48f7a65647a8b9fb4bfd0e2d2c1b59f8d8b9fb4bfcfe2d2c1b09e907c6662778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7ece5d5c8bebab5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5c6c9d3e0f0e0cab5a08b75604b36200b000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c121515120c0b04000000000000000003090b111516130d0b06000000000000000002090b111516130e0c0600000000000000000000000000000114263643546069767c7f807d776d6158473a2a18040000000000000000061b31465b70869bb0c5d0bba6917b66514b4349493b372f211100001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5eae5cebdb49f8d7f726761575b5560656e7b899ea8b9cde1d9c8b49f8b78624d38220d000013283d53687d92a8bdd2e7d6c1ab96816c56412c170000000002172c41576c8196acc1d1d1d1d1d1d1d4d6dee9f2e8d3bea8937e69533e291400162b40556b8095aac0d5eaf5e5d0bfb19f97867c757170727883969eb0c3d4e6d8c8b29d8772594834200b0000000000000000000000000000000004141f2c38454b5f677a899ea7b8c8d8e3cfbcab99846f5a4835200b000000000010253a50657a8fa5c7d7c6b19b86715c3b2a1805000000182d42586d8297adc2d7e4cfbaa48f7a6575879caabbceddd6c6b5a396807e93a1b3c4d4dfcdbdb39e887762778da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7ecdac8b7aaa5a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b1b6c2d3e5e0cab5a08b75604b36200b000000040d131620202020202020201c191309000000000000000000000000000000000000000000020c171f21272a2b28221f180c0300000000000a161e21262a2b282320190e0500000000000a151d20262a2b2923211a0f06000000000000000000000000081c30435460727f89919495928b8276615847331f120000000000000000071c31465c71869bb1c6ceb9a38e79644e3930263325231c110300001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5ead7c7b19f927d6960544b4639444b505d65798a9eb4c2d2e2cebbaa95806a553a2917040013283d53687d92a8bdd2e7d6c0ab96816b56412c160100000002172c41576c8196acc1d6ddddddddddddddddddddddd3bea8937e69533e291400162b40556b8095aac0d5eaf0e5decebeb1a49c91898785878d98a0b0bccde2e2cebbaa95806b563b2b18050000000000000008080808080808080800010f1a2832414d5c647a899eaabbcee2d9c9b49f8b78624d38220d000000000013283d53687d92a8bdd2c9b49e89745948341f0b000000182d42586d8297adc2d7e4cfbaa48f7a6d8298a5b6c8d8e1ccb9a89b85736e8399a6b7c8d9e0cbb8a69a8472788da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7ecd2beaa99908b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b9ca4b6c9dee0cab5a08b75604b36200b0000071521282b3535353535353535312e261b0d0000000000000000000000000000000000000009151d2933363c40403d37342a1e160b000006141a2832363c3f403e38352b20180d000005131a2731363b3f403e38352c20190e0000000000000000000005182a3b4b607282949ea8aaaaab9f988776614c402f1d0900000000000000071c31465c71869bb1c6cdb8a28d78634d3823141e100e08000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5e2cdbaa997826d5f4a4336322931353f4c5b677d92a4b5c9ded8c8b09b85705847331f0a0011263b51667b90a6bbd0e5d7c2ad98826d58432d180000000002172c41576c8196acc1c8c8c8c8c8c8c8c8c8c8c8c8c8bea8937e69533e291400162b40556b8095aac0d5eae0d3cac7c6c2b5b1a99f9c9b9da5aeb2becddae6d4c4b49f8b78624d37220d000000000002090b1e1e1e1e1e1e1e1e1e110f090a161e303e4a5c647a8b9fb4c2d3e3cfbcab947f6a553625130000000001162b40566b8095abc0d5cdb9a88c77624c37220d000000182d42586d8297adc2d7e4cfbaa48f7b7d92a0b2c3d3e0cebeb49e8a78636176879daabbcee2d5c5b4a2947f788da2b7cce2d9c4af9a846f5a452f1a00182d42586d8297adc2d7e5cfbaa5907b7575757575757575757575757575757575757574869cb1c6dce0cab5a08b75604b36200b00041526333d404a4a4a4a4a4a4a4a4642382b1b0900000000000000000000000000000000000a1927313a464c525555524c473b32281b0b0917243138454b515555534d493c342b1d0e0816233038454b505455534e493d352c1e0f0100000000000000000b1f3448596a8095a0b3b9c6c9bcb4a598826e5e4c38240f00000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dfc9b49f8a77624c4130251e161d202f3d4d5f71869cb1c6dbdfcab49f8b76614c37210c000f24394f64798ea4c9d9ebd9c4af9a846f5a3d2c1a0600000002172c41576c8196acb3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a8937e69533e291400162b40556b8095aac0d5e5d3c2b6b1b1b5c2c7bab4b1b0b2b7c3c6cfdce5d7c8b7a697826d594834200b000000000a161e2133333333333333333326241d120213202e3e4a5c6a8095a4b6caded9c9af9a846f5443301c0700000004192e43596e8398aec3d8d6c6a48f7a654f3a2510000000182d42586d8297adc2d7e7d2bda7927d8a9eb4becfe1d3c2b19f927d675a58657b8c9fb4c0d1e3d0c0b49f8c7c91a7bcd1e6d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a6560606060606060606060606060606060606071869cb1c6dbe0cab5a08b75604b36200b000d213344505560606060606060605b5649382613000000000000000000000000000000000a1a2837444b5861676a6a6761594b4639281b172735424e5660666a6b68625a4c483b2b1e162633414d5660666a6b68635b4d493c2d1f0f00000000000000000d22374c62778a9fb4beccd6d9cfc3b2a0917c66513c261100000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5d7c2ad98826d5948341c13080308111f314153687d93a8c5d6e2cebbaa917b66513c2611000d22374d62778cabbccfe3ddc7b29d88725b4935210800000002172c41576c81969d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d937e69533e291400162b40556b8095aac0d5decab6a49c9ba3b5c3cdc9c6c5c7cad4dbe2ded2c7baaa9d8876614c3b2b19050000000a1a2832364848484848484848483c382f22120210202d3e4b6074869cb1c6dcdec9b39e8974604a35200b000000071c31465c71869bb1c6dbd2bda8927d68533d2813000000182d42586d8297adc2d7ecdec9b39e899ea8b9cddcd7c7b6a497826d5f4d4b5d6a8095a2b4c5d5e2cebbaa9e899eb3c9deefd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b5c71869cb1c6dbe0cab5a08b75604b36200b0013283d50626b7575757575757575716756422e19040000000000000000000000000000021528384555606b767c7f807d776c6157463928243545526069757b7f807d786e6259483c2b233344505f67747b7f807e786f625a4a3d2d19090000000000000013293e53687e93a9bacde1e8ebe3cfbeae99836e59442e1900000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5d2bca7927d67523b2a1800000000011323384d62788da7b9cce0d9c8a8937e68533e2913000b20354b60748a9fb4cadfdfcab7a58e78634e36251300000001162b40566b80888888888888888888888888888888888888887e68523d281300162b40556b8095aac0d5dcc7b19c86869ba5b3bfcacfd9d7d9d8d6d3cac2b5a99f8c7c655847331d0d00000002162838454b5d5d5d5d5d5d5d5d5d514c402f1d0902101d314556697e93a8bed3e0ccb9a78d77624d38220d000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ece0ccb9a79ea7b9c6d6e2cdbaa99c8675614b413f4b6073849aa7b8cce0d8c8b9a79ea7b9cce0efd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a3636363636363636363636363636475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b808a8a8a8a8a8a8a8a85715b46311c060000000000000000000000000000091d3245566073808a919595928b817561574632324252636d7e88919495938d8377625a4835304150626b7d88909495938d8478635b4a37271501000000000000172d42576c8197acc7d7e9fcfeeddcc7b29c87725d47321d00000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5ceb8a38e79634e39240e00000000000b2035485a74899eb3c9ded5bfaa95806a55402b1500081d31445572879cb1c7dce6d4c3a9947e695443301c0900000014283d50626b7373737373737373737373737373737373737368604e3a251100162b40556b8095aac0d5dbc6b09b85778799a1afb4bcc9c2c4c3c1c2b6b1a49c8a7c665e4c3a2a1700000000091e32455660737373737373737373665e4c38240f00021527384e63788ea3b8cde8d6c5a38e79634e39240e000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ece8d6c5b9b3b9c5d6e2d0bfb49f8b7a645746323144556278899eb3bdcee0d6c5b9b3b9c5d6e8efd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2520202020202020202020202031475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b80959f9f9f9f9f9f9b86715b46311c0600000000000000000000000000061a2c3d4b607484959fa9aaaaaa9f978575614b3e394f606d81939ea7aaaaa8a0988878624d41374d5f6b80929da6a9aaa8a1998979635544311d08000000000000182e43586d8298adc2d8edfffff2ddc8b39d88735e48331e00000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5ccb7a18c77624c37220d000000000006192b3c5d72879cb2c7dcd6c1ac97816c57422c170001142637566b8096abc5d6e8dbc6b19c8673604a3727150100000e21334450565e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e524e41311e0b00162b40556b8095aac0d5dbc6b09b86717783919a9fababadafadaba9a49c93867a665e4c402f1c0c000000000b21364b60748788888888888888877c66513c261100000c21364c61768ba1b6cbe0cfbaa58f7a65503a2510000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ecf3e3d6ccc9ccd6e3d4c4b3a1937e695c4a392826374859667c919fb1c2d2e3d6ccc9ccd6e3f3efd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a25100b0b0b0b0b0b0b0b0b0b1c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aab5b5b5b5b09b86715b46311c06000000000000000000000000000c2135495b6c8197a2b4bac7c8bbb4a396816c5c4b4657697e939fb3b8c5c0bfb2a69a846f5f4d4455677d929eb2b7c4c0bfb3a79b8573604b35200b000000000000162b40566b8095abc1d2e4f3f4e7d5c5b09b85715b46311c00000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5ccb7a18c77624c37220d000000000006192b3c5d72879cb2c7dcd6c1ac97816c57422c17000010253a50657a8fa7b9cce0dec9b5a4917c675544311d130000041626333d40484848484848484848484848484848484848483d3a3123130100162b40556b8095aac0d5dbc6b09b8671626e7c848b9395989a9896938d867e73645c4c402f21110000000000091e32455674899d9d9d9d9d9d9d947e69543e2d1c0f0d1024394e63798ea3b8cee3cfbaa5907a65503b2510000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ecfff3e8e0dee0e8d9c8b7a699836e604f3d2d1b192b3b4c5e6c8196a3b5c6d7e8e0dee0e8f3ffefd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aac0cacac6b09b86715b46311c06000000000000000000000000000e23384e63798c9fb4c0cdd7d8cec1b59f8c7a644f4b6176899eb3bdccd5d5cfc4b3a2927d67524b6074879db2bccbd4d5d0c5b5a3947f695437271502000000000010253b50657b90a3b5c6d5dfdfd8cbb8a695806b56402b1600000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5ceb8a38e79634e39240e00000000000b2035485a74899eb3c9ded5bfaa95806a55402b1500000b20354b6075899eb3c9dee5d2c2b19c8673604b41301c130800081621282b333333333333332836434b524b43362633333328251e13050000162b40556b8095aac0d5dbc6b09b86715b5f676f777d80828483817e78726860554b3e2f2212030000000000021628385c72879cb1b2b2b2b2af99846f5c4a3a2d2422232f4052677c91a7bcd1e9d7c7a38e78634e39230e000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ecfffffbf5f3f3e2cebbaa9d8776614c42321f0f0d1d30404b6074859ba8b9cde1ecf3f5fbffffefd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000152a40556a7f95abbccfe1e9eae2cfbcab97816c5752677c91a7b9cce0e8eae2d0c0af9a856f5a50657a90a6b7cbdfe7eae3d2c1b19c86715544311d0800000000000b20354a6072859ba8b8c4cacac8bbb39e8877614c37220c00000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5d2bca7927d67523b2b1805000000001325364d62788da7b9cce0d9c8a8937e68533e29130000081d3144556d8398adbfcfe6dec9b6a496816c5f4d41302518110b050e14161e1e1e1e171f2d39455460676054433626181e13110b01000000162b40556b8095aac0d5dbc6b09b86715b4d515962686b6d6f6e6c69635b534b44372e201204000000000000001a2f455a6f849aafc4c8c8c8b59f8d7a64584a3d3937383f4c5e6e8399aec3d8e1cdbaa98c76614c37210c000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ecfffffffff3e3d1c0b49f8c7b6558473324140100121d32455663798a9eb4becfe1f1ffffffffefd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000192e44596e8399aec9d9ebfcfeecdac9b09a85705b556b8095aac5d6e8fbffeeddc8b39e88735e54697e94a9c4d4e6faffefdfcab59f8a74604b36200b0000000000071c304354647a8a9ea6b1b4b5b2aa9f917d675947341f0a00000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5d8c2ad98826d5948342014080308111c304354687e93a8c5d6e2cebbaa917b66513c26110000011527374f647a8fa1b2c8d9e5d3c2b09f927d675f4a43362f221f1817151517161e212a333d4a5760727d7260544336261909000000000000162b40556b8095aac0d5dbc6b09b86715b463b484d5356585a5856544e493d353126191002000000000000000014293f54697e94a9c1d2ddcfbcab9c8676635b524e4d4e515d667c90a1b2c6dbdec9b49f89745847331f0a000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ecfffffffbe8d5c5b4a2957f6a5d4b3a2a1706000002152838495b687d92a0b2c3d3e6f6ffffffefd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000000000000001a2f445a6f8499afc4d9eefffff0dbc6b19b86715c566c8196abc1d6ebfffff4dec9b49f89745f556a7f94aac9daecfffff5e1cdb9a88b76614c36210c0000000000001325364a5c657b88959c9f9f9d978b7f695f4d3a2a180400000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dfc9b49f8a77624c4130261e171d202f3d4a6073869cb1c6dbdfcab49f8b76614c37210c0000000922364a5c6e8399aabbcee2e0cdbdb49f8b7d6a60544c3f37342a2c2a2a2c2832363a474c5b637583928272605444372619090000000000162b40556b8095aac0d5dbc6b09b86715b462b34373e40434543413e38352c201d1409000000000000000000000d23384d62788da3b5c9dddac9b6a49c86796e67636263676e7b889eb3bfcfe2d8c8ae99846e593a2a1704000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ecfffffef0e0ccb8a79a8473604b3f2e1c0c000000000a1a2c3d4e606e8298a5b6c8d8eafdffffefd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000182d42576d8297acc3d4e6f4f4e7d3c3ae99846f5954697f94a9c0d0e3f1f7e8d6c6b29c87725d52687d92abbccfe3f0f5ead8c8b49e89745846331f0a00000000000008182d3d4b5d65767f868a8a88827969614f41301c0c0000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5e2cdbaa997826d604b433633293135404c5b687d92a4b5c9ded8c8b09b85705847331f0a000000071b2d3e4e63798c9fb4c3d4e5e2cdbaa99f928072655d534c473b413f3f4139454b5158616c798599a09782726055443726190900000000162b40556b8095aac0d5dbc6b09b86715b46312022282b2d2f2e2c2923211a0e080100000000000000000000000c2035495a71869bb0c0d0e4d3c2b6a49c8c837d7977787c838d9ea6b8cbdde2cebbaa927d68533d281300000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ecfffff0dfcdbdb39e89786255443121110000000000000f1f31424c6176879daabbcee2eeffffefd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c060000000000000000000000000012273c52677c91a5b6c8d6dfdfd7c9b6a5937e69544e64798ea2b4c5d4dfe0d9ccb9a897816c574d62778c9fb5c4d3dfe0decebbaa99836e593a291704000000000000000f1f2e3f4b58616a717575736d635b4f43322312000000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5ead7c7b19f927e6960544b4639444b505e66798a9eb4c2d2e2cebbaa95806a553a29170400000000102135495b6d8297a5b7c7d7e9d7c7bab49e95857b6f6862595856545557595760666d77818c9ba3b1a098827360554437271909000000162b40556b8095aac0d5dbc6b09b86715b46311c0d1316181a1917140e0c06000000000000000000000000000006192c3c50667b90a2b3c5d6e0d3c2b6ab9f98928e8c8d91989fabb8c4d5e6d5c4b49f8b77614c37220c00000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ecfff4e4d2c1b09f917c6659483726140300000000000001131e334657647a8b9fb4bfd0e2f2ffefd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000000000000000b20364b6074879daab9c5cacac7baab9d8775614b4a5c6f849aa7b7c3c9cbc9bcb49e8a78624d48596e8298a6b6c2c9ccc8bdb49f8b79634e39240e00000000000000000110212e3a464c5554606056574e493d322414050000000000000000040a1c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5eae5cebeb59f8d7f736761575b5560656e7b899ea8b9cde0d9c8b49f8b78624d38220d0000000000061a2c3d4c6177879da9bacde1e5d7cdbcafa39b90847d77716e6c6a6a6c6e70767c8289969faab5beb2a0988273605544372715010000162b40556b8095aac0d5dbc6b09b86715b46311c06000103050301000000000000000000000000000000000000000e23384c5e6f849aa7b9c8d8e0d3c9bcb4aea7a3a2a3a6aeb5bcc9d5e2d9c8b8a696806b5947341f0a00000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7ecfce9d7c6b5a396816c5e4c3b2b19090000000000000000031729394a5c697f94a1b3c4d5e7f7efd9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000091d314556657b8c9ea7b2b4b5b2a99f8d7b6557463d4d6378899da5b1b4b8b3ab9f937e685a483b4c6277879ca4b0b4b8b3ad9f957f6a5b4a36210c00000000000000000002101b29333636434b4b453838352c1f140600000000000000000b171f212f405c71879cb1c6d6c6a28d78624d38230d00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5eaece3cfbcab9f94857c76727071757b83909ea7b9c6d6e2cebbaa97826d5a4835200b0000000000000f1f344759647a8a9fb4bcced9e6e2ccc1b5b1a29a928b8683817f7f8183858a91989ea8b4bbc8cebeb2a0988273605544311d080000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000091c2f404e6379899eaabbc8d4e3d9cfcac3bcb8b7b8bcc3cacfdae5d7cdbbaa9d8876614c3a2a180400000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d7e5e5e1cdb9a89b8574604b402f1d0d000000000000000000000b1b2e3e4a6072849aa6b8c9daece5d9c4af9a846f5a452f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6dbe0cab5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000021527384b5d667c89959c9f9f9d968a7d675d4b3935495a647a87949b9fa69d988c7f6a604e3c344859637986939b9fa79e988f8173604b3d2d1a0700000000000000000000000b171f2126303536312723211a0f0100000000000000000b1b2933363d4c5e74899eb4c9ccb9a88b76614b36210c00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5eaf1e6dac9bcb5a39b918a878587899099a1b3b9c5d6e1d1c0b49f8c78634d3c2b190500000000000004182a3b4a5c677d929eb4bbc8d6e3dfd2c9c0b4afab9f9b9896949496989b9fa9adb3b9c6ced9dccfbeb2a0988373604b35200b0000162b40556b8095aac0d5dbc6b09b86715b46311c060000000000000000000000000000000000000000000000000000122135495b657b8c9faab7c4cfd9e2dfd8d1cecccdd1d8dfe3ddd2c7bab49f8c7c665746331c0c0000000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adc2d0d0d0cfbeb49e8a79635645322212000000000000000000000000101c3043546277889dabbccfd0d0d0c4af9a846f5a452f1a00182d42586d8297adc2d0d0cfbaa48f7a654f3a2510000000000000000000071c31475c71869cb1c6d0d0cab5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000a1a2e3f4c5e667780878a8a878178675f4d3f2e2c3c4a5c64757f868a8b8882796a615042312a3b495b63747e858a8b88837a6c605544311f0f00000000000000000000000004101b22252c2f302d27201d150900000000000000000417293a464c585b657b90a8b9cdc9b49e89745746331e0a00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5eae1d3cac7c6c1b5b1aa9f9d9b9c9ea8aeb2bfccd6e0d3c3b4a2957f6a5b49351e0e00000000000000000c1d2d3e4d5f6b80949faab9c5d3e0e4ddd0c8c9bcb5b0adaba9aaacaeb0b4bac7c9ccd6e2e7d9cfc1b4a69d8878624d38230d0000162b40556b8095aac0d5dbc6b09b86715b46311c060000000000000000000000000000000000000000000000000000061a2c3d4b5d677d8c9da6b4bcc9ced8dbdddfe2e1dedcd8d1c8c1b5a99f927e685e4c392917000000000000091e33485e73889db3c8ddd4bfaa947f6a553f2a15000000182d42586d8297adbbbbbbbbc3b2a0927d685b4938281504000000000000000000000000001325364759657b8d9fb5c1bbbbbbbbaf9a846f5a452f1a00182d42586d8297adbbbbbbbbbaa48f7a654f3a2510000000000000000000071c31475c71869cb1bbbbbbbbb5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000011212f404c59616b727575726c625a4d4131211e2d3e4a57616a717575736d645c504333241d2c3c49566069707576736e645d4b443726140100000000000000000000000c171f2e373a414445423c3531271910020000000000000a1f334658616e7179879cb2c6d4c3b09b85705b3929170300000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5e6d3c3b6b2b1b5c2c8bbb4b2b0b1b4b9c6c6cfe0e0d1c2b6a59a8472604b3c2c19000000000000000000001020304150626b7f8c9ea7b6c2cbd5e0e3dcdacfcac6c3c1bfbfc1c3c5c9cdd7dee1e4ddd2c9bcb4a39b8879635a4935200b0000162b40556b8095aac0d5dbc6b09b86715b46311c060000000000000000000000000000000000000000000000000000000f1f2f3f4d5f677b87989fabb4bbc8c6c8c9cecdc9c7c3c0b4b0a39b8a7e68604e402f1b0b000000000000091e33485e73889db3c8d0d0bfaa947f6a553f2a15000000182d42586d8297a5a5a5a5a5a5a598826d5f4e3d2c1a0a000000000000000000000000000008182a3b4c5d6b8096a3a5a5a5a5a5a59a846f5a452f1a00182d42586d8297a5a5a5a5a5a5a48f7a654f3a2510000000000000000000071c31475c71869ca5a5a5a5a5a5a08b75604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c060000000000000000000000000000000312222f3b474c5655606055574d483c3123130f202d39464b5454606056584e4a3d3325150e1e2c38454b5454606056584f4b3f3126190900000000000000000000000c1c2a333e4b4f565a5a58514b44372d20100100000000000c21364c617682868b9ca5b6cac5b7a5937e68533e28130000000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dfcab6a59c9ca4b5c3cec9c7c5c6c9cdd7dbded5ccc0b4a49c8777625443301e0e0000000000000000000002132333445061697c899ca4b3b7c4ccd6dee0e3dfdbd8d6d4d4d6d8dadee1e7dfddd2c9c1b5ab9f968577635b493c2b19060000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000001112130414d5d6476828c979faaabb0b2b4bbb9b4b2aea9a29a91857968604e4131221200000000000000091e33485e73889db3bbbbbbbbaa947f6a553f2a15000000182d42586d8290909090909090908775614b41311f0f000000000000000000000000000000000d1d2f3f4b6074859090909090909090846f5a452f1a00182d42586d8290909090909090908f7a654f3a2510000000000000000000071c31475c718690909090909090908b74604b36200b00162b40556b8095aac0d5dbc6b09b86715b46311c000000000000000000000000000000000004121d2a343737444b4b443738352b1e1305010f1b28323636434a4b453839362d1f1507000e1a28323636434a4b45383a372e1d140900000000000000000000000c1c2a3a474c5c646c6f6f6d6760554a3e2d1f0f00000000000d22374c62778c9c9faab6c3bdb0a79d8775614b36210c0000000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dcc7b29c87869ca4b5bcc9cdd7d7d9d8d5d3cac5b8b3a29a867862594836261400000000000000000000000005162633434f5e667986939da6b3b9c5c9ccd6d9dcdfe2eaeae2dfdddad7d4cbc8c1b5b0a39b8c81746259493d2c1e0e000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000000031323303f4b58616d79828a90969b9d9faaa89e9d99938e857c73635b4e423123130400000000000000091e33485e73889da5a5a5a5a5a5947f6a553f2a150000000e24394e63797b7b7b7b7b7b7b7b78625746332313010000000000000000000000000000000000111d31445562777b7b7b7b7b7b7b7b79644f39240f000e24394e63797b7b7b7b7b7b7b7b7b76614c36210c0000000000000000000010253a4f657b7b7b7b7b7b7b7b7b7b74604b35200b00162b40556b8095aac0d5dbc6b19b86715c372715020000000000000000000000000000000000000c181f222631353631272220190e000000000b161e2125303536322824211a0f010000000a151d2025303536322825221b100100000000000000000000000417293a4758616e7a818485827c74645c4a3d2d1909000000000d22374c62778ca1b4bbc8c4b09f968979635746331e0a0000000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b857786979fabb4bac7c1c4c3c0c2b6b1a79e9284766259483b2b18080000000000000000000000000008162432404c5b63747e88949ea7adb3b9c5c4c7c9cdd7d8cec9c7c4c1c4b7b2aba39b91857a6b6056483b2c1f0f00000000162b40556b8095aac0cacac6b09b86715b46311c0600000000000000000000000000000000000000000000000000000000000513202e3a474c5b636d767b8186888a8b8b8987837e7970666054493d312413050000000000000000091e33485e738890909090909090907f6a553f2a150000000c21364a5b636666666666666666625a4839291705000000000000000000000000000000000000021527374859626666666666666666645c4a36220d000c21364a5b63666666666666666666615846331f0a000000000000000000000e22374b5d65666666666666666666605443301c0800162b40556b8095aac0d5ddc7b29d88725544311d0800000000000000000000000000000000000000040b0c141d20201d150d0b0500000000000003090c131c20201d150f0d0700000000000002090b131c20211e160f0d08000000000000000000000000000a1f3346586176838f96999a9791867a645b4a372715010000000d22374c62778ca1b7ced8c1ac968176635b49392917030000000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b867175818d989fa9aaacafadaba8a49c95897d726158483b2b1d0d0000000000000000000000000000000614222f3d49556068757f8992989ea7abaeb2b4bac7c7bab4b2afaca8a69d968e857c72645c4b45382b1d0f0100000000162b40556b8095aab5b5b5b5b09b86715b46311c0600000000000000000000000000000000000000000000000000000000000002101c2a333d494e5761666c717374767674726e69635b514b43362c1f13060000000000000000000010253b50657b7b7b7b7b7b7b7b7b78624d38230d000000071a2d3d4a4e50505050505050504d483c2b1b0b000000000000000000000000000000000000000009192a3b484c50505050505050504f4a3e2d1b0700071a2d3d4a4e5050505050505050504c463a29170400000000000000000000081b2e3f4b4f5050505050505050504b433626140100162b40556b8095aac0d5dfc9b49f8a75604b36200b0000000000000000000000000000000000000000000001080b0b080200000000000000000000000000070b0b090200000000000000000000000000070b0b0902000000000000000000000000000000061a2c3d4c61768699a1abafafada49c8b79635544311d080000000d22374c62778ca1b7c5cfc9b39e897f72604a3f2e1b080000000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b8671616c7a828a919497999896938e867f77686054473a2b1d0d000000000000000000000000000000000003111f2c37444b57606a767d83898f96999c9fa9a1a1a99f9d9a97928d888179706660544a3e31271a0d000000000000162b40556b80959f9f9f9f9f9f9b86715b46311c0600000000000000000000000000000000000000000000000000000000000000000c181f2c3539464b51565b5d586160565d59544e4a3d353026180f0100000000000000000000000e23374b5d656666666666666666625a4935200c000000000f1f2d36393b3b3b3b3b3b3b3b38352b1e0e000000000000000000000000000000000000000000000d1d2a34373b3b3b3b3b3b3b3b39362d20100000000f1f2d36393b3b3b3b3b3b3b3b3b3633291c0c00000000000000000000000010212e373a3b3b3b3b3b3b3b3b3b35302618080000162b40556b8095aac0d5e2cdbaa98f79644f3928160701080b0f0e0c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2136495b6e8298a4b3bfc4c4c2b6a99b8573604b35200b0000000d22374c62778ca1adb2beccb9a79e94816c5d4b37220e0000000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b5d646d767c7f828483807e79716a61584a43362a1c0d00000000000000000000000000000000000000000e19273139454b5861676e757a8084878a8b8c8b8b8a8885827d78736b645c514a43362d1d150a00000000000000162b40556b808a8a8a8a8a8a8a8a85715b46311c06000000000000000000000000000000000000000000000000000000000000000000040e1a212932363b41463a464c4b4538443e39362d201c140800000000000000000000000000081c2e3f4b5050505050505050504d493c2c190600000000010f1a212426262626262626262320190e0000000000000000000000000000000000000000000000000d181f22262626262626262624221b1002000000010f1a2124262626262626262626211f170c0000000000000000000000000002101b2225262626262626262626201c1408000000162b40556b8095aac0d5ead7c7aa95806b574632221b151d20252321190e00000000000000000000000000060c0e0f0f0f0f0f0f0f0f0f0d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23394e63798ea0b2c2d0d9dad3c7b5a3937e69533e29140000000d22374c62778c9198a0afbcc5b9b39f8f7a654f3a25100000000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b4b4f5761676a6c6f6e6b69635b554c473a3025180c0000000000000000000000000000000000000000000009151d28323a464c525560656b6f72747576767574726f6c68635b564f4a3e353025181002000000000000000013283d50626b7575757575757575716756422e19040000000000000000000000000000000000000000000000000000000000000000000000060b161e21262c312933363632282e2924211a0f080100000000000000000000000000000011212e373b3b3b3b3b3b3b3b3b38352c1e0e00000000000000070c0e11111111111111110d0b060000000000000000000000000000000000000000000000000000050b0d11111111111111110f0d0700000000000000070c0e1111111111111111110c0a0400000000000000000000000000000000080e101111111111111111110b080100000000162b40556b8095aac0d5eaddc8b39d8875614b43372e2731353a38352c1e0e00000000000000000000000e1921232424242424242424242220180d0000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f556a7f94aabecfe0edefe5d2c1af9a846f5a45301a0000000b20354b6073797c82959eafc8ccbdad98836d583727150200000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b4639464c5255575a5856534e4a3d37332a1c1308000000000000000000000000000000000000000000000000020a161e29333637444b5056595d5560616160555d5a57534d493c39362d201c1308000000000000000000000d213344505560606060606060605b56493826130000000000000000000000000000000000000000000000000000000000000000000000000000030a0c11171c171f21211e1619140e0c0700000000000000000000000000000000000003111c232526262626262626262320190e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5eae0cbb8a696816c614f4b3e37444b4f4d493c2c19060000000000000000000e1e2c35383a3a3a3a3a3a3a3a3a37342b1d0d00000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ecfeffefddc7b29d87725d48331d000000081d3144556063666d8095aabbcec8b39d88735544311d0800000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b462933363c3f424443413e39362d221f180c00000000000000000000000000000000000000000000000000000000030c171f212731353a414437444b4c4c4b443745423d38352c24221b1007000000000000000000000000041526333d404a4a4a4a4a4a4a4a4642382b1b090000000000000000000000000000000000000000000000000000000000000000000000000000000000000100040a0c0b090300000000000000000000000000000000000000000000000000080e1011111111111111110d0c06000000000000000000000000061016182020202020202020200e0c060000000000000000000000000000010b111320202020202020202020202013110b020000000000061016182020202020202020202020202020201f1d1b1917140e0c0700000000000000000000000000000000000000000000000000162b40556b8095aac0d5eae7d5c4b09f947f6f645c5b5a556064635b4935210c000000000000000006192c3c494d4f4f4f4f4f4f4f4f4f4c483b2b1805000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc9daecfffff2ddc8b29d88735d48331e00000001142637444b4e5161768b9fb4cacab59f8a75604b36200b00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b46311e21272a2d2f2e2b2924211a0f0a0400000000000000000000000000000000000000000000000000000000000000040a0c151d20252b2f2731363736363127302d282321190f0d07000000000000000000000000000000071521282b3535353535353535312e261b0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000917232a2d35353535353535353523211a0f01000000000000000000000005131e252835353535353535353535353529261f14060000000917232a2d3535353535353535353535353535353533312f2d2a23211a110b0801000000000000000000000000000000000000000000162b40556b8095aac0d5eaf2e2cdbdaf9d94847a73706f71757a78634d38230e00000000000000000c2135495b6364646464646464646462594834200f000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f556a7f94abbccfe3eef0e5d2c2af9a84705a45301b00000000091926313539465772889db2c7cfbcab8d77624d38220d00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b46311c0c1215171a1916140e0c070000000000000000000000000000000000000000000000000000000000000000000000000001080b10161a151d202121201d151a17130e0c0600000000000000000000000000000000000000040d131620202020202020201c1913090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c1116191a1b1b191814100c09030000000000000000000000000000061727353f424a4a4a4a4a4a4a4a4a38352c1f0f00000000000000000000051323313a3d4a4a4a4a4a4a4a4a4a4a4a4a3e3b3124140200061727353f424a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a484644423f39362d26201d15090000000000000000000000000000000000000000162b40556b8095aac0d5eae4d6ccc9bbafa1998f88858587898f7d67523d271200000000000000000e23384d63797a797979797979797a77624c3d2d1a0700000000000000000000000000000000000000000000000000000000000000000000000000000e23394e63798c9fb5c2d0dadad3c7b5a3937e69533e2914000000000009141d2029395c71869bb1c6dab8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b46311c06000002050301000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010002080b0c0c0b08020002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080c181f22262b2e2f31302f2d2a25211e160b070000000000000000000000001023354552586060606060606060605e493d2c1a06000000000000000004122331414e52606060606060606060606060534e42311f0b001023354552586060606060606060606060606060605f5d5b5957544e4a3d3b3531271c1308000000000000000000000000000000000000162b40556b8095aac0d5e8d6c6b9b4b9bfb3afa69d9b9a9c9e927c67523d2712000000000000000013283e53687d8f8f8f8f8f8f8f8f8f836f5b4a36210c00000000000000000000000000000000000000000000000000000000000000000000000000000c21364a5b6c8196a4b3bfc4c5c3b6a99b8673604b36200b00000000000001081c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b101416181a1b1a1816140f0b080100000000000000000000000000000000000000000000000000000009151d202a33373c414345464544423f3a363228201c130800000000000000000000162a3f52636d757575757575757575705b4935210c0000000000000003122230414e5f6875757575757575757575757568604e3b261100162a3f52636d7575757575757575757575757575757472706e6c69635b57504b4437302518120300000000000000000000000000000000162b40556b8095aac0d5e1ccb9a89ea8b3bfc4b7b3b0afb1a7927c67523d271200000000000000000b21364b6075889ea4a4a4a4a4a4a18e79634e3a2a180400000000000000000000000000000000000000000000000000000000000000000000000000071a2d3d4b60758699a1acafb0ada59d8b7a645544311d0800000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d131620202020202020201c1913090000000000000002090b1b202020202020202020201a0b080100000000000000000000000000000000000001080b141d20252a2c2e2f312f2d2c2924201c140b0700000000000000000000000000000000000000000000000211192731353a474c5156585a5b5b595854504b4639353025180f010000000000000000182d42586d828a8a8a8a8a8a8a8a8a79634e38230e0000000000000211212f404d5f687d8c8a8a8a8a8a8a8a8a8a8a8a7e68533e291300182d42586d828a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a888684827f79726c6660554a43362f1e170b000000000000000000000000000000162b40556b8095aac0d5dec9b49e8999a1b3c8cbc8c5c4bca7927c67523d27120000000000000000091e3245566b8095a9bab9b9b9bfac97826d5947341f0a00000000000000000000000000000000000000000000000000000000000000000000000000000f1e3245566177848f969a9b9892877a645c4a3727150200000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b46311c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071521282b3535353535353535312e261b0d00000000000a151d2030353535353535353535352f201d15090000000000000000000000000000000109151d202631353a3f414345464543413f3a353026201c130800000000000000000000000000000000000000000a151d2f37444b525861666b6e6f70706e6d69656157504a43362d1f150700000000000000182d42586d82979f9f9f9f9f9f9f8d78634e38230e00000000000210202f3f4c5e677d8c9fab9f9f9f9f9f9f9f9e947f69604e3b261100182d42586d82979f9f9f9f9f9f9f9f9f9f9f9f9fa99f9d9b9997948e87817b746760544c4033291b0f0100000000000000000000000000162b40556b8095aac0d5dbc6b09b858399aabac7d5dad1bca7927c67523d27120000000000000000031628384c62778b9fb4c9cecec9b49f8a77614c3828150200000000000000000000000000000000000000000000000000000000000000000000000000031628384759616f7a818585827d74645c4b3e2d19090000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041526333d404a4a4a4a4a4a4a4a4642382b1b090000000a1a273136454a4a4a4a4a4a4a4a4a4a4435312719090000000000000000000000000009151d27313537444b4f5456585a5b5a5856544f4b43363530251c130800000000000000000000000000000000000a1a2731404c55606770777c808384868584827f7a766e6560544a3d32251507000000000000182d42586d8297adb5b5b5b5b5a38d78634e38230e000000000110202e3f4b5d667c8c9faabbb5b5b5b5bdb09e957f6a614f42311f0b00182d42586d8297adb5b5b5b5b5b5b5b5b5b5b5b5bab4b2b0aeaca9a59d9690877c72665e4c46392c1f1204000000000000000000000000162b40556b8095aac0cacac6b09b86788b9fa9b8c5ccd5bca7927c67523d27120000000000000000000a203448596d8298adc0d1e1cdbaa9957f6a5645321d0900000000000000000000000000000000000000000000000000000000000000000000000000000a1a2a3a474c5d656c6f706d6760564b3e2e200f000000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d213344505560606060606060605b5649382613000008182738454b5a60606060606060606060594b443727150100000000000000000000021019273137444b52556065696b6d6f706f6d6b69646054514a43363025180e00000000000000000000000000000009192738454b5e66747c858c9196989a9b9a9997948f8a837b72635b4f43332515060000000000182d42586d8297adc2cacacab8a38d78634e38230e000000000f1f2d3e4b5d657b8b9faabbc8d9cacebeb19f96806b6150433224140200182d42586d8297adc2cacacacacacacacacacad8cec9c7c5c3c1c3b7b2aca49c91867c6e6157493d2f2212040000000000000000000000162b40556b8095aab5b5b5b5b09b86717c8b9ea7b3b8c5bca7927c67523d271200000000000000000005182b3b4e64798ea2b4c8dcd7c7b39d8875604b3620110000000000000000000000000000000000000000000000000000000000000000000000000000000c1c2a343f4b50575a5b58524b45382e201001000000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0d5dbc6b09b86715b46311c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013283d50626b7575757575757575716756422e19040013253645566070757575757575757575756f605544311d080000000000000000000513202d37444b5560676e747a7f818384868482817e79746d6760544a43362c1e1204000000000000000000000000011527374556606c7b87919aa2a6abadafb0b0aeada9a99f989085796a6150443324140000000000182d42586d8297adc2d7dfcdb8a38d78634e38230e0000000e1e2d3d4a5c647b8a9ea9bac8d8ddcfbeb1a097816c625143332514060000182d42586d8297adc2d7dfdfdfdfdfdfdfdfdfeae2dfdddbd9d7d4cac7c3b6b2a39b908375635b4c403022120200000000000000000000162b40556b80959f9f9f9f9f9f9b8671667b89949ea7a5a8a7927c67523d2712000000000000000000000d21364a5c6f849aafc2d3e0cbb8a6927d68523f2f1c080000000000000000000000000000000000000000000000000000000000000000000000000000000c181f2e373a414546433d3631271a100200000000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aac0cacac6b09b86715b46311c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b808a8a8a8a8a8a8a8a85715b46311c04121c3043546074848a8a8a8a8a8a8a8a8a8a8473604b35200b0000000000000000081623303e4a556068747d83898f9496989a9b9a9896948f88837c73676054493c2f22140600000000000000000000000a1d314455607481909da5b0b4c0c0c3c4c5c5c3c2c7bab4ada39b8b7f6a625042321e0e00000000182d42586d8297adc2d7e2cdb8a38d78634e38230e00000e1e2c3c4a5b647a899ea8b9c7d7ded0bfb2a0978172604a4434251507000000182d42586d8297adc2d7ecf4e6dad2d0cbcbcbcbcbcbcdcfd2d8dedfdcd3cac2b5b1a1998679665e4c4030201000000000000000000000162b40556b808a8a8a8a8a8a8a8a85715d65757f888d9092918e7d67523d271200000000000000000000071a2d3e51667c91a4b6caded5c4b19c86715d4c38230f0000000000000000000000000000000000000000000000000000000000000000000000000000000004111c23252c30302e27201d150a000000000000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b8095aab5b5b5b5b09b86715b46311c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b80959f9f9f9f9f9f9b86715b46311c122332424a60728298a29f9f9f9f9f9fa59b8575615544311d080000000000000006162633414d5c64737d8792999ea7a9abadafb0afadaba9a79e9891867c72635a4c40322414040000000000000000000a1a30404b607383979fb2b7c3c8d1d5d8d9dbdad9d7d7cdc9c1b4aa9f94806a604f3c2b1905000000182d42586d8297adc2d7e2cdb8a38d78634e38230e000d1d2b3c495a6379899ea7b9c6d7ded0c0b3a19882726054433026160700000000182d42586d8297adc2d7ece6d6c8bebab6b6b6b6b6b6b8babdc3c9ccd6deded2c9bfb3a49c8a7c665e4c3e2d1d0d00000000000000000013283d50626b757575757575757571675657616a74787b7d7c7975604b35200b00000000000000000000000f20354a6073879cb1c5d6dec9b5a4907b65503d2c1a060000000000000000000000000000000000000000000000000000000000000000000000000000000000080e10171a1b18120b090200000000000000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b80959f9f9f9f9f9f9b86715b46311c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aab5b5b5b5b09b86715b46311c2130414f606b8096a0b2c0b5b5b5b8a79d8777615746372715010000000000000314243344505f677a87929da5aeb3b9c5c0c2c4c5c4c2c0c5b8b3ada49c918578665e4f423222120100000000000000021628384d5f6d8298a1b1bdcad4dde4dddad6d2d4d7dee1e2dfd1c8bbb49e937e695a4835200d000000182d42586d8297adc2d7e2cdb8a38d78634e38230e0c1c2a3b485a6378889da7b8c5d6dfd1c0b3a2998373605443362513080000000000182d42586d8297adc2d7ecdac8b8aba5a0a0a0a0a0a1a3a5a7adb3b9c5c9d3e1ded0c2b6a89e8d7c665c4a3b2b190900000000000000000d213344505560606060606060605b5649464b54606266686763605544311d080000000000000000000000071c304354687e93a7b8cce0d2c2ae99846f5b4935210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a352000162b40556b808a8a8a8a8a8a8a8a85715b46311c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0cacac6b09b86715b46311f2e3f4d5f697e939eb0becfd9c8baa89e897963594739281909000000000000001121314250626b7d8a9ca4b2b6c3c9ccd6d6d8d9dbd9d7d6d5ccc8c2b5b1a39b897c69614f40301f0f00000000000000091e324556677c91a0b2bfcedfe6dfd1c8c5c0bdbfc2c9ccd6e4e6d8cebcb49f8a78624d3b2b18050000182d42586d8297adc2d7e2cdb8a38d78634e38230e1b2a3a48596278879da6b7c5d5e0d2c1b4a29a837460554436261808000000000000182d42586d8297adc2d7ecd2beab9a908b8b8b8b8b8c8d8f92989ea7b1b6c2ccd6e0d3c6b9ab9e8a7a6459483727150100000000000000041526333d404a4a4a4a4a4a4a4a4642383236434a4d5053524e4b44372614010000000000000000000000001325364b6075899eb3c8d8dfcab59f8c79634e3a2a1704000000000000000000000000000000000000000000000000000000030a0c1216181a1917140f0d07000005070b0b0b0b0b0b0b0b000000000000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3c8cab49f8a755f4a35200013283d50626b7575757575757575716756422e190400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46312c3d4b5d677d8d9fb4bccde2cebbaa9f8a7a645b493b2a1b0b000000000000000c1c2e3f4e606b80929fa9b6c3cad3dee0e6dfdddad9dbdddfe6e0ddd2c9c1b5a79e8d7f695e4d3d2d1a0a0000000000000b21364b6075879db2becfdde2d4cbc1b4b0aba8a9adb4b9c6cedceae1cdbaa899836e594834200b0000182d42586d8297adc2d7e2cdb8a38d78634e38231b293a47586277879ca5b7c4d5e0d2c2b5a39a84756056453727180800000000000000182d42586d8297adc2d7e5d0baa5907c767676767676787a7d8389919ca4b4b9c6d4e1d6c9b9a89d8877625544311d0b0000000000000000071521282b3535353535353535312e261e253035383b3d3c39353126190900000000000000000000000000081e3245576b8095aabbcee2cfbcab97816c5847331f0a00000000000000000000000000000000000000000000000000070b171e21272b2d2f2e2c2a24221b10071a1c202020202020202015130d040000000000000000071c31465c71869bb1c6cdb8a28d78634d38230e00000000000000001e33485e73889db3bbbbb49f8a755f4a3520000d213344505560606060606060605b56493826130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b462b3b495b657b8b9fabbccfdaccbcb49f8c7c665c4b3c2c1d0c0000000000000004172a3a4b5d687e939eb4bac7d3dfe6dfdcd4cac7c5c4c5c7cbd4dddfe5ded2c5b9ab9f8d7c665b4a382816030000000004172a3a53697e93a5b7cadce6d4c4b7b2a39b969394989ea8b1becedce9d7c6b59f8c77624d37220d0000182d42586d8297adc2d7e2cdb8a38d78634e3823283946586176869ca5b6c3d4e1d3c2b5a49b8575615745382819090000000000000000182d42586d8297adc2d7e4cfbaa48f7a6561616161616365686e757c86929ea8b7c3d3e0d7c6b7a69b8573604b392917030000000000000000040d131620202020202020201c191308131c202226282723201d14090000000000000000000000000000031628394d62778b9fb4c9dfdac9b49f8a77614c3827150200000000000000000000000000000000000000000000010f1a212933363c40424444413f39362d201c2e3135353535353535352a2820150700000000000000071c31465c71869bb1c6cdb8a28d78634d382313130d0b05000000001e33485e73889da5a5a5a59f8a755f4a352000041526333d404a4a4a4a4a4a4a4a4642382b1b090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b463948596379899ea9bac9d9cebeaf9e937e685e4c3e2e1e0e00000000000000000a1f334758657b8c9fb4bccdd7e5e3d4cac7c3b7b2b0afb0b2b7c3c8cbd4e2e3d6c9bcab9e8a79635645321e0b000000000a1f3347586f859aafc3d4e6d9c8b7a69d9185817d7f8289979fb1becfe6e3cfbcab937e69533e29140000182d42586d8297adc2d7e2cdb8a38d78634e38283846576176859ba4b5c3d3e1d4c3b6a49c867661574639281a0a000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f4b4b4b4c4e5052556066737d8a9da5b6c2d3e4d4c4b5a3937e685746331e0d0000000000000000000000000b0b0b0b0b0b0b0b0604000000070b0d1113120e0b0801000000000000000000000000000000000a203448596d8298adc0d1e1cdbaa9947f6a5645311d0900000000000000000000000000000000000000000009151d2d3639464b5256585a5956544e4a3e353043464a4a4a4a4a4a4a4a403c33251504000000000000071c31465c71869bb1c6cdb8a38d78634e382928282220190d0000001e33485e73889090909090908a755f4a35200000071521282b3535353535353535312e261b0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b3746576277879da7b8c7d7d0bfb1a095806b604e402f2010000000000000000004182a3a4c6176889eaabbcee1e7dacfc3b6b2a8a59d9b999b9da5a9b2b7c4cddae7d9c9b9a89d8775604b392916030000000c21374c61768a9fb4cadcdccebbaa9d887c706b686a6d778297a0b2c8d9ebdac9af9a846f5a3626140100182d42586d8297adc2d7e2cdb8a38d78634e383745566175849aa3b5c2d2e1d4c4b6a59c867761584739291b0a00000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a363637383a37444b55606879879ca4b6c6d7e2d2c1b39e8876614b3b2b1805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005182b3b4f647a8ea2b4c8ddd7c7b39d8874604b36201100000000000000000000000000000000000000000a1927313d4a4e5761676b6d6f6e6c69645c534a43565c606060606060606055504333200d000000000000071c31465c71869bb1c6cfbaa58f7a65503b3e3e3e38342b1d0d000010253b50657b7b7b7b7b7b7b7b65503b2610000000040d131620202020202020201c19130900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b44556175859ba5b7c5d6d2c1b3a197826d6250423122120200000000000000000a1f3447596b8095a6b8c8d8e7dac9bcb5a59d938d87858486888d939da6b0bccad8e7d7c6b6a5947e695746321e0a00000011273c51667c91aabbc7c7c7c7b49f8c7b665e56535459616d8298aabbcee2ddc8b29d88735443301c0800182d42586d8297adc2d7e2cdb8a38d78634e3744556074849aa2b4c1d2e0d5c4b7a69d87776259473a2a1b0b0000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2521212325273137444b5b6377869ca8b9cde1e0cbb8a695806b594834200b0000000000000000000000000000000610161920202020202020201916100600000000000000000000000000000000000000000d22364a5c70859ab0c5dadfcbb7a6927d67523f2e1c080000000000000000000000000000000000000a1a2737444b5b636e767c80828483817f7971686054677175757575757575756a61503c2813000000000000061b30455b70859ab0c5d3bea8937e6959545353534d483c2b1905000e23374b5d65666666666666655e4c38230e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b546073849aa3b5c3d4d4c3b5a3998373604b44332414040000000000000000001325364c61778a9eb4c5d5e6dac9bcab9f95877e7772706f7072787e87969eadbacadbe4d4c3b39e8875614b36210e00000014293e53697e93a8b2b2b2b2b2ac96816c5d4c403e3b474c62778b9fb4cadfdfcab49f8a74604b35200b00182d42586d8297adc2d7e2cdb8a38d78634e445560738399a2b4c0d1dfd5c5b8a69d88786259483b2a1c0c000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100c0e10151d26313d4a5963798a9eb4c1d1e4d5c5b49f8a77624c37220d00000000000000000000000000000a18232b2e35353535353535352e2b23180a000000000000000000000000000000000000000b20354a6074879cb1c6dce7d4c4b19b86715d4b37230e0000000000000000000000000000000000021527384555606b79838a919597999996948e867e726271858a8a8a8a8a8a8a8a7f6a55402a1500000000000004192e44596e8399aec3d8c7b29d87776c6a686868625a4834200b00081c2e3f4b50505050505050504c402f1c0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c1115181a1b1c1b191815110d0b050000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b60728298a2b3c2d2d5c5b7a59b857561554431261506000000000000000000071c3043546b8096a8b9cde3e3cfbcab9f8d7f7468625a5b5a5b5a62697480939cadbdcee3e0cbb8a6947f6a543c2b19050000162b40556b80959d9d9d9d9d9d9d917c67513f2f282a34485970859bb0c5dbe2cebbaa8c77614c37220c00182d42586d8297adc2d7e2cdb8a38d78634e5460738298a1b3c0d0ded6c6b8a79e8879635a493b2b1d0c00000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000209141d2d3b495b677d92a3b4c8dde1cdbaa9937e69543a2a1704000000000000000000000000061828363f434a4a4a4a4a4a4a4a433f362818060000000000000000000000000000000000071a2d3d50667b90a4b6cadef2dec9b5a38f7b65503c2c1906000000000000000000000000000000000c1d3145566073808b999fa9abadafaeaba9a49c93847871869b9f9f9f9f9f9f957f6a55402a1500000000000000152a40556a7f95aac2d2cbb7a59d8a827f7e7d7e78624d38220d000011212e373b3b3b3b3b3b3b3b382f21110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d161e21262a2d2f3031302e2d2b262220180f0b070000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b8671606b8095a0b2c0d0d7c7b8a79d877762574637271507000000000000000000000b20354a6074889db3c6d7e7d4c4b59f8d7d6a60554d483c443c484d56606b7e939fb1c5d6e7d5c5b19c86715a4835200b0000162b40566b8087878787878787878778634d382313182a3b586e8398adc3d8ead8c8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e60728197a0b2bfd0ded7c6b9a89e8979635b493c2b1d0d0000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000010f1d2c3d4d5f70859bb0c2d3e5d7c7af9a856f5847331f0a000000000000000000000000102336465358606060606060606058534636231000000000000000000000000000000000000c21364a5b6f849aafc2d3e5f8e5d2c1ae99836e5b4935210c0000000000000000000000000000000c1c30414b607483969faab4bac7c2c4c3c1c2b5b1a29a8877869bb1b5b5b5b5aa957f6a55402a150000000000000010253a4f657a8fa4b5c9d4c3b7a89e97949393907b66503b2611000003111c232526262626262626231c1103000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d181f222932363c3f42444546454442403c37342b25201c1308020000000000000000000000000000162b40556b8095aac0d5dbc6b09b8671697e939eb0becfd9c9baa99e89796359483929190900000000000000000000000f24394e64798ea6b7cbe4dfcbb7a695806b5f4b4437342b2f2b3538454b606c8196a7b8cce0decab6a48d78624d38220d000014283d50626b727272727272727272635a4935200c182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d7863626c8196a0b1becfddd7c7baa89e8a7a645b4a3d2c1e0e000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000f1f304150667b90a4b6cadedfcab49f8b77614c37210c000000000000000000000001162b3f53646e75757575757575756e64533f2b160000000000000000000000000000000005182a3b4e63798ea2b3c7e0f0fff0dfcab59f8c78634d3a291704000000000000000000000000000417293a4d5f6e8298a1b4bbc8ced8d7d9d8d6d2c9c0b4a69c86879cb2c7cacabfaa957f6a55402a15000000000000000e22374b5d71869cb1bcced4c6b9b4aca9a8a5907b66503b261100000000080e10111111111111100e09000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f1a212a343739464b5154585a5b5b5a595855514d483b3a3530251e160a01000000000000000000000000162b40556b8095aac0d5dbc6b09b86717c8d9fb4bccde3cfbcab9f8b7b645b493b2a1b0b000000000000000000000000152a3f546a7f94a9c4d5e7ddc8b29d8874604b41312720191a19202832424b6176899eb3c8dee5d3c2a8937d68533e281300000e21334450565d5d5d5d5d5d5d5d5d4d493c2c1906182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78636b80969fb1becedcd8c8baa99f8a7b655c4a3d2d1f0f00000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000011323384c5e72879cb1c7dce2cebbaa927d68523d2813000000000000000000000003192e43586e828a8a8a8a8a8a8a8a826e58432e19000000000000000000000000000000000b1f3448596d8297adc0d0e3fefff8e3cfbcab96816c5847331f09000000000000000000000000000a1f334758677d92a0b2bfced8e2e0d6cdc9c6c5c7cbc4b5a49c9ca5b6cadfd4bfaa957f6a55402a1500000000000000081b2e3f51667c909eb4bbc8ccccc9c1bfbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e19202d363b484c535761666a6d6f7071706e6d6a666259564f4a433632281d14090000000000000000000000162b40556b8095aac0d5dbc6b09b857a8b9fabbccfdacdbcb49f8d7c665d4b3d2c1d0d000000000000000000000000051a30455a6f849aafc4dae7d5c4a9947f695645321d15090500060a151e3346576b8095aac6d6e9d8c3ae98836e59432e190000041626333d4048484848484848484838352c1e0e00182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d786a7f959eb0bdcedcd9c8bbaa9f8b7b655d4b3e2d1f0f0100000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000091c2f40566b8196abc0d6ebd9c8ad98836d58432e18000000000000000000000003192e43586e83989f9f9f9f9f9f98836e58432e19000000000000000000000000000000031628384c62778b9fb4c9dfeeedebedecdac9b49f8a76614c372715020000000000000000000000000c21374c6176899eb3bfcfe2e3d5ccc6b9b4b1b0b2b7c3c2b5b1b2b6c3d3e6d4bfaa957f6a55402a1500000000000000001024384c5e6b80949faab3b9c5bdbdbdbba5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141d2b353e4a4e5962686f767b7f82848586858382807b77736c6460544b45383126190f01000000000000000000162b40556b8095aac0d5ddc8b29d88889ea9bac9d9cfbeb09e937e695e4c3f2e1f0f00000000000000000000000000031628395d72879db2c7dce0cbb8a68d78634e382815020000000000031729394f647a8fa8b9cde1dbc6b19b86715c362513000000081621282b3232323232323232322320190e0003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d797f949dafbccddbdac9bbaa9f8c7c665d4c3f2e2010010000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000011263b50657b90a5c7d8eadbc6b09b86715b372715020000000000000000000003192e43586e8398adb5b5b5b5ad98836e58432e19000000000000000000000000000000091e3245566b8095a9bacee2e0d8d6d8e0e1cdbaa8947f6a5544311d080000000000000000000000061a2c3d54697e93a7b8ccdde4d5c5b8b3a89e9b9b9da5adb1bec6c7cad3e1ead4bfaa957f6a55402a150000000000000000091d2f4051626b7f8c989ea7a6a8a8a8a8a5907b66503b26110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1926313c484d5c646f777d848a919497999a9b9a999795918c88817a736960564b44372c1f14060000000000000000162b40556b8095aac0d5dfcbb7a69d9ea7b8c7d7d2c1b2a095806b604e403020100100000000000000000000000000091e32455774899eb4c9deddc8b39d88735b49351a0a000000000000000b20354b6075899eb4c9deddc8b39d88735443301c07000000040e14161d1d1d1d1d1d1d1d1d0e0c06000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7ebd6c0ab9681949daebbccdae3cfbcab9f8c7d675e4c3f2f211002000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000c21374c61768ca9bacee2dec9b49e89745544311d080000000000000000000003192e43586e8398adc3cacac3ad98836e58432e190000000000000000000000000000001325364b6075889eb3c7d8dbcdc4c1c4cddbd7c6b29d8874604b36201100000000000000000000000c2136495b71869cb1c5d5e8d6c6b8a79e92898686888d97a0b4bcc9d9e6f1ead4bfaa957f6a55402a15000000000000000000122234445161697982898e919293939393907b66503b261100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2937444b5a626d79848c93999fa9a9adafb0b0afaeadaaa6a69d968f877e75696055493d3124160100000000000000162b40556b8095aac0d5e7d4c4b7b2b3b8c5d5dec9b5a3988272604a423122120200000000000000000000000000000b21364b60768ba8b9cde1dbc5b09b86705b3d2c1a0000000000000000081d31445572879cb1c7dcdfcab49f8a75604a35200b00000000000001080808080808080808000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7ecd8c4b09e969eaebbcbdae6cbbbb59f8d7e685f4d402f21110300000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000a1f334758748a9fb4c9dfe1cdb9a88b75604b36200b0000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000071c304354687e93a7b8cce0cdbdb0abb0bdcddfcbb7a6927d67523f2e1c08000000000000000000000e23394e63798ea4b6c9e3e1ccb9a89e897d757170727982929fabbccfe3f2ead4bfaa957f6a55402a1500000000000000000004162634434f5b636d74797b7d7d7d7d7d7e78624d38220d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101e2c3a4655606b78828d999fabafb4bac7c2c4c5c6c5c3c2bfc4b7b2aba59d93887e73635b4e42331c1408000000000000162b40556b8095aac0d5eae2d4cbc8c8ccd5e3dbc6b19b8675605443302414040000000000000000000000000000000d23384d62788da2c6d7e9d9c4af99846f5a442f1a0000000000000000011426375b70859ab0c5dae2cebbaa8c76614c37210c00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7ece0cdbcb0abb0bccbd9ebd9c8ae9d937e685f4e41302212030000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000417293a5d73889db2c8dde9d6c6a18c76614c37210c0000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000000b20354a6073869cb1c5d5d2c2b09e969eb0c4d4d4c4b09b85715d4b37230e0000000000000000000013283d52687d92a7c2d3e5d9c8b39e89796860565b5b636d7d8d9fb4c4d5e7ead4bfaa957f6a55402a1500000000000000000000081625323d494e55606466686868686868625a4834200b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010202e3c49586173808b989fabb5bcc9c9cdd7d7d9dadbdad8d7d5d4cbc8c3b7b2a69d93857968605144302618080000000000162b40556b8095aac0d5e7d5c5b8b3b4bac7d7dfcab49f8c7c665c4a3c2b1c0c0000000000000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000001a2f455a6f849aafc4d9ead8c8a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7ecebdbcdc4c0c4cddbe9e2cebbaa947f69604e4131231204000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000031628395d72879db2c7dcead8c8a18c77614c37220c0000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000071a2d3d51667b90a4b6cadec9b5a4968196a6b7cbddc9b5a38f7a654f3c2c1906000000000000000000172d42576c8197acc1d7e2cebbaa95806b5b4b453d494e5f6b8095a6b8cbe0ead4bfaa957f6a55402a15000000000000000000000007151f2c3537444b4f515353535353534d483c2b190500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2e3e4b5b637683959fa9b5bcc9cfdadfe2e3dfdddbd9dadcdfe2e6dfddd4cac4b7b2a39b8a7e6b624b433626140100000000162b40556b8095aac0d5e0ccb8a79e9fa9bac9d9cebbaa9e8a7a645a493a2a1a0a00000000000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7ececdac9bcb5bcc9d9e7dfcab49f8b7b655b493a2a1a0a00000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000091e32465774899eb4c9dee2cebbaa8b76604b36210b0000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e19000000000000000000000000000d21364a5c6f849aafc2d3d6c6b19c8675889db3c8d9d2c1ae99836e5a4935200b0000000000000000001a30455a6f859aafc4dadfcab49f8b78624d3d322c35414b6075889db3c8ddead4bfaa957f6a55402a15000000000000000000000000000e1a21263135393c3d3e3e3e3e3e38342b1d0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1b2b3c4b5c64798699a1b4bac7cfdae3e0ded9cfcac8c6c4c5c6c9cdd7dcdee5dfd4cbc1b4a99f93806d605443301c1402000000162b40556b8095aac0d5ddc8b39e898a9fabbccfd9c8b9a89d887862584738281808000000000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7ece3cfbcab9fabbcc9d9e2cebbaa9e897963594738281808000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000c21364b61768ba8b9cde1dfc9b49f8a745645321e090000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000005182b3b4e64798ea2b4c7e1ccb9a8937e6a8095aabbcedfcab49f8c78634d3a29170400000000000000001c31465c71869bb1c6dbdac5af9a85705a48351e1a213245566b8196abc0d6ead4bfaa957f6a55402a1500000000000000000000000000000609141d2024262828282828282220190d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008182839485a647a899ca4b3bfced8e3e1d6ccc8c9bcb4b3b0afb0b1b4bac7c7cad3dee5dfd1c7bab49e958272604b42312010000000162b40556b8095aac0d5dbc6b09b857c8d9fb4bccdd7c6b8a69c8676615645362614010000000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7ecdfcab59f8a9fabbccfe3d9c8b9a79d8777615645362513000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000f24394f64798ea4c6d7e9dcc7b19c87725c382816030000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000b203448596d8297adc0d0dec9b39e897662788b9fb4cadfcfbcab96816c5846331f0900000000000000001d32485d72879db2c7dcd7c2ad97826d583c2b190616283850657a90a5c5d5e8d4bfaa957f6a55402a150000000000000000000000000000000001080b0f111313131313130d0b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013253645576278889da7b6c2d0e2e5d7cdc5b8b3adab9f9d9b999a9c9fa9aab1b6c2c9d2e2e5d7cdbcb0a096806b604e3e2d19090000162b40556b8095aac0d5dbc6b09b86717e939eb0becfd5c4b6a49a8474605443301c140400000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e9d4bfa9947f8d9fb4bdceded6c5b6a59b8574605443301c130300000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000061a2c3d556a7f94aabfd4e9d9c3ae99836e59442f19000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000031628394c62778b9fb4c9dfd1c0ac96816c596e8399aec3d3d9c9b49e8976614c37271501000000000000001e33495e73889eb3c8ddd5c0aa95806b55402b16000c21364c61768ba7b8cce0d4bfaa957f6a55402a150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c3043546075859ba6b8c5d3e0ded1c7bab4a79e97918b88868485878a8e949ca4b1b5c2ced9e6e1cdbeb09e937e685c4a3726140100162b40556b8095aac0d5dbc6b09b86716b8096a0b2c0d1d3c2b4a2988272604b4232231203000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d797f949fb1c0d0e0d3c3b4a3988272604a4131211101000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000b2135495b70859ab0c5dae5d2c2a9947f69543f2a14000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000091e3245576b8095a9bacedcc8b4a28e796350667b90a5b6cadfcdb9a8947f695544311d08000000000000001e33495e73889eb3c8ddd3bea8937e69533e2914000a1f33465873899eb3c8ded4bfaa957f6a55402a15000000000000000000000000000812181a1d1d1d1d1d1d15130d030000000000000000000000000000000000000000000000000000000000000000090f111515151515151513110b01000000000000031628394a60728298a3b5c4d5e3dccfc0b4a99f9589827b7573716f707175797f86919ca4b4bbc8d7e5dccdbcb49f8c7a645544311d0800162b40556b8095aac0d5dbc6b09b867160728298a2b4c2d3d1c0b2a096806c614f41302110010000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d786c8197a2b3c2d3e1d1c1b2a095806b5f4e3f2e1f0f000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000b1b2d3d4e63798c9fb4cadfdec9b5a48d78634d38230e000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000001325364b6075889eb3c7d8d5c4af9a85705b4a6073879db2c7d7d6c6b29d8774604b352010000000000000001e33495e73889eb3c8ddd2bda8927d68533d2813000417293a5d72879db2c7dcd4bfaa957f6a55402a150000000000000000000000000c1a252d303232323232322a28201507000000000000000000000000000000000000000000000000000000000004121d24272a2a2a2a2a2a2a28251e13050000000000091e324657687e93a0b2c1d2e2dbcebeb2a29a8b80766d6660565b5a5b5560646a727c86959faabac7d7e6e0cebbaa9b8573604b35200b00162b40556b8095aac0d5dbc6b09b8671546074849aa4b6c4d5cfbfb09e937f695f4d3f2e1f0f0000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d786373849aa4b6c4d5dfcfbeaf9e927d685d4b3d2c1c0c0000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000b1829394a5c6d8298abbccfe3dcc6b19c86715b4935210c000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000071c304354687e93a7b8cce0cbb7a6917c67514354697f94a9bacddfcbb7a5917c67523e2e1b080000000000001e33495e73889eb3c8ddd2bda8927d68533d281300001c31475c71869cb1c6dbd4bfaa957f6a55402a150000000000000000000000041a2a374145484848484848403c3325150300000000000000000000000000000000000000000000000000000000122230393c3f3f3f3f3f3f3f3d3a3123130100000004182a3a4b6175889db3becfdfdfcebdb1a09884786b6157514b45384437444b4f555e6673808c9fa9bac8d5cbc2b6b1a2947e69543f291400162b40556b8095aac0d5dbc6b09b86715b566176869ca6b7c6d6cdbdb59f8d7d675d4b3d2c1d0d00000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78636176869ca6b8c7d7dcccbcb49f8c7b655b493a2a1a0a00000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000040e1b2836465764798c9fb4c9d9e6cfbeaa95806b553c2c1906000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e19000000000000000000000b20354a6073869cb1c5d5d9c8b39d8874604b364c61778a9fb4c9dfd4c3b09b85705c4b37220e0000000000001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a15000000000000000000000012223748555a5d5d5d5d5d5d55504333200d0000000000000000000000000000000000000000000000000000000b1b30404c5155555555555555534e42311e0b0000000a1f3447596a7f95a6b7cbdce3d1c1b19f978274625a4b46393632282f27313639404c55606a7c8b9faabbc4b8b3a49c90847a644e39240f00162b40556b8095aac0d5dbc6b09b86715b47586278889da8b9c8d8cfbcab9f8b7b655b493b2a1b0b000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d7863586278889ea9bac9dae2cebbaa9e897963584738281808000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000070b0d181f2c3946546176869cabbccfe7d8c8b2a08e79644e39240f00000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e19000000000000000000071a2d3e51667b90a4b6cae2cebbaa95806a55443347586d8298adc2d2ddc9b5a38f7a644f3c2b190600000000001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a1500000000000000000000091d2f4055666f7272727272726a61503c28130000000000000000000000000000000000000000000000000000031729394c5e666a6a6a6a6a6a6a68604e3a25110000000c22374c6177899eb4c4d5e7d6c5b4a397816d6056483c3329211e161a151d20242f37444b5e667b8c9fb4b4a69e93867c6f645c4a36220d00162b40556b8095aac0d5dbc6b09b86715b3a485a647a8a9eaabbcedac9baa99e8979635947392819090000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e5a647a8b9fabbccfe3d8c8b8a79d8776615645362513000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251b131c20222a343c495761728399a4b6c9d9e2cebbaa98836e5c4a36210d00000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000d21364a5c6f849aafc2d3dfcab49f8b78624d372a3a4f657a8fa4b5c9ded1c1ae98836e5a4835200b00000000001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a15000000000000000000000f24384c5e6f848787878787877f6a55402a1500000000000000000000000000000000000000000000000000000a1e334657667c7f7f7f7f7f7f7f7e68533d28130000071a2d3d566b8095a8b9cce2e0ccb8a79b8574604b45382b1e170b09020002080b12192731404c5d6a7f94a29f95887e73665e4e4a3e2d1b0700162b40556b8095aac0d5dbc6b09b86715b463c4a5c667c8c9fb4bcccd7c7b8a79d87776257463727150100000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e4b5c677d8d9fb5beceded6c5b6a59b8474605443301c130300000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a3030253035373a474c5b63758399a1b2c3d3e6d5c5b49f8b78634d3d2d1a0700000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e19000000000000000005182b3b4e64798ea2b4c8e0d3c3ae99836e59483422374b5d71869cb1c6d6dfcab49f8b78624d39291703000000001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a15000000000000000000081c2e3f51667c909d9d9d9d9d8b78634e38230e00000000000000000000000000000000000000000000000000021628384c617689949494949494937e69543e291400000c21364a5b72879db2c6d6e7d5c4b39e897762564532281a0e03000000000000000009151d2f3f4b607284978a80766860554c40362d20100000162b40556b8095aac0d5dbc6b09b86715b462d3e4c5e687e929eafbeb5b5c5b7a59b8575615544311d0800000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e3e4d5f6a7f94a0b1c0d1e0d3c3b4a2988272604a4131211101000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f45454536434a4d5359616c798599a1b2bfcfe1d8c8b8a796816c5a49351f0f0000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000b203448596d8298adc0d1decab6a4907b65503b2b1b2e3f53687e93a8b9cce1cebbaa96816b5746331e09000000001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a150000000000000000000e23374b5d70859bb0b2b2ae99836e5b4935210c00000000000000000000000000000000000000000000000000091e3245566a7f94a7aaaaaaaa9e8875614b36210c00000e24394e63798ea5b6cae4e0cbb7a6947f6a59483827150a000000000000000000000001121c304354627781786b61574b44372f221b10020000162b40556b8095aac0d5dbc6b09b86715b46312f404e606a8095a09f9f9f9f9f9fa3998373604b35200b00000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e384150616d8297a2b4c2d3e1d1c0b2a095806b5f4e3f2e1f0f000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a655b5b5b5b5b546062686e77818b9ba3b3bfcfdde2cebbaa9e8976614c3c2c19010000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000031628394d62778b9fb4c9dfd7c7b29c8773604a35201021364b6176899eb4c9ded9c8b39e8976614c372614010000001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a150000000000000000071b2e3e50657b90a3b4c7b5a38f7a654f3d2c1a06000000000000000000000000000000000000000000000000011426374b6075889db3c5bfb9a8957f6a5746321e090003162839556a7f94aac3d3e6ddc8b39d8875604b3b2b1a0a00000000000000000000000000011426364859626c62594b4639312619120700000000162b40556b8095aac0d5dbc6b09b86715b463122314250626d828a8a8a8a8a8a8a8a8a8a826c57422d1702000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e3833434b6073849aa4b6c5d5dfcfbeaf9e927d685d4b3d2c1c0c0000000000000000000000182d42586d8297adc2d7e4cfbaa48f7b7070707070707275777d838a969faab5c1d0dde1cdbcb49f8c7b655847331e0e000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000091e3245576b8095aabbcee1cdbaa9937e695443301c0a1e3346576c8197acc0d1e1ccb9a8937e695544311d080000001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a1500000000000000000d22374b5c6f849aafc1c3b09b85705d4b371f0e00000000000000000000000000000000000000000000000000081d314455687e93a6b7cbc8b49e8a77614c3928160300091e32465771869bb0c6dbe7d4c4aa95806a5745321d0d00000000000000000000000000000008182b3b484c574d483b33291d1409000000000000162b40556b8095aac0d5dbc6b09b86715b46311c24334452646d757575757575757575756c63523e2a1500000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e38233144556176869ca7b8c7d8dcccbcb49f8c7b655b493a2a1a0a00000000000000000000182d42586d8297adc2d7ecdbc6b19c86858585858586888a8c92999fa9b4bbc8d2dfd7cdbdb09e927d685d4b3a2a1700000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e19000000000000001325364b6075899eb3c8d8dec9b49f8a76614c362513031729394e63798ea2b4c8ddd6c6b29d8774604b3520100000001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a1500000000000000071a2d3d4f647a8fa2b4c7b7a5917c67523f2e1c00000000000000000000000000000000000000000000000000000b20354b6074879db2c4cebbaa96816b5847331b0b00000c21364b61768b9fb5cadfdfcbb7a68e79644f39281600000000000000000000000000000000000d1d2b34374237342b1e170b0100000000000000162b40556b8095aac0d5dbc6b09b86715b46311c1525354552586060606060606060606057524535220f00000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e3823273747586378899ea9bacee2e2cebbaa9e897963584738281808000000000000000000182d42586d8297adc2d7ecdec9b5a49c9a9a9a9a9a9b9d9fa9a8aeb4bac7ced8e2d4c7bab49f96806b604e3f2e1c0c00000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e19000000000000071c304354687e93a7b8cce6d1c1ac97826d5847331808000b21364a5b70859bb0c5d5dfcab7a5917c67513e2e1b0700001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a15000000000000000c21364a5b6e8399aec0c7b29d8774604b35201100000000000000000000000000000000000000000000000000091c2f4052677d92a5b6cac9b49f8b78624d3a2a170000000f24394f64798eabbccfe3ddc8b29d88735c4a361b0a0000000000000000000000000000000000000d1820222c2220190d03000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c071727353f424a4a4a4a4a4a4a4a4a4a423e3527170500000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e382319293a495a657b8b9fb4bcccdcd8c8b8a79c8776615645362513000000000000000000182d42586d8297adc2d7ece5d2c2b5b1b0b0b0b0b0b0b2b4bac7c3c9cdd7e2d8cec4b7a99f928172604b413121110000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000b20354a6073879cb1c5d5ddc9b5a38e7a644f3a29170000071a2d3d52677d92a7b8cce0d4c3b09a85705c4a36220d00001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a15000000000000031628384e63798c9fb5cabaa9937e695544311d08000000000000000000000000000000000000000000000000000f24384c5e71869cb1c3cfbcab97826d5948341c0c00000012273c52677c91a7c9daecd9c3ae99846e593e2d1b0000000000000000000000000000000000000000050b0d170d0b050000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060917232b2d353535353535353535352d2a2217090000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e38230e1c2c3c4b5d677d929eafbecfded6c5b6a59a8474605443301c130300000000000000182d42586d8297adc2d7ecf0e0d2c9c6c5c5c5c5c5c5c7c9ced8d9deded9cec7bab4a69d8b7d6c605443302313030000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000071b2d3e51667c91a4b6cacad5c5b09b85705c4a361c0c0000000f20364b6075889eb3c9dacac8b4a28f7a644f3c2b1905001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a15000000000000091e3245566d8297abbcc9b49f8a76614b37261401000000000000000000000000000000000000000000000000081b2e3f51667b90a4b5c9cab49f8c79634e3b2b190000000013283e53687d93a8bdd2e8d6c1ac97816c57422c170000000000000000000000000000000000000000000000020000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600061016182020202020202020202017150f05000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d7e2cdb8a38d78634e38230e0e1e2e3f4d5f6a8095a0b2c0d1e1d3c3b4a2988272604a4131211100000000000000182d42586d8297adc2d7e5e5e5e5dedbdadadadadadbdddfdedcd9d3cac8bbb4a99f96877a685f4b4336261405000000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000d22364a5c70849aafc2b5b5b5b8a7927d68523e2d1b00000000091d3245566b8096abbcb5b5b5c0ad98836e5a4834200b001e33495e73889eb3c8ddd2bda8927d68533d281300071c31465c71869bb1c6dbd4bfaa957f6a55402a150000000000000b21364b6075899eb3c9c8ae99836e5746321909000000000000000000000000000000000000000000000000000e22374b5d70859ab0c2d0c0ae98836e5b49351d0d00000000142a3f54697f94a9bed4e9d4bfaa957f6a55402a150000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000001030b0b0b0b0b0b0b0b0b0b02000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adc2d0d0cdb8a38d78634e38230e001121304150626d8298a2b4c3d3d0d1c0b2a095806a5f4d3f2e1f0e000000000000182d42586d8297adc2d0d0d0d0d0d0d0d0d0d0d0d0cfd7cdc9c7c4c2b6b1aa9f978b8176645c4e413026180800000000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000f24394e647a8ea29f9f9f9f9f9f9e8975604b36211000000000021528384d63788c9f9f9f9f9f9f9f9f8b78624d38220d001e33495e73889eb3c8cacabda8927d68533d281300071c31465c71869bb1c6cacabfaa957f6a55402a15000000000004182a3a52677d92a8b9ccbbaa927d675239291600000000000000000000000000000000000000000000000000071a2d3d4f657a8fa2b4c8c7b3a28e7a644f3d2c1a0000000000152a3f546a7f94a9bfd4e9d4bfa9947f6a543f2a150000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297adbbbbbbbbb8a38d78634e38230e0003132333434b6074849aa5b6c5bbbbbbbeaf9e927d675d4b3d2c1a060000000000182d42586d8297adbbbbbbbbbbbbbbbbbbbbbbbbbbbac7bab4b2afa9a49c968b82786c61584a3e311c14080000000000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000182d43586d828a8a8a8a8a8a8a8a8a806b5645321e0900000000000a2035495a6f838a8a8a8a8a8a8a8a8a806b56412b16001e33495e73889eb3b5b5b5b5a8927d68533d281300071c31465c71869bb1b5b5b5b5aa957f6a55402a1500000000000a1f3447596f849aafc6cab49f8b76614c37210c000000000000000000000000000000000000000000000000000c21364a5b6f8499aec0d1c1af9a846f5c4a361f0f000000000014293e53697e93a8bed3e8d6c1ab96816c56412c170000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d7e2cdb8a38d78634e38230e00182d42586d8297a5a5a5a5a5a5a38d78634e38230e000005151d3245566176879ca7a5a5a5a5a5a5a59f8b7b655b4935210c0000000000182d42586d8297a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a3a99f9d9a938d8781796d625a4c473a2d201301000000000000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000162b3f53646d7575757575757575756b625138281602000000000006192c3c54656f7575757575757575756b62513d2914001e33495e73889e9f9f9f9f9f9f927d68533d281300071c31465c71869b9f9f9f9f9f9f957f6a55402a1500000000000c22374c61778b9fb4cac9af9a846f5847331f0a00000000000000000000000000000000000000000000000006192b3c4e63798c9fb5cac9b5a3907b65503e2d1b01000000000012283d52677d92a7bcd2e7d8c3ad98836e583c2b19050000000000000000000000000000000000000002080b110b07000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adc2d0d0cdb8a38d78634e38230e00182d42586d8290909090909090908d78634e38230e000000021528384758637989909090909090909090908978634e38230e0000000000182d42586d82909090909090909090909090909090908e8b8987847e78726b635b4d483c332a1c100200000000000000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000102335465358606060606060606060565144341a0a000000000000000e1e3747545a60606060606060606056514434210e001e33495e73898a8a8a8a8a8a8a8a7e68533d281300071c31465c71858a8a8a8a8a8a8a8a7f6a55402a15000000000215273852687d92abbccfbcab937e69533a2a17040000000000000000000000000000000000000000000000000b2035495a6d8298abbccfc2b09b85715d4b38201000000000000010253a4f657a8fa4c3d4e6dbc6b19c86715a4835200b00000000000000000000000000000000000009151d2026201c130800000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000e23394e63788ea3b8cde3d8c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d9e2ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297adbbbbbbbbb8a38d78634e38230e000e24394e63797b7b7b7b7b7b7b7b7b75614b36210c000000000a1a2a3a495b63797b7b7b7b7b7b7b7b7b7b7b79634e39240e00000000000e24394e63797b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a787674726f69635b564e493d352b1f180c000000000000000000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000061828353f434a4a4a4a4a4a4a4a4a413d34261600000000000000000019293741444a4a4a4a4a4a4a4a4a413d34261604001c3145596b73757575757575757568604e3a261100051a2e4356677175757575757575756a61503c281300000000091d3145566e8398aec9cab59f8b77624d37220d00000000000000000000000000000000000000000000000005182a3b4d62788b9fb4c9cab6a4917c66513f2f1c020000000000000c22374c61778ca5b7cadfdec9b5a48d78624d382212000000000000000000000000000000000009192731363c3530251811060000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000e23394e63788ea3b8cdd0d0c3ae99836e59442e190400000000000000051a2f455a6f849aafc4d0d0ccb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8297a5a5a5a5a5a5a38d78634e38230e000c21364a5b63666666666666666666615746321e0900000000000c1c2c3d495b636666666666666666666666635b4a36210c00000000000c21364a5b63666666666666666666666666666666656361585d5a544d493c38352c20190e0400000000000000000000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000a18232b2d3535353535353535352b292116080000000000000000000b19252c2f3535353535353535352b29211608000016293c4c595e6060606060606060534e42311e0b000013263949565c606060606060606055504333200d000000000b20364b6075899eb4c9c5b09b8670594834200b0000000000000000000000000000000000000000000000000b1f3447596c8197aabbcec4b19c8673604b352011000000000000000a1f34475972879db2c7dde5d2c2a8937e68534030190900000000000000000000000000000002152737444b514a43362e211a0e04000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000e23394e63788ea3b8bbbbbbbbae99836e59442e190400000000000000051a2f455a6f849aafbbbbbbbbb7a28d77624d38220d00000000000000000000000000000000000000000003182d42586d8290909090909090908d78634e38230e00071a2d3d4a4e5050505050505050504b46392816030000000000000f1f2c3d494e50505050505050505050504e4a3d2d1a070000000000071a2d3d4a4e505050505050505050505050505050504e4c463a453e38352c23211a0f05000000000000000000000000000000000000000000000000000003192e43586e8398adc3d8d8c3ad98836e58432e19000000000000000610161820202020202020202016140e0400000000000000000000000811181a20202020202020202016140e040000000d1e2e3c45494a4a4a4a4a4a4a4a3d3a3124130200000a1b2b3943464a4a4a4a4a4a4a4a403c332515040000000010253a50657a8fa8b9ccc9aa957f6a553b2b19050000000000000000000000000000000000000000000000031729394c62778a9fb4c8cbb7a6927d685443301c080000000000000004182a3a566c8196abc5d6e8dbc6b09b85715e4d3727150200000000000000000000000000000d1d314455606660544b3f352c1f180c0200000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000000000000000000000000000e23394e63788ea3a5a5a5a5a5a599836e59442e190400000000000000051a2f455a6f849aa5a5a5a5a5a5a28d77624d38220d000000000000000000000000000000000000000000000e24394e63797b7b7b7b7b7b7b7b7b75614b36210c00000f1f2d36393b3b3b3b3b3b3b3b3b3632281b0b00000000000000010f1f2c35383b3b3b3b3b3b3b3b3b3b3b39362d1f0f000000000000000f1f2d36393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b393633292f292321190e0c060000000000000000000000000000000000000000000000000009090909192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101e293133353535353535353528261e1306000000000d1b262e3135353535353535352a282015070000000001142636556a7f94aac6cfbcab907b65503b25100000000000000000000000000000000000000000000000000a1e3346576b8095a9bacdc5b29d8774604b36261401000000000000000010253b50657b90a7b8cce0ddc9b5a3917c665544311d13000000000000000000000000000e1d2f404b60737b72655d4e493d332a1d150a000000162b40556b8095aac0cacac6b09b86715b46311c0600000000000000000000000000000000000000000000000000000e23394e63798e9090909090909090836e59442e190400000000000000051a2f455a6f8490909090909090908d78624d38220d000000000000000000000000000000000000000000000c21364a5b63666666666666666666615746321e090000010f1a2124262626262626262626211e160b000000000000000000010f1a2123262626262626262626262624211a0f0100000000000000010f1a21242626262626262626262626262626262523211f171a140e0c06000000000000000000000000000000000000000000000000030d13151e1e1e1e1e2e43586e8398adc3d8d8c3ad98836e58432e19000000000000000000000000000000000000060c0e20202020202020201c1a130a0000000000000000000000000000000000000000000000000d161c1e202020202020202013110b020000000000000a131a1c202020202020202015130d040000000000081c3043546f8499afc4cab49f8b76614c36210c0000000000000000000000000000000000000000000000021628384c6176899eb3c7ccb8a7937e6955443118080000000000000000000b20354b6074899eb3c9dae4d2c1b19c8674604b41311c130800000000000000000004111e2b3b4c5e6b8091857a6e635b4c473a32281a0a0000162b40556b8095aab5b5b5b5b09b86715b46311c0600000000000000000000000000000000000000000000000000000c21364b61757b7b7b7b7b7b7b7b7b7a644e39240f0000000000000000000f24394f647a7b7b7b7b7b7b7b7b7b74604b36210b00000000000000000000000000000000000000000000071a2d3d4a4e5050505050505050504b463928160300000000070c0e1111111111111111110c0903000000000000000000000000060c0e11111111111111111111110e0c070000000000000000000000070c0e111111111111111111111111111111100e0c0a0400000000000000000000000000000000000000000000000000000000071520272a33333333333343586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000000000000e1920233535353535353535312e271b0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b6074899eb3c9c6b19c86715746331e0a0000000000000000000000000000000000000000000000091e3245566a7f94a7b9ccc6b39e8875614b37271500000000000000000000081d3144556d8298abbccfe3decab6a496816c5f4e41302518110a0300000000070c181f2e3c4859667c8d9f9b8f83796c61584b453828150200162b40556b80959f9f9f9f9f9f9b86715b46311c0600000000000000000000000000000000000000000000000000000a1e32465761666666666666666666645c4a36220d0000000000000000000d22364a5c64666666666666666666605645321e0900000000000000000000000000000000000000000000000f1f2d36393b3b3b3b3b3b3b3b3b3632281b0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031525323c3f48484848484848586e8398adc3d8d8c3ad98836e58432e19000000000000000000000000000000000e1e2c35384a4a4a4a4a4a4a4a4643392b1b030000000000000000000000000000000000000610161820202020202020202020202020202020202020201f1d1b16100b09020000000000000000000000000000000e23394e63788ea8b9ccc2ad97826d583929170300000000000000000000000000000000000000000000011426374b6075889db3c5cdb9a8957f6a574632190900000000000000000000011527374e64798c9fb5c7d7e5d3c2b19f927d685f4a43362e211e17161415171b222a333f4b5a6277889eabb0a1998b817769605645321d0900162b40556b808a8a8a8a8a8a8a8a85715b46311c06000000000000000000000000000000000000000000000000000003162939464b5050505050505050504e4a3e2d1b07000000000000000000071b2d3e4a4f5050505050505050504b45382816020000000000000000000000000000000000000000000000010f1a2124262626262626262626211e160b0000000000000000000000000000000000000000000006101618202020202020202020100e08000000000000000000000000000000000000020b1113202020202020202015130d0300000000000003090c1e2020202015130d0300070b1c2020202016140e050000000000000000000d2032434f545e5e5e5e5e5e5e5e6e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000000006192c3c494d5f606060606060605c564939211100000000000000000000000000000000000917232a2d35353535353535353535353535353535353535353432302b25201d150a040000000000000000000000000012273c51677c91a6c6d6bea9947f69543f2a140000000000000000000000000000000000000000000000081d314455687e93a6b8cbc7b49e8a76614c3928160000000000000000000000000921364a5c6d8298a9bacde2e0cebdb49f8c7d6b60544b3f3633292b292a2c2e373a474c5d6578869ca6b8bfb3aa9f96897f74604b36200b0013283d50626b7575757575757575716756422e19040000000000000000000000000000000000000000000000000000000b1b2932363b3b3b3b3b3b3b3b3b39362d2010000000000000000000000010202d36393b3b3b3b3b3b3b3b3b3632281a0a0000000000000000000000000000000000000000000000000000070c0e1111111111111111110c0903000000000000000000000000000000000000000000000917232a2d35353535353535353525221b100200000000000000000000000000000006141f262935353535353535352a28201507000000000b161e2133353535352a282015131c2031353535352c29221608000000000000000013273c4f616a7373737373737373738298adc3d8d8c3ad98836e58432e190000000000000000000000000000000c2035495a6375757575757575757167563f2e1c08000000000000000000000000000000061727353f424a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a494745413b3631271f170c000000000000000000000000152a40556a7f95aabfd1bba6917c66513c271100000000000000000000000000000000000000000000000b20354b6074879db2c4cebaa996816b5847331b0b000000000000000000000000071a2d3d4d62788b9fb4c2d3e3e2cebbaa9f928072655d524c4639403f40413e4b4f58616c7b889ca4b6c5cfc8bbb4a79e94806b56412b16000d213344505560606060606060605b564938261300000000000000000000000000000000000000000000000000000000000b161e2126262626262626262624221b1002000000000000000000000002101b2224262626262626262626211e160a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061727353f424a4a4a4a4a4a4a4a4a3a372e21100000000000000000000000000000021424313a3e4a4a4a4a4a4a4a4a3f3c3325150300000b1b283236494a4a4a4a403c3325253035464a4a4a4a413d3426160500000000000000152a3f546a7f8888888888888888888b9fb4c9ded8c3ad98836e58432e1900000000000000000000000000000417293a4d63788c8a8a8a8a8a8a8a85715d4b37230f00000000000000000000000000000010233545525860606060606060606060606060606060606060605e5c5a56504b453833291c140300000000000000000003192e43586e8398adc3d7c6a38e78634e39230e00000000000000000000000000000000000000000000091c2f4052677d92a5b6cac9b49f8b78624d3a2a1700000000000000000000000000000f2035485a6b8196a4b6c5d6e6d8c8bbb49e95857b6f67615758565455565a5c646c77818c9da6b6c2d3e3d8cebeb39e8876614c37210c00041526333d404a4a4a4a4a4a4a4a4642382b1b09000000000000000000000000000000000000000000000000000000000000030a0c1111111111111111110f0d07000000000000000000000000000000070d0f1111111111111111110b090200000000000000050b0d1e2020202020202020202016140e04000000000000000000000000000000000000060c0e1f2020202020202020202014120c020000001023354552586060606060606060604f4b3f2e1b0800000000000000000000000000102031424e53606060606060606055504333200d0003162839464b5e606060605550433336434a5c6060606056514434220e000000000000000b20364b6075859b9d9d9d9d9d9d9d9fa9bacde1d8c3ad98836e58432e1900000000000000000000000000000a1f3346586c8196ab9f9f9f9f9fa3907b65503d2c1a060000000000000000000000000000162a3f52636d75757575757575757575757575757575757575757472706b6560564c473a321e160b0000000000000000011527375c71869bb1c6cdbaa88b76604b36210b000000000000000000000000000000000000000000000f24384c5e71869cb1c3cfbcab97826d5948341c0c000000000000000000000000000005192b3c4c6176869ca7b8c8d8e6d8cebcafa39b8f847c76706d6b696a6c6f737a818a969fabb7c4d3e0e0d1c0b1a0927d675847331f0a0000071521282b3535353535353535312e261b0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d19202234353535353535353535352b28211608000000000000000000000000000000010f1a2123343535353535353535353529261f14060000162a3f52636d757575757575757575655d4b37220e0000000000000000000000000c1d2e3e4e606875757575757575756a61503c281300091e3246576173757575756a61503a43546071757575756b62513d291400000000000000091d3145566278899eb3b3b3b3b3b3b4bac7d7e9d8c3ad98836e58432e1900000000000000000000000000011426374c6176899eb4b5b5b5b5c2ae99846f5b4935210c0000000000000000000000000000182d42586d828a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a898785807b756b61584f4232281b0b00000000000000081d31445573889eb3c8c9b49f89745645321e09000000000000000000000000000000000000000000081b2e3f51667b90a4b5c9cab49f8c79634e3b2b19000000000000000000000000000000000e1e3346576378899eaabbcdd7e5e2ccc1b5b0a199928a8582807e7f8184888f969ea8b4bcc9d4e2dfd1c2b4a297826d5f4d3a2a1704000000040d131620202020202020201c191309000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2b3437494a4a4a4a4a4a4a4a4a4a403d3326160400000000000000000000000000000f1f2c36394a4a4a4a4a4a4a4a4a4a4a3e3b3224140200182d42586d828a8a8a8a8a8a8a8a8a7a654f3a2510000000000000000000000009192a3b4b5c687e8a8a8a8a8a8a8a8a7f6a553f2a15000c21364b6176888a8a8a8a7f6a58464a6072858a8a8a8a816b56412c160000000000000002152738495a677d919fb1c2c8c8c8c9cdd7e5edd8c3ad98836e58432e1900000000000000000000000000081d314455697f94a8b9cdcacacacab59f8c79634e3a2a170400000000000000000000000000182d42586d82979f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa79e9c9a969089807669604b4639281a0a0000000000000b20354b60758a9fb5cac8b39d88735e382816020000000000000000000000000000000000000000000e22374b5d70859ab0c2d0c0ae98836e5b49351d0d0000000000000000000000000000000003172939495a657b8c9fb4bac7d4e2dfd2c9bfb3aea99f9a9895949596999ea6abb4b9c6cfd9e7e1cfc0b4a49a8474604b41301c0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005192b3b484d5e60606060606060606060565144332212000000000000000000000000000a1b2c3d494e5f60606060606060606060534f42321f0c00182d42586d82979f9f9f9f9f9f9f8f7a654f3a251000000000000000000000011527374759647a8b9f9f9f9f9f9f9f947f6a553f2a1500091e324657697f94a69f9e8976614c55677c91a39f9f8a77624c37220d00000000000000000a1a2c3c4d5f6c8197a4b5c6d7dddee1e9e5e5d8c3ad98836e58432e19000000000000000000000000000b20354b6074879db2c6d6e9dfe3cfbcab97816c5847331f0a00000000000000000000000000182d42586d8297adb5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5c5b9b3b1afaba89e95897e6e6157463828180800000000000d22374d62778cabbccfc7b19c87725c47321d000000000000000000000000000000000000000000071a2d3d4f657a8fa2b4c8c7b3a28e7a644f3d2c1a0000000000000000000000000000000000000b1b2c3c4b5d687e929fa9b7c4d1dfe4ddd0c7c7bab4afadaba9aaabafb3b8c5c9cdd6e3e4d6ccbfb2a29b86766156453123130000000000000000040d131620202020202020201c1913090000000000000000000000000000000000000000000b0b0b0b0b0b0b0b0a0000000000000000000000000000000000000000000001080b0f12141614120d0b0600000000000000000000000000000b203448596273757575757575757575756b6251402f1d0d000000000000000000000003162839495b63747575757575757575757569604f3b261200182d42586d8297adb5b5b5b5b5a48f7a654f3a2510000000000000000000010f1d3144556177889da9bab5b5b5b5aa947f6a553f2a1500031628394b6075889db3a795806b586073869cb1a896806b5947341f0b0000000000000000000e1e30414b6075869ca8bacdd0d0d0d0d0d0d0c3ad98836e58432e19000000000000000000000000081b2e3e52677c91a5b7cae4f4ffecdac9b49f8a76614c38271502000000000000000000000000182d42586d8297adc2cacacacacacacacacacacacacacacad6ccc9c7c5c6b9b3a89e93827561564536251300000000000f24394f64798ea4c9dac5b09b86705b46311b0600000000000000000000000000000000000000000c21364a5b6f8499aec0d1c1af9a846f5c4a361f0f000000000000000000000000000000000000000e1e2f3f4e60687d8b9da6b4c1cad4e0e3dbd8cec9c5c2c0bebfc1c4c8cbd5dee1e2dbd0c6b9b4a19984766158473827150500000000000000071521282b3535353535353535312e261b0d00000000000000000000000000000000030d13152020202020202020200e0c0700000000000000000000000000000000000608141c2025282a2b29272320190e0a0300000000000000000000000d22374d6277898a8a8a8a8a8a8a8a8a8a806b5e4c3b2b1909000000000000000000010f1e32455763798a8a8a8a8a8a8a8a8a8a8a7e69533e291400182d42586d8297adc2cacacabaa48f7a654f3a25100000000000000000000f1f30414b6073849aa6b7c7d8cacabfaa947f6a553f2a1500000b1e324557697e93a6b49e8a7761677d92a4b49e8a77614c3b2a180500000000000000000000131e32455663798a9fb4bebbbbbbbbbbbbbbbbad98836e58432e190000000000000000000000000d22374b5c70859bb0c3d4e6fffff7e1cdbaa8947f6a5645311d09000000000000000000000000182d42586d8297adc2d7dfdfdfdfdfdfdfdfdfdfdfdfdfdfe8e0dedcdad6ccc6b9b3a0988474605443301c0b0000000010253a50657a8fa5bacfc4af9a846f5a452f1a050000000000000000000000000000000000000006192c3c4e63798ea1b3c7c9b5a3907b65503e2d1b010000000000000000000000000000000000000000112131424e5f677a889ba3b2b7c3ccd6dee1e2dfdad7d5d3d4d6d9dde0e5dedcd0c7bfb3a89e9283746158473a2a1a0a00000000000000041526333d404a4a4a4a4a4a4a4a4642382b1b090000000000000000000000000000071520282a35353535353535353524211a0f0100000000000000000000000000040f1a212630353a3d3f403e3c38352b211e160b000000000000000000000b20344859667c8d9f9f9f9f9f9f9f9f9f8d7c6659483727150100000000000000000f1f31414b6075869ca89f9f9f9f9f9fa599836e604f3b261200182d42586d8297adc2d7dfcfbaa48f7a654f3a251000000000000000000b1b2d3d4d5f6b8096a2b4c4d4e5dfd4bfaa947f6a553f2a150000031628394b6075889db2a896806b74879db2a895806b5947341d0d000000000000000000000003162838495b687d92a0a5a5a5a5a5a5a5a5a5a598836e58432e19000000000000000000000005192b3c4f647a8fa3b4c8e1f1f1eff1e9d7c6b39d8874604b362011000000000000000000000000182d42586d8297adc2d7ecf4e6dad2d0cbcbcbcbcbcbcbcbcbccd0d4dee0e1d6ccbeb2a3988272604a3a29170400000010263b50657b90a5bad0c3ae98836e59432e1904000000000000000000000000000000000000000c2035495a6d8298adbfd0c2b09b85705d4b37201000000000000000000000000000000000000000000003142431414d5c647785929da5b3b8c5c9cdd6dadddfe3e9e1dedddad6d3cac7bfb3aea1998a7d6e6056473a2a1c0c00000000000000000d213344505560606060606060605b564938261300000000000000000000000000031525333c404a4a4a4a4a4a4a4a4a39362d1f0f0000000000000000000000000c181f2c3636434b4f52545553514d483c3632291c1308000000000000000005192b3b4c5e6b8096a3b4c5b5b5b5bcab9e8978625544311d12000000000000000a1a2c3d4d5f6d8297a4b6b5b5b5b5bbaa9d8776614c42321f0c00182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000818293a4a5b677d919eb0c0d1e2f2e9d4bfaa947f6a553f2a150000000a1e324556687e93a5b49f8a777e93a5b49e8a77614c3a2a18000000000000000000000000000a1a2c3d4e606d82909090909090909090909090826e58432e1900000000000000000000000b2035485a6e8398aec1d1e4e3dcdadce3dfcbb7a6927d67523f2e1c080000000000000000000000182d42586d8297adc2d7ece6d6c8bebab6b6b6b6b6b6b6b6b6b7bbbfc9ccd6e3e1cfc1b2a0937e695846331f0a00000011263c51667b91a6bbd0c2ac97826d57422d180200000000000000000000000000000000000005182a3b4d62788b9fb4cacab6a4917c66513f2f1c0200000000000000000000000000000000000000000000061423303e4a5962737d87949ea7aeb4b9c6c4c8cacfd7cdc9c8c5c1c2b6b1aaa1998e837868604b4538291c0c00000000000000000013283d50626b7575757575757575716756422e19000000000000000000000000000d203343505560606060606060605f4e4a3d2d1808000000000000000000010f1c2a343d494e54606467696b6967625a544b46393025180a00000000000000000d1d2f404b6074859ba7b9cccadac9b8a79b8473604b402f1d0d000000000003162838495b677d929fb1c2d3cad0bfb49f8b7a6458463324140200182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000132536465863798a9eb4bccddeeeffe9d4bfaa947f6a553f2a15000000021628384b6074879db2a99781879db2a895806b5847331c0c00000000000000000000000000000f1f31414b61757b7b7b7b7b7b7b7b7b7b7b7b7a644e39240f00000000000000000000031729394d62788b9fb4cadfded1c8c5c8d1ded4c4b19b86715d4b37230e0000000000000000000000182d42586d8297adc2d7ecdac8b8aba5a0a0a0a0a0a0a0a0a0a2a5aab3b9c5d0dddfcfbeb39e8876614c36210f00000012273c51677c91a6bcd1c1ab96816c56412c17010000000000000000000000000000000000000b1f3447596c8197aabbcec3b19c8673604a3520110000000000000000000000000000000000000000000000000513202d3b48546067757f8992989ea8acafb2b4bcc6bab4b2b0aca7a49c958d837a6f625a4e4232281a0c00000000000000000000162b40556b808a8a8a8a8a8a8a8a85715b46311c0000000000000000000000000013283c50616a757575757575757575635b4a362614010000000000000003111f2d3a474c5b636d747a7d7f807e7c78716a61574a4336281b0b0000000000000000121d3144556278899eb3bdcddfd5c5b4a296806b5e4c3c2b1909000000010f1e32455663798a9eb4becee0d4c3b3a1947f695c4a3a2917060000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000e1c3043546176869ca8b9cddbebfcffe9d4bfaa947f6a553f2a15000000000a1d314556687d93a5b19f979da6b49e8976614c3a2a1800000000000000000000000000000001131e32465761666666666666666666666666645c4a36210d000000000000000000000a1e3346576b8096aabbcee2d1c0b4b0b4c0d1dec9b5a38f7b65503d2c1a0600000000000000000000182d42586d8297adc2d7ecd2beab9a908b8b8b8b8b8b8b8b8b8d90949ea7b3bfd0e1e0ccb8a795806b553d2d1a07000011273c51667c91a6bbd1c1ac97816c57422c170200000000000000000000000000000000000417293a4c62778a9fb4c8cbb7a5927d685443301c070000000000000000000000000000000000000000000000000002101d2b36434b566069767d838990969a9d9faba1a89f9d9b96928e877f786f645c4d483c311e160a0000000000000000000000162b40556b80959f9f9f9f9f9f9b86715b46311c00000000000000000000000000152a40556a7f8a8a8a8a8a8a8a8a8b79635443301c0d0000000000000011212e3d4a59616d7982888f92949593918d867f756860544539291b0b0000000000000002152737485a667c919fb0c1d2e3d1c0b59f8d7c665a483727150100000f1f30414b6075869ca8b9cddcd8c8b7a599836f614f3e2e1c0c000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000e1e2f404a60728399a4b6c6d7e9f9ffffe9d4bfaa947f6a553f2a1500000000021527384b6074879db2b1acb2b7a795806b5847331c0c0000000000000000000000000000000003162939464b5050505050505050505050504e4a3d2d1a07000000000000000000011426364b6176899eb3c8d9d1c1b4a29aa2b4c8dcd2c1ae99836e5b4935210c00000000000000000000182d42586d8297adc2d7e5d0baa5907c767676767676767676777b7f8999a1b3c3d3e6d5c5b29d87725c4a36210d000011263b51667b90a6bbd0c2ad98836d58432e180300000000000000000000000000000000000a1f3346586b8095a9bacdc5b29d8774604b362513000000000000000000000000000000000000000000000000000000000d18263038454b5861676e757b8185888a8b8c8b898885817d78726a635b4f4a3e352b1e1303000000000000000000000000162b40556b8095aab5b5b5b5b09b86715b46311c000000000000000000000000000b20364b6074869cab9f9f9f9faa9b8573604b3c2b190500000000000e1e2e3f4b5b6377828c979ea6a7a9aaa8a6a39b94887e72605746392918080000000000000009192b3c4d5e6c8196a3b5c6d6e3cfbcab9e8978625544311d12000a1a2c3d4d5f6d8197a4b5c6d7e2cebbaa9d8776614c4332201000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000a1a2b3c4c5e6a7f94a1b3c3d3e4f4ffffffe9d4bfaa947f6a553f2a1500000000000a1d314455687d92a4b6c1c5b39e8976614c3a2a170000000000000000000000000000000000000b1b2932363b3b3b3b3b3b3b3b3b3b3b3b39362d1f0f00000000000000000000081c304354697e93a7b9ccddc9b5a39a859ab0c0d1dfcab59f8c78634e3a2a1704000000000000000000182d42586d8297adc2d7e4cfbaa48f7a65616161616161616162666a778399a4b6cadedfcab7a58e7a644e39240f000010253b50657a90a5bacfc4ae99846f59442f1a0400000000000000000000000000000000021628384c6176899eb3c7ccb8a7937e695544311808000000000000000000000000000000000000000000000000000000000008141c28323a464c525660666c6f73757676757473706c68635b554e493d362d20190e0000000000000000000000000000162b40556b8095aac0cacac6b09b86715b46311c00000000000000000000000000091d314556657a8d9fb5c4b5b5b5a3937e695a483420120000000009192b3c4b5d657987979faab3b8c4bec0bec1b5b1a69d93827561574636251300000000000000000e1e30404b6074859ba8b9cce1dac9b8a79b8473604b402f1e0e162838495b677d929fb1c2d2e2d0bfb49f8c7b6558473325140200000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000003162838495a667c8d9fb4bfd0e1f1ffffffffe9d4bfaa947f6a553f2a150000000000011527374b6073879cb2c2b9a795806a5847331c0c000000000000000000000000000000000000000b161e2126262626262626262626262624211a0f01000000000000000000000b20354b6073879db2c5d6d5c5b09b85798ea2b4c8dccfbcab97816c5847331f09000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f4b4b4b4b4b4b4b4d50596175869cb2c7dce6d4c3a9947e69543f291400000f253a4f647a8fa4b9cfc5af9a85705a45301b0500000000000000000000000000000000091e3245566a7f94a7b9ccc6b39e8875604b37271500000000000000000000000000000000000000000000000000000000000000010a161e29333638454b51575a5d57606160565d5b57524e493d38352c221b1006000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c00000000000000000000000000021527384b5d6c8197a6b7cbd1c1b49e8a78624d40301c0c000001142637495a657b8a9da5b4bbc8cbd5d4d2d3d2c9c4b8b3a0988575615443301c0c0000000000000000121d3145566378899eb3bdcee0d5c5b4a296806b5e4c3c2b191e32455663798a9eb4bdcee0d4c4b3a1947f6a5d4b3a2a17060000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000002101e3245566278899eabbccfddedf4f7feffffe9d4bfaa947f6a553f2a15000000000000091d314455677d92a4b6b39e8976614c3a2917000000000000000000000000000000000000000000030a0c1111111111111111111111110f0d070000000000000000000000071b2d3e51667c91a5b6cae0ccb8a7927d70859aafc4d5dac9b49f8a76614c372715020000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a363636363636383b4757667b90a6c4d5e7d6c0ab96816b56412c1600000e23394e63788ea3c7d7c6b19b86715c46311c07000000000000000000000000000000011426374b6075889db3c5cdb9a8957f6a5745321909000000000000000000000000000000000000000000000000000000000000000000020b171f212832363b414539454b4c4b453846413d39352c23211a0f070000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c00000000000000000000000000000a1a2e3f4c6176889db3bfcfccb9a899836e5f4d3a29170400081d3144556278899ea8b7c3cecfcac4c0bdc1c6cad3cbbeb2a3998372604a3b2a18040000000000000002152738495a677d919fb1c2d2e3d1c0b59f8d7c665a48372730414b6075869ca8b9cddbd9c9b7a6998372604a3f2e1c0c000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000102031424b6075859ba7b8c9d9eae2dfe2eaf6ffe9d4bfaa947f6a553f2a15000000000000011426374b6073869ca5a7957f6a5846331c0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c70859ab0c3d3dac9b39e8975677c91a6b8cbe0cdbaa8947f6a5544311d080000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a252121212121222a394c61768ca6b8cbe0d8c3ad98836e58432e1900000c21364c61768ba9bacdc7b29d87725d48321d00000000000000000000000000000000081d314455687e93a6b8cbc7b49e8976614c392816000000000000000000000000000000000000000000000000000000000000000000000000040a0c151d20262c3028323637363127302c2823211a0f0c0600000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c000000000000000000000000000000101f334658677c91a1b3c6d6c6b3a1917c675846331f10021527374b6073859ba7b8c6d4c9bcb5afaaa8acb1b6c2cecfc1b3a1947f6a5947341f0900000000000000000a1a2c3c4d5f6c8197a4b5c6d6e3cfbcab9e8978625544313d4d5f6c8197a4b5c6d6e3cfbcab9d887761544330211000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000d1d2e3e4e606d8298a3b5c5d5e6d8cecaced8e6f6e9d4bfaa947f6a553f2a1500000000000000091c304354677d9090908976614c3a291700000000000000000000050b0d12121212120c0a04000000000000000000000000000000000000000000000000000000000005182b3b4f647a8ea2b4c8e3cfbcab96816b6074889db3c8d9d7c6b29d8874604b3620110000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100c0c0c0c0d1f33475873889db3c8ddd9c4ae99846f59442f1a00000a1f33465874899fb4c9c8b39e89735e3b2a18040000000000000000000000000000001325364b6074879db2c4cebaa996816b5847331b0a00000000000000000000000000000000000000000000000000000000000000000000000000000002090b11171a161e2121201d151b17130e0c0600000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0000000000000000000000000000000417293a4d5f6e8399a8b9ccd0bfb39d8876614c3f2e1a0a1d314455687d92a3b5c5d4c4b7ab9f9a9593969ca4b4bbc8d0bfb49e8977614c3726140100000000000000000e1e30414b6074869ca8b9cde1dac9b8a79b8574604b40495b677d929fb1c2d2e2d0c0b49f8d7b6559473625130200000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251009192a3b4b5c687e93a0b2c1d2e3d6c8bbb4bbc8d8eae9d4bfaa947f6a553f2a1500000000000000011426364a60727b7b7b79645746331b0b0000000000000000000d1920222727272727211f170c000000000000000000000000000000000000000000000000000000000b203448596d8298adc0d1dfcab59f8c7863556b8095aabbcedfcbb7a6927d67523f2e1c0800000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251d1d1d1d192028374b61768b9fb5cadfd8c2ad98826d58432e1800000417293a5d72879db2c7cab49f8a755947341f0b0000000000000000000000000000071c304354677d92a5b6cac9b49f8b77624d3a2a170000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020003090b0c0b090200020000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c000000000000000000000000000000000b1b30404d62788a9eb4c1d1cbb7a697816c5d4b38271520364b6074889db2c1d2c7b7a69d8d84807d8186959faabbceccb9a896816c5544311d08000000000000000000131e32455663798a9eb4becee0d5c5b4a396806b5e4c5663798a9eb4bdcee0d5c4b4a2957f6a5d4b3a2a18080000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25101527374759647a8b9fb4becedfd6c5b8aa9faabbcee2e9d4bfaa947f6a553f2a150000000000000000081c30435460656666645c4a3929170000000000000000000d1d2b34383c3c3c3c3c3733291c0c0000000000000000000000000000000000000000000000000000031628394d62778b9fb4c9dfd4c4af9a846f5b4d62788b9fb4cadfd4c4b19b86715d4b37230e00000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a32323232322b35384555657b90abbccfe3d7c7ab95806b56402b160000001a30455a6f859aafc4cebbaa8c77614c37220c00000000000000000000000000000b20354a6073869cb1c3cfbcab97826d5948341c0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c00000000000000000000000000000000001220344859697e93a3b4c8d4c4b59f8d7b655645311d263b50657b90a6b7cbcdbaa99d887b6f6b686c747f8c9fb4c2d3c6b39e8874604b35200b00000000000000000002162838495b677d929fb1c2d3e3d1c1b09e917c665a6074859ba8b9cddbd9c9b8a69a8472604b3f2e1c0c000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25101d3144556277889daabbcedcdac9b8a79e8a9fb4cadfe9d4bfaa947f6a553f2a15000000000000000000132536434a5050504e4a3d2d1b0b000000000000000005192b3c484d52525252524c473a29170400000000000000000000000000000000000000000000000000091e3245576b8095aabbcedfcbb7a6917c6651485a6e8399aec3d3ddc9b5a38f7a65503c2c1906000000000000182d42586d8297adc2d7e4cfbaa48f7a654f4848484848483c484d566073859bb0c9dae1cdbaa9917c66513c2711000002172c41576c8196acc1d9c8a48f7a654f3a251000000000000000000000000000081b2e3f51667b90a4b5c9cab49f8c78634e3b2b18000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0d131618191a191716120d0b0500000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c000000000000000000000000000000000005192b3b4b6073859baabbcecfbcab9c8674604b3d2c2c42576c8197acc4d4c9b49f8b79655d555355606a7f94a4b6c9ccb8a78f7a65503a2510000000000000000000000a1a2c3d4d5f6d8297a4b6c7d7dfcdbcb39e8978626c8197a3b5c6d6e3cfbcab9e887762544330211100000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251f30414b6073849aa6b7c8d8e3cfbcab9e898095aac0d5e9d4bfaa947f6a553f2a1500000000000000000008182530353b3b3b39362d1f0f0000000000000000000b2034485a626767676767615847331f11000000000000000000000000000000000000000000000000001325364b6075899eb3c8d8d8c8b29d8774604b3c50667b90a5b6cadfd2c1ae99836e5b4935210c000000000000182d42586d8297adc2d7e4cfbaa48f7a655d5d5d5d5d5d5d5d5a6267748197a3b5c9e7d8c8b49f8a76614c36210c00000014293e53697e93a8c9dabda8927d68533d2813000000000000000000000000000e22374b5d70859ab0c2d0c0ae98836e5b49351d0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e192023282b2d2e2f2e2c2b27221f180d0b0500000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0000000000000000000000000000000000000d1c30435463798b9fb4c3d3c9b6a4957f6a5b493628385c71869cb1c6d7c7aa957f6a5b4c3f37444b6074869cb1c6d5c5aa947f6a553f2a1500000000000000000000000f1f30414b6075869ca9bacde1e0ccb8a79b85757d919fb1c2d2e3d1c0b49f8d7b6559483626140300000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a252d3d4d5f6c8196a2b4c4d4e1d0bfb59f8d7c7d92a7bdd2e7d4bfaa947f6a553f2a150000000000000000000008131c2026262624211a0f010000000000000000000d22384d62787d7c7c7c7c76614c3f2e19090000000000000000000000000000000000000000000000071c304354687e93a7b8cce2cebbaa957f6a5544354a6073879cb2c7d7dfcab49f8c78634d3a2917040000000000182d42586d8297adc2d7e4cfbaa48f7b72727272727272727274777c86979fb1c1d2e2cebbaa98826d5846331f0a00000010253b50657a90abbccfc0ab95806b56362513000000000000000000000000071a2d3d4f657a8fa2b4c8c7b3a28e7a644f3d2c1a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f1a21232b35383d404244454342403c37342a2220180d060000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c000000000000000000000000000000000000011426364a5b6b8095a4b6cad3c2b49f8b7963544332455673899eb3c8cdbaa98e79634e3d2f273144556b8096abc0d5c1ac97816c57422c17000000000000000000000001131e32455763798a9fb4becfe0d6c5b4a398838a9eb4bdcee0d5c5b4a295806b5d4c3b2a18080000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a293a4a5b677d919eb0c0d1e2d3c3b3a1957f6a7d92a7bdd2e7d4bfaa947f6a553f2a15000000000000000000000000070b1011110f0d0700000000000000000000000c21374c61768991919191816d5d4b37271502000000000000000000000000000000000000000000000b20354a6073879cb1c5d5dfcab49f8b77624c37304354697f94a9bacde1cfbcab96816c5847331f090000000000182d42586d8297adc2d7ecddc8b39d88878787878787878787898d919ca4b1bdcee0d0bfb49f8b78634d3a2917040000000c21374c61778b9fb5cac4af99846f5443301c0700000000000000000000000c21364a5b6f8499aec0d1c1af9a846f5c4a361f0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101b222c35393c494d525657595a585755524c483b37342b20190e00000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0000000000000000000000000000000000000008182d3d4b6074869cb2bececebaa99a8472604a3b4b60758ba7b8ccc9b49f8975604b352015273752677c92a7bcd1c3ae99846e59442f19000000000000000000000000031628394a5b687e92a0b2c2d3e3d1c1b2a0989ea8b9ccdbdac9b8a79a8473604b3f2f1d0d000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a36465863798a9eb4bdcdded7c6b6a5998372687d92a7bdd2e7d4bfaa947f6a553f2a15000000000000000000000000000000000000000000000000000000000000000a1f3347586b8096a9a79f8d7b655544311d0e000000000000000000000000000000000000000000071a2d3d51667b90a4b6cae3d3c2ae98836e59483425364c61778a9fb4c9ded9c9b49e8a76614c3727150200000000182d42586d8297adc2d7ece0cbb7a69d9d9d9d9d9d9d9d9d9d9ea8a6b1b6c2ced6ccbfb3a195806a5b49351b0b000000000a1f33475871879cb1c6c8b39e8974604a35200b0000000000000000000006192c3c4e63798ea1b3c7c9b5a3907b65503e2d1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151d2e373d494e575a62686b6d6e6f6e6c6b676259564d483b352b1e13000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c00000000000000000000000000000000000000000f1e324556657b909fb1c5d5c7b4a2937e6859484b60758a9fb4cacab49f8a76614b3621192a3b53687d93a8bdd2c3ae98836e59432e19000000000000000000000000000a1b2d3d4e606d8298a4b6c7d7dfcfbeb2adb4b9c6d6e3cfbcab9e897862554431211100000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a43546176879ca8b9cddbe1cdbaa89c877661687d92a7bdd2e7d4bfaa947f6a553f2a150000000001080b101010101010100f0d0700000000000000000000000000000417293a4c62778a9fb4ab9c8674604b3c2c190600000000000000000000000000000000000000000c21364a5b6f849aafc2d3decab6a4907b65503b2b1f3347586d8298adc1d2e1cdb9a8947f6a5544311d0800000000182d42586d8297adc2d7ece7d5c4b7b3b2b2b2b2b2b2b2b2b2b3b9c6c7cad3d3c5b9b3a1998372604b3c2c19000000000004172a3a576d8297acc2ccb8a78d78634e38230e000000000000000000000c2035495a6d8298adbfd0c2b09b85705d4b37201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1a28323f4b4f5b636c72787d808283848381807c77726b62594d483c301c130800000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0000000000000000000000000000000000000000021628384b5d6d8297a6b8cbd1c0b39e8977624c445573889db3c8cfbcab8f7a644f41322c3748596c8297acc1d6c1ab96816c56412c1700000000000000000000000000000f1f31424b6175869ca9bacde1dccfc6c2c9ccd6e3d1c1b59f8d7c6659483726140300000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f404a60728399a5b6c6d7decdbdb49f8a796358687d92a7bdd2e7d4bfaa947f6a553f2a1500000009141d202525252525252524221b1002000000000000000000000000000c1f3447596c8196aab6a4947f6a5a493520130000000000000000000000000000000000000005182a3b4e63798ea2b4c8e0d7c6b19c86725d4b371d172a3a4f647a8fa3b5c9ded7c6b29d8874604b36201100000000182d42586d8297adc2d7ecf2e2d5cbc8c7c7c7c7c7c7c7c7c7c9ccd6dcded3c3b6a79e938374605443301e0e00000000000013283d52687d92a7c2d2c5a7927d675237271501000000000000000005182a3b4d62788b9fb4cacab6a4917c66513f2e1c02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2b38454b5d646f7981888d929597999a989795918c8780776d625a4d4130251808000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0000000000000000000000000000000000000000000a1a2f3f4c6176889eb3bfd0ccb9a798836e5e4c5b70859bb0c5d9c9ae98836e5f4b463d49556277899eb3c9d3c2a9937e69543e2914000000000000000000000000000001131e324657647a8b9fb4becfe1e1dad8dee1e8d6c5b4a396806b5e4c3b2b19090000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f4c5e6a7f95a1b3c3d3e2d1c0b09f927d675b52687d92a7bdd2e7d4bfaa947f6a553f2a15000009192631353a3a3a3a3a3a3a39362d20100000000000000000000000000005182a3b4d62788b9fb4b49f8b78634d41301b0b0000000000000000000000000000000000000b1f3447596d8297adc0d0e1cdbaa8937e69543f2e1c0c22374b5c71869bb1c5d6dfcbb7a6927d67523f2e1c08000000182d42586d8297adc2d7ecf9ece1d9d7d4d4d4d4d4d4d6d9dcdee1e8f1dfcab6a59c897e6e605645362614000000000000000d22384d62788da4b5c9c2ad97826d5544311d0800000000000000000b1f3447596c8197aabbcec3b19c8673604a352011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2b3c4856606b7a848c979da5a7abacaeafadacaaa7a49c958b8278675f4a43362513000000000000162b40556b8095aac0d5dbc6b09b86715b46311c00000000000000000000000000000000000306080900111f334758677d92a1b3c6d6c5b2a0917c6657556a8095aac1d1c6b2a0927d6c6157595b63738399a7b9cccab6a48d78634e38230e000000000000000000000000000000031629394a5c687e93a0b2c3d3e6efedf3f5e0ccb8a79b8574604b402f1d0d000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f5a667c8d9fb4bfd0e1d4c4b4a296816c5f4d52687d92a7bdd2e7d4bfaa947f6a553f2a150001142637444b4f4f4f4f4f4f4f4e4a3e2d1b07000000000000000000000000000d2034485a6d8297aabaa999846f5f4d3a29170400000000000000000000000000000000021628384c62778a9fb4c9dfdec9b49f8a76614c362111081b2e3e53687d93a7b9cce0d4c4b09b85715d4b37230e000000182d42586d8297adc2d7ececdbcec5c1bfbfbfbfbfbfc0c4c9ccd6e3ecdcc7b29c877768604b4538281808000000000000000b2035485a71869cb1c6c8b39e8974604b35200b000000000000000417293a4c62778a9fb4c8cbb7a5927d685443301c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1c2b3b485a6274808c999fabb2b7c3c0c2c3c4c3c1c0c2b6b1aa9f98897d6c605443301c140000000000162b40556b8095aac0d5dbc6b09b86715b46311c00000000000000000000000000040a0c12191b1e1f1d1b172a3a4d5f6f8499a8bacdcfbeb29d8775614e64798ea3b4c8cfbeb59f8d8176716f72798599a1b3c5d3c3b19c87725b4935210c000000000000000000000000000000000b1b2d3e4e606e8298a5b6cadff3fff8e5d2c2b39e897862554431221200000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a65566278899eabbccfddd8c8b7a69a8474604b4152687d92a7bdd2e7d4bfaa947f6a553f2a1500081d3144556065656565656565645c4a36220d0000000000000000000000000005192b3c4d63788b9fb4b3a1917d675846331f1000000000000000000000000000000000091e3245566a8095a9bacde2d1c1ac97826d5846331f0a001021364b6175899eb3c9deddc9b5a38f7a65503c2c19060000182d42586d8297adc2d7ece1cebdb1acaaaaaaaaaaaaabafb3b9c5cfdadfcab6a5937e685d4b37281a0a000000000000000005192b3c566b8095abc4ccb8a7907a65503b2510000000000000000a1f3346586b8095a9bacdc5b29d8774604b36251300000000000000000000000000000000000000000000000000000000000000000000000000000000000004182a3a4859627886969fabb5bcc9cbd4d5d7d8d9d8d6d5d3cac8bbb4a89e928172604a42311d0d00000000162b40556b8095aac0d5dbc6b09b86715b46311c0000000000000000000000050c171f21272e31333432302b2530414d62788a9fb4c1d2cbb7a696816c5c5c70859bb0becfcfbcab9f968b8684888d9ba3b3bfcfc9b6a5937e69543d2c1a0600000000000000000000000000000000000f2031424c6176879db2c7dcf2fff3dec9b5a4917c665a483727150400000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a656075859ba7b8c9d9e2cebbaa9d88776255443d52687d92a7bdd2e7d4bfaa947f6a553f2a15000b20354b60737a7a7a7a7a7a7a7a644e39240f00000000000000000000000000000d2135495b6e8398abbcb39d8876614c3e2e19090000000000000000000000000000000b21364b6075889eb3c7d7ddc8b4a38e79644f3a29170400091e3246576c8196acc0d1e3d2c1ae99836e5a4935200c0000182d42586d8297adc2d7ecd9c5b19f97949494949494969a9ea7b5bcc9dad3c3b49f8d7b655544311d080000000000000000000f253a4f647a8fa6b7cbc5ac96816c573e2d1b070000000000021628384c6176899eb3c7ccb8a7937e695544311808000000000000000000000000000000000000000000000000000000000000000000000000000000000000091f3447596277879ca4b4bcc9cfdadfdfdcd9d6d4d7dadee1ded8cec6b9b39f96806b604e3b2a1805000000162b40556b8095aac0d5dbc6b09b86715b46311c000000000000000000000d18202933363d434648494745413a3535485a697f94a3b5c8d4c4b49f8c7a6455657b8fa0b2c1d2c9bcb5aa9f9c999da5b0b5c1cfcfbcab9d8774604b36200f000000000000000000000000000000000000011426364859697e93a9bed3e8fef1dbc6b19c8671604f3d2d1a0a0000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a656d8298a3b5c5d6e0cfbeb49f8b7b645948373d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768b8f8f8f8f8f8f86715c47311c000000000000000000000000000006192c3c4e63798c9fb5b7a697816c5c4b3726140100000000000000000000000000091c2f4053687d92a6b8cbcad5c5b09b85705c4a361b0b0000031628394e63798ea2b4c8cacacab49f8c78634d3a29170400182d42586d8297adc2d7ecd7c1ac97817f7f7f7f7f7f818489979fabbccfe3cfbcab9c8674604b36200c0000000000000000000b20354b6074889db3c8c7b29d87725c4a36220d0000000000091e3245566a7f94a8b9bbc6b39e8875604b37271500000000000000000000000000000000000000000000000000000000000000000000000000000000000009192f404c6177869ca5b5c2cfd9e2d9cfcac6c3c0bfc2c5c9ccd6e1e2d6ccbdb09e937e695948341f0c000000162b40556b8095aac0d5dbc6b09b86715b46311c000000000000000001141d2b343a464c52585b5d5e5c5a564f4a433c4b6073859baabbcecfbcab9c8673605d6d8298a3b5c2cfcfc8bbb4b1aeb2b7c3c9d1cebdb59f8d7c665645311d090000000000000000000000000000000000000b1c3043546277899eb3c8def3fff3dec9b5a4937e695b4a3828160200000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a697e93a0b2c1d2e3d2c2b2a0937e695d4b3b2a3d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1a4a4a4a49c86715c47311c0000000000000000000000000000122232434f5f6e8499aec4b49f8c7a645544311d0b000000000000000000000000000e23384c5e71869cb1c5b5b5b5b8a7927d67523e2d1b000000000b2136495b70859aafc4b5b5b5bcab96816c5847331f0a00182d42586d8297adc2d7e4cfbaa48f7a6a6a6a6a6a6a6b6f76818d9fb5c1d1d9c9b6a4937e68533a2a18040000000000000000081c3043546b8096abc1cbb7a58e79644f39241000000000000b21364b6075889ea5a5a5a5a8957f6a57453219090000000000000000000000000000000000000000000000000000000000000000000000000000000000011527374c5e6e8298a4b6c3d2e3d9cec9bcb4b1aeabaaacafb3b9c6cdd7e4e1cdbcb39e8977624c3a2917040000162b40556b8095aac0d5dbc6b09b86715b46311c0000000000000009151d313b484c5861676e70737472706b6460544a4455647a8c9fb4c3d4c9b5a4947f6a5a6075859ba4b2bfcad3cecac6c4c7cbd4cfc7bab49f947f6a5e4c3827150200000000000000000000000000000000000b1b2d3e4b6072849aa7b8cce0f5fff8e5d2c2b49f8b79635645321e1200000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a7b8b9fb4becfdfd6c5b5a398826d604f3f2e283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6babab19c86715c47311c00000000000000000000000000091c2f404f61697d889db3c8bcab9b8673604b3929160300000000000000000000000010263b50657b90a49f9f9f9f9f9f9e8975604b36211000000000061a2c3d52677c91a69f9f9f9f9f9f9e8a76614c37210c00182d42586d8297adc2d7e4cfbaa48f7a6555555555555657616c7f94a3b4c8ddd3c2af9a85705847331f0a0000000000000000011426364e63798ea3b5c9c3aa95806b553e2d1b070000000013293e53687e909090909090908a76614c392816000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d314455667b90a0b2c2d3e1d6c8bbb4ab9f9c999694979a9ea8b4b9c6d4e2e1ccb9a897826d5847331f0a0000162b40556b8095aac0d5dbc6b09b86715b46311c00000000000009192731424e59626c767d838688898785807a736760544a5c6b8096a5b7cad2c2b49f8b78635662778699a1b1b6c2c8ccd5cfd2c9c6beb2a99f92816c6150402f1a0a0000000000000000000000000000000000031629394a5c6a7f94a2b4c5d5e8eceaf2f0e1cdbaa99c8674604b402f1d0d000000000000000000000000000000182d42586d8297adc2d7e6d1bca6917c889daabbcedcd9c9b8a79b8575604b423220283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c000000000000000000000000000f23384c5e697f919da6b8cbc9b5a3947e695746321e0a0000000000000000000000001a2f445a6f838a8a8a8a8a8a8a8a8a806b5645321e0900000000000f20364b6074888a8a8a8a8a8a8a8a8a7f69543f2a1400182d42586d8297adc2d7e4cfbaa48f7a654f3f3f3f3f39464c6073859bb0c5dbdfcab49f8b77614c37220c0000000000000000000821364a5b71869bb1c5c6b19c86715c4a36220e000000000f24394f647a7b7b7b7b7b7b7b7a645847331b0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b6074879db2becfe0d6c5b9aa9f968b8784817f828589959ea8b7c4d4e7d6c6b49f8b76614c37210c0000162b40556b8095aac0d5dbc6b09b86715b46311c000000000001152737444b606877818b92989b9d9e9c9a968f877d72635a4b6075879db2becfcdbaa99a846f5f59627583919ca4adb3b8c5b9c2b5b1aaa0988b7e6c6251433322120000000000000000000000000000000000000e1e324657647a8b9fb4c0d1e3dfd7d5dddfe7d7c7b5a496816c5e4c3b2a18080000000000000000000000000000182d42586d8297adc2d7ecddc8b39d889da6b7c8d8e3cfbcab9e8978625645322414283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c000000000000000000000000071a2d3d50667c8d9fb3b8c4d5d2c2b39e8975614b36210c000000000000000000000000182c4154656f7575757575757575756b6251382816020000000000081d314455607375757575757575757569614f3c271200182d42586d8297adc2d7e4cfbaa48f7a654f3a2a2a2a29334354697f94a9bed4e3cfbcab8f7a644f3a250f000000000000000000071a2d3d53697e93a7b9c9b6a48e79644f3c2b19050000000d22364a5c6466666666666666645c4a3a2a170000000000000000000000000000000000000000000000000000000000000000000000000000000000000316283951667b90a5b6cadcd9c8b9a79e8c8178716e6b6a6d7076808a9da6b7c9dae2cebbaa927d67523d28120000162b40556b8095aac0d5dbc6b09b86715b46311c00000000000e1d314455606c7e8a979faaadb0b2b3b1afaba59d928578655d57667b90a0b2c5d5c7b4a2927d685957616e7c8691979ea7a3a4a2a49c958e8378686051443425150400000000000000000000000000000000000e1e30414b6175879caabbcededaccc3bfc8cbd4e2d2c2b09f917c6659483625130000000000000000000000000000182d42586d8297adc2d7ece0cbb8a69da6b7c4d4e1d0bfb49f8d7c665a4938281613283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c0000000000000000000000000d21364a5c71869babbccbd5e2e0ccb8a7947e69543f291400000000000000000000000011253747545a606060606060606060565144341a0a00000000000002152737444b5e606060606060606060544f4332200c00182d42586d8297adc2d7e4cfbaa48f7a654f3a25151517263650657a90a5bacfebd9c9a6917c66513c2711000000000000000000000f21364b6176899eb3c8c2ad98836d5a4835200b000000071b2d3e4a4f505050505050504f4a3e2d1c0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e3245576d8398adc3d4e2cebbaa9e897b6c625a5956555758616b78879dabbccfe3d8c8ae99836e59442e190000162b40556b8095aac0d5dbc6b09b86715b46311c000000000e1e32424b607381939ea8b4bbc8c5c8c9c7c5c3b7b2a39b897b655c5e6d8298a7b8ccd0c0b39e8977614c4b5e66747c82888b8e8f8d8b8680796e635a4e4234261607000000000000000000000000000000000009192b3c4d5f6d8297a5b6c8d8ddccbcafaab2b7c4d4e0cdbdb39e8977625443301c1000000000000000000000000000182d42586d8297adc2d7ece7d5c4b8b3b8c4d4e2d3c3b3a1957f6a5e4c3c2c1a0a13283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c0000000000000000000000000f24394e64798ea3b5c9dae7f2e8d6c5b09a85705b3828150200000000000000000000000819293741444a4a4a4a4a4a4a4a4a413d34261600000000000000000919273136484a4a4a4a4a4a4a4a4a3f3c3225150300182d42586d8297adc2d7e4cfbaa48f7a654f3a251a141c2a3a51667c91a6bbd1e6d2bda7927d68523d2813000000000000000000000a1e3246576b8096aabbcab49f8b78624d3a29170400000010202d36393b3b3b3b3b3b3b39362d2010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b21364b6076899eb4c9d7dac9b49f8c7b655d4d483c413f3a464c5a657a8d9fb5cadfdcc6b19c87715c3828160200162b40556b8095aac0d5dbc6b09b86715b46311c00000006192c3c4f616d81979fb4b9c6ced8d7cdc9cdd7d4cac1b5a79e8b7a64596177899eb3c0d0ccb8a798826d5e4c4d5560666d7376787a7875716b635b4d493c31241608000000000000000000000000000000000001142637485a677d91a0b1c3d3e2d0bfaf9e959da6b7c9dae0ccb8a79a8472604a3e2d1b0a000000000000000000000000182d42586d8297adc2d7ecf2e2d5cbc8cbd5e2d7c6b6a5998372604a402f1e0e0013283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c00000000000000000000000012273d52677c92a7c1d2e7f7fff3dec9b39e89745645321d090000000000000000000000000b19252c2f3535353535353535352b2921160800000000000000000009151d20333535353535353535352a272015070000182d42586d8297adc2d7e4cfbaa48f7a654f3a2f2f26303847586b8095aac0d5e9d6c6a5907b65503b261000000000000000000000031629394d62788b9fb4c8bbaa96816b5846331f0900000002101b22242626262626262624221b1002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f243a4f647a8fa8b9c2c2c2bcab96816c5d4b3f352b2c2a29333c4b5d6f849aafc4d9dec8b39e89735645321e0900162b40556b8095aac0d5dbc6b09b86715b46311c0000000c2035495a697e939fb1bdcdd2c9c5c7bab4bac7c9cdd2c5b8a99d88786259687d92a2b4c7d5c5b2a0907b665745444b515858616364626056554e4a3d352c1e13060000000000000000000000000000000000000b1d3144556278899eb3becee1d5c4b3a19580889dabbccfe3d5c5b3a1947f695c4a392816030000000000000000000000182d42586d8297adc2d7ecfff2e7e0dde0e7e1cdbaa89c8776615443302212000013283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c00000000000000000000000014293e54697e93a9c8d9ebfefff5e0ccb8a78b75604b36200b000000000000000000000000000811181a20202020202020202016140e04000000000000000000000002080b1e20202020202020202014120c03000000182d42586d8297adc2d7e4cfbaa48f7a654f44444436434b566176889db3c8dde1cdb9a88e79634e39240e00000000000000000000000b2035485a6d8298aabbc8b49e8976614c3727150100000000070d0f111111111111110f0d0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273d52677c92a7adadadadad9f8c78624d3f2e20191615171f2e3f54697f94a9bed4e0ccb8a78b75604b36210b00162b40556b8095aac0d5dbc6b09b86715b46311c000006192b3c4d62788b9fb4bdcecdc1b5b0a6a99fa9a9b4b9c6d3c7b7a699836e5d5f6f849aa9bacdcfbeb29d8775604b3e353c3a464c4e4f4d4b453839362d20190e000000000000000000000000000000000000000b1b2e3f4b6073849aa7b9ccdcdac9b8a69983737b8d9fb5c1d2e3d0bfb49f8b7a645745321e120000000000000000000000182d42586d8297adc2d7ecfffffaf4f2eedecdbdb49f8a7963584636251304000013283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c00000000000000000000000012273c51677c91aabbcee2f0f5ead7c7b39e88735645321d0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a655959595959546065748299a6b8cbe0dec9b49e8975604b36200b000000000000000000000005192b3c4e63798c9fb4c8b9a8947f695544311d080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000152a3f556a7f949898989898989886715a493520100500000412273d52677c92a7bcd1dfcab59f8a75604b35200b00162b40556b8095aac0d5dbc6b09b86715b46311c00000b2035495a6e8398a9bacecdbdb0a39b908c8a8e949ea8b6c2d3c4b3a18f7a655063788b9fb4c2d2cab6a596806b5c4a3726293336393a3836322824211a0f06000000000000000000000000000000000000000417293a4b5d6a7f95a2b4c5d6e3cfbcab9d8877616b8096a3b5c6d7e2cebaa99c8675604b40301d0d00000000000000000000182d42586d8297adc2d7ecfffffffff2e2d1c0b09e927d675b4a3a29180800000013283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c0000000000000000000000000c21374c61778b9fb4c3d2dfe0decdbaa998836e5838281502000000020b111420202020202020202020202020202020202020202020202020202020202020202020202014120c020000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a6f6f6f6f6f6f70747a8699a1b2c4d5e5d3c2ae98836e5645321d090000000000000000000000000e2135495b6d8297aaa8a8a89d8774604b35200b000000000000000000000c151c1e202020202020202013110b02000000000000000000000000000000040d131620202020202020201c191309000000000013283d52687d82828282828282827f69543c2c190c0c0c0e111b2b3c54697e93a9bed3dec8b39e88735443301c0800162b40556b8095aac0d5dbc6b09b86715b46311c00000d23384d62788c9fb5c7d2c1b09f96857b7775797e8a9ca4b6c9cfbfaf99846f585a6a7f94a4b5c9d4c3b49f8c7a645544311d1f21232523201d150e0c070000000000000000000000000000000000000000000e1f334658647a8c9fb4c0d1e4d2c1b59f8d7b65596074859ba8b9cde1d8c7b6a497816c5e4d3b2b1808000000000000000000182d42586d8297adc2d7ecfffffff6e6d4c4b4a296816c5f4d3d2d1b0b0000000013283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c0000000000000000000000000a1f3347586d8297a5b5c2c9ccc8bdb49f8b79634e39230e00000006141f262935353535353535353535353535353535353535353535353535353535353535353535353529271f140600000000000000000000000000182d42586d8297adc2d7ecdac5b09b8484848484848485898f9ca4b2bfcfe2decab6a4917c675238281502000000000000000000000000061a2c3d4d62788c9393939393927c67523d2712000000000000000000101e293033353535353535353528261f140600000000000000000000000000071521282b3535353535353535312e261b0d0000000010253a4e5f686d6d6d6d6d6d6d6d69614f3b202121212123262c39495a6e8398aec3d8dac9af9a846f5a3626140100162b40556b8095aac0d5dbc6b09b86715b46311c000014293f54697e94abbccfc9b5a3968173666160636978869cabbccfc9b49f8a76614c6074869cabbccfcebbaa9b8573604b3c2b190c0e0f0d0b090200000000000000000000000000000000000000000000000e1e31414c6176879daabbceded6c6b5a396806b5e4c5563798a9eb4becfe1d3c2b19f917c665948362614010000000000000000182d42586d8297adc2d7ecfffffdead8c8b7a69a8473604b41301f0f000000000013283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c00000000000000000000000004172a3a4c6176879ca4b0b4b8b3ae9e947f6a5b4935210c0000021424313b3e4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a3e3b32241402000000000000000000000000182d42586d8297adc2d7ecddc8b4a29b9999999999999b9fa8b1b5c2cfdddfcfbeb19c8673604b35200b00000000000000000000000000000f2035495a667c7d7d7d7d7d7e7c65503b261000000000000000000c1e2e3b45484a4a4a4a4a4a4a4a3e3a312414020000000000000000000000041526333d404a4a4a4a4a4a4a4a4642382b1b090000000b1e31414e525858585858585858544f42313536363636393b3d495762788a9fb4c9decfbcab957f6a55402a150000162b40556b8095aac0d5dbc6b09b86715b46311c00011426375a70859aafc9d9c9b09b857360554c4b4e5a647a8c9fb4cacebbaa917c675255647a8c9fb4c4d4c8b5a3947e695a483520130000000000000000000000000000000000000000000000000000000009192c3c4d5f6d8298a5b7c8d9e1cdb9a89b8574604b40495b687d92a0b2c3d4e0cebdb39e8978625443301c100000000000000000182d42586d8297adc2d7ecfffef0e2cebbaa9d887762554431231301000000000013283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c000000000000000000000000000c1f334758627886939b9fa79e988f8173604b3d2c1a0600000b1f31424e53606060606060606060606060606060606060606060606060606060606060606060606060544f42321f0c000000000000000000000000182d42586d8297adc2d7ece4d1c0b4b0aeaeaeaeaeaeb0b4bac6c9d2e0ded1c1b2a0917c665544311d08000000000000000000000000000006192b3c4c5e66686868686868655e4c38230e000000000000000115293b4c585e6060606060606060534e42311f0b00000000000000000000000d213344505560606060606060605b5649382613000000011323313a3d43434343434343433e3b37444b4c4c4c4c4e51545b6375849aa9bacdd6c6b59f8c78624d38230d0000162b40556b8095aac0d5dbc6b09b86715b46311c00081d31445573889db3c8cfbcab907b65554437353c4b5c6e8398aec3d8c8aa95806a554b5c6c8196a6b7cbd2c1b49e8a78624d41301c0c000000000000000000000000000000000000000000000000000001152737495a677d92a0b2c3d4e1cfbeb49e8a79635645313c4e606e8298a5b7c8d9e0ccb8a79a8473604b3e2e1b0b00000000000000182d42586d8297adc2d7ecfff0dfcebeb49f8b7a6459473727150500000000000013283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c0000000000000000000000000004182a3a495a62747e858a8b89837a6c605544311f0f00000011263b4e606975757575757575757575757575757575757575757575757575757575757575757575757569604f3b2712000000000000000000000000182d42586d8297adc2d7ecefdfd1c8c5c4c4c4c4c4c4c5c9cdd7dee3dccdc0b4a398826d5e4c372614010000000000000000000000000000000e1e2f404c51535353535353504c402f1c0900000000000000071c3045586a73757575757575757568604e3a2611000000000000000000000013283d50626b7575757575757575716756422e190400000005131e25282d2d2d2d2d2d2d2d2931445560616161616366696f79859aa2b4c7d7c8b9a898836e5a4935200b0000162b40556b8095aac0d5dbc6b09b86715b46311c000b20354b60758a9fb4cacab49f8a76614b3727202e3e54697e94a9bed3c1ac97826c573e4b6175879db2bfcfcdb9a899846f5f4d3a2a1704000000000000000000000000000000000000000000000000000c1d31445563788a9eb4becfe1d4c3b2a0927d685b49382731424c6176879daabbcee2d5c5b4a2947f6a5c4a39291703000000000000182d42586d8297adc2d7ecf3e3d2c1b2a0937e685c4b3b2a19090000000000000013283d52687d92a7bdd2e7d4bfaa947f6a553f2a15000c21364c61768ba1b6cbc6b19c86715c47311c00000000000000000000000000000c1c2b3c49566069707476736e645d4b443726140100000014293e53697e8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7e69543e2914000000000000000000000000182d42586d8297adc2d7e5e5e5e4dddad9d9d9d9d9d9dadee1dedcd1c8bdb0a29a8474604b402f1909000000000000000000000000000000000012222f383c3e3e3e3e3e3e3b382f21110000000000000000091e33485e73888a8a8a8a8a8a8a8a7e68533e28130000000000000000000000162b40556b808a8a8a8a8a8a8a8a85715b46311c0600000000010b1013181818181818181820354b607376767676787b7e848c9ba3b4c0d1c9bbaa9e8a78624d3c2b19060000162b40556b8095aac0d5dbc6b09b86715b46311c000c21374c61768caabbcec8b39d88735847331f11273c51667c91a6bbd1c3ae98836e59434657667c91a0b2c5d6c6b3a1917d675847331f110000000000000000000000000000000000000000000000000c1c2e3f4b6073859ba8b9ccdcd8c8b7a598826e5f4e3c2c1a1f334658657b8c9fb4c1d1e3d1c0b49f8c7a645746331e13000000000000182d42586d8297adc2d7e5e7d5c5b5a398826d604e3e2e1d0d000000000000000013283d52687d92a7bdd2e5d4bfaa947f6a553f2a15000c21364c61768ba1b6bbbbb19c86715c47311c0000000000000000000000000000000e1e2b38454b535b566056594f4b3f312619090000000014293e53697e939f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f937e69543e2914000000000000000000000000182d42586d8297adc2d0d0d0d0d0d0d0d0d0d0d0d0d0d0cfd2c9c6c0b4af9f96847661564532221200000000000000000000000000000000000004121d242628282828282826231c11030000000000000000091e33485e73889d9f9f9f9f9f9f937d68533e28130000000000000000000000162b40556b80959f9f9f9f9f9f9b86715b46311c0600000000000000000303030303030311263b51667c8b8b8b8b8e9093999fabb4c1d0c3b7ab9f8c7b655a49351e0e000000162b40556b8095aac0d5dbc6b09b86715b46311c000b20354a60758a9fb4cacbb8a68c76614c3929223040556a7f94aabfd4c1ac97816c5742394c5e6e8398a7b9ccd0bfb39e8876614c3f2e1a0a0000000000000000000000000000000000000000000004172a3a4b5d6b8095a3b5c6d6e2cebbaa9d8776614c41311e0e17293a4b5d6a8095a3b4c6d6e2cebbaa9c8775614b41301e0e0000000000182d42586d8297adc2d0d0d9c9b8a79b8575604b4231201000000000000000000013283d52687d92a7bdd0d0d0bfaa947f6a553f2a15000c21364c61768ba1a5a5a5a59c86715c47311c000000000000000000000000000000000e1a2731363e38454b45383a372e1d1409000000000014293e53697e93a8b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a9937e69543e2914000000000000000000000000182d42586d8297adbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbac2b5b1aba29a8f8173615847382815040000000000000000000000000000000000000000090f11131313131313100e0900000000000000000000091e33485e73889db3b5b5b5b5a8937d68533e28130000000000000000000000162b40556b8095aab5b5b5b5b09b86715b46311c0600000000000000000000000000000011263b51667b90a1a1a1a3a6a9aeb4bcc9d0bfb3a59d8d7d675d4c3c2c1900000000162b40556b8095aac0d5dbc6b09b86715b46311c00071c30435473889db2c8d5c4a6917c6657473a383f4c5e6f849aafc4d7c6aa947f6a553f2f404c6277899eb3c0d1cbb8a697826d5d4b382816020000000000000000000000000000000000000000010f1f334758657b8d9fb4c1d1e3d1c0b49f8c7a645846332313000c1c2e3f4b6073859ba8b9cce1d8c8b6a597826d5f4d3c2b190900000000182d42586d8297adbbbbbbbbbcab9e89786256453224140200000000000000000013283d52687d92a7bbbbbbbbbbaa947f6a553f2a15000c21364c61768b90909090909086715c47311c00000000000000000000000000000000000a151d2029283236322825221b100100000000000014293e53697e93a8becacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabea9937e69543e2914000000000000000000000000182d42586d8297a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a4a2a49c958f847a6c6055473a2a1a0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e33485e73889db3c8cacabda8937d68533e28130000000000000000000000162b40556b8095aac0cacac6b09b86715b46311c0600000000000000000000000000000011263b51667b90a6b6b6b8bbbec4cacfd9c7b3a199877c675f4d3f2f1e0e00000000162b40556b8095aac0d5dbc6b09b86715b46311c00001325365a6f8499afc8d8c7b29c877561584f4d515d667c91a1b3c7cdbaa8917b66513c26344859687e93a2b4c7d5c4b19f907b655645321e0f00000000000000000000000000000000000000000f1f31424c6176879dabbccfdfd5c5b4a2947f6a5c4b3a2917050000111d3144556278899eb3becfe1d3c3b1a0927d675a4837261401000000182d42586d8297a5a5a5a5a5a59f8d7c665a49382816060000000000000000000013283d52687d92a5a5a5a5a5a5a5947f6a553f2a15000b20354b60737b7b7b7b7b7b7b7a654f3a25100000000000000000000000000000000000020f1a21232b2f302e28211e160a0000000000000014293e53697e93a8bed3dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd3bea9937e69543e2914000000000000000000000000182d42586d8290909090909090909090909090909090908f8d8b86807a6f645c4b44372a1c0c00000000000000000000000000080e101d1d1d1d1d1d1d0d0b05000000000000000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000011263b51667b90a6bbcbcdd0d3d9dfe3d9c3ae998475665e4d413021110000000000162b40556b8095aac0d5dbc6b09b86715b46311c000013283e53687e93aabbcecab6a5998376696462666c7b889eb3bfd0c9b49f8a75604b36212b3b4a6072859aa9bacecebdb29c8674604b3d2d18080000000000000000000000000000000000000a1a2c3d4e606e8399a6b7c9d9d0ccb8a79a8472604b3e2e1b0b00000001152737495a677d92a0b2c3d3d0cebeb39e8978625544311d10000000182d42586d8190909090909090907f6a5e4c3c2b1a0a000000000000000000000013283d52687d9090909090909090907f6a553f2a1500081d3144556066666666666666655d4b37220e000000000000000000000000000000000a161e2d3639404445433d3632281b1204000000000014293e53697e93a8c2d3e5f5fff4fff6eae2dfd3d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2bea9937e69543e29140000000000000000000000000e24394e63797b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a7876716b645c4f4a3e3127190c00000000000000000000000003111c2326323232323232322220190d0000000000000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000011263b51667b90a6bbc1c4c7caced9e3dec9b49e8a7c675f4d3c2c19090000000000162b40556b8095aac0d5dbc6b09b86715b46311c00000d22374c62778b9fb4c6d3c3b3a199887e7a777c818d9ea6b8cbcfbcab98836e5645321e1c30435463798b9fb4c2d3cab6a495806b5b4a362614010000000000000000000000000000000002152738495b687e93a1b2c4bbbbbbbdb39e8978625443302010000000000009192b3c4d5f6d8298a5b6c8bbbbbbb9a79b8573604b3f2e1b0800000e24394e63797b7b7b7b7b7b7b7b72604a402f1e0e0000000000000000000000000d22374d62777b7b7b7b7b7b7b7b7b78624d38230d0001152737444b505050505050504f4b3f2e1b080000000000000000000000000000000a1a28323d4a4e55595a58524b45392f2212040000000013283e53687d93a4b6c7d7eafdfff6e6d8cecabebdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbda9937e69543e29140000000000000000000000000c21364a5b63666666666666666666666666666666666665626056564f4b3e362e1d15090000000000000000000000000011212f383b4848484848484837342b1d0d00000000000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000000000000000011263b51667b90a6abacafb2b4bbc8cfd9cdb9a89e8c7d675a493727150100000000162b40556b8095aac0d5dbc6b09b86715b46311c00000b203448596c8197a8b9cdcfbfb3a69d938f8d91979fabb8c4d3c2b49f8c79634e382816132536495b6a8095a4b6c9d3c3b49f8b79635443301c0d00000000000000000000000000000000091d31455663798a9fa5a5a5a5a5a5a59f917c665948362614020000000000000e1e30414b6175879daaa5a5a5a5a5a5a2957f6a5d4b37220e00000c21364a5b636666666666666665605443302211000000000000000000000000000b2034485962666666666666666666625a4935200c000009192731353b3b3b3b3b3b3b3a372e211000000000000000000000000000000009192838454b5b636b6f706d6860574c402f2211000000000b21364b6075869ca9bacde2eefeead8c8bbb4a9a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8937e69543e2914000000000000000000000000071a2d3d4a4e50505050505050505050505050505050504f4d4b45383a372e221b100100000000000000000000000000081c2f3f4c505d5d5d5d5d5d5d4d483b2b1905000000000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000010208080808080811263b51667b90969697999c9faab4bcc9d7c6b9aa9e8a78635544311d0800000000162b40556b8095aac0d5dbc6b09b86715b46311c000005182b3b4c61778a9eb4bccfcfc4b7b2a9a4a2a6acb5bcc9d3c5b6a497826d5b4a361a0a08182c3d4b6074869cabbccfcebbaa9b8573604b3b2b19050000000000000000000000000000000b20364b60758690909090909090909090816c5e4d3b2b18080000000000000000131e334657647a8c9090909090909090908b7a654f3a25100000071a2d3d4a4e50505050505050504a43362513040000000000000000000000000005182b3b484d5050505050505050504d493c2c190600000009151d202626262626262625221b10020000000000000000000000000000021527374556606d79808485837d75665e4c402f1b0b000000091e324556647a8b9fb4bfd0e2f3e2cebbaa9f94929292929292929292929292929292929292929292927e69543e2914000000000000000000000000000f1f2d36393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a3836322824221b10070000000000000000000000000000000e23384c5d657272727272727262594834200c000000000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060000000000060f16181e1e1e1e1e1e1e23394e63798181818184878b979fabbac7d7c8b9a89b8573604b35200e00000000162b40556b8095aac0d5dbc6b09b86715b46311c0000000d1f344759677d919eb4bcc9d4cbc8beb9b7bbc1cacfcfc3b6a79c8676614c3d2d1a00000f1d314556657b8d9fb5c4d5c8b4a3937e6959483420120000000000000000000000000000000c22374c61767b7b7b7b7b7b7b7b7b7b7b75604b40301d0d000000000000000000031729394b5c647a7b7b7b7b7b7b7b7b7b7b7a644e39240f0000000f1f2d36393b3b3b3b3b3b3b3b35302518080000000000000000000000000000000d1d2b34373b3b3b3b3b3b3b3b3b38352c1e0e000000000001080b11111111111111100e0800000000000000000000000000000000081d3144556074818c95999a9892887c665e4c3a2917040000031628384a5c697e93a1b3c4d5e7dfcab49f8b7f7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d79634e39230e00000000000000000000000000010f1a212426262626262626262626262626262626262523211e160f0d07000000000000000000000000000000000010263b50657b8787878787878778624d3a2a18040000000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000917232a2d333333333333333336495b636c6c6c6c6f7277828c9fa9bacdd6c6b5a3917c67513c2c1906000000162b40556b8095aac0d5dbc6b09b86715b46311c00000004182a3b4d5f6a80949fabb7c3cbd4d3cfccd1d9cfcabfb2a59c8979635846331f0f0000021527384b5d6c8197a6b7cbd1c1b49e8a78624d40301b0b00000000000000000000000000000a1f33475861666666666666666666666660564532221200000000000000000000000b1b2e3e4b5c6466666666666666666666645c4a36210d000000010f1a21242626262626262626201c130800000000000000000000000000000000000d1820222626262626262626262320190e000000000000000000000000000000000000000000000000000000000000000000000417293a4b607384979fabaeafada69d8d7c665846331f0a0000000a1a2d3d4a60728399a6b8cbe0e2cebbaa98826d686868686868686868686868686868686868686868635b4a36210c000000000000000000000000000000070c0e1111111111111111111111111111111111100d0b090300000000000000000000000000000000000000000b20354b6074879d9d9d9d9d96816c5847331f0b0000000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c06000000061727353f424848484848484848423d494e565656575a59626d7b8b9fb4c9ded2c1af9a846f5a4935200c000000162b40556b8095aac0d5dbc6b09b86715b46311c000000000c1d304150626a7f8d9da5b2b7c4c2c4c6c4c9bcb4afa0988779635b493a2917010000000a1a2e3f4c6176889db3bfbbbbb9a899836e5e4d3a2917040000000000000000000000000004182a3a474c50505050505050505050504b453828160400000000000000000000000010202e3e4a4f505050505050505050504e4a3e2d1a070000000000070c0e11111111111111100b070000000000000000000000000000000000000000050b0d1111111111111111110d0c0600000000000000000000000000000000000000000000000000000000000000000000000a1f3346586b8095a2b5bcc9c5c4b7ab9d8876614c36210c000000000f1c3043546277889eb3bdcde0d8c8b2a0927d675a535353535353535353535353535353535353534e4a3d2d1a07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d314455697e93a7b2b2b29f8a77614c3929170300000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060000000f23354552575d5d5d5d5d5d5d5d57524539414141423b484d5d697f94a9c3d3dfcab59f8b78634d38230e000000162b40556b8095aac0cacac6b09b86715b46311c0000000000122333445061697c87949da6aaadafb0aeacab9f9a8f8376635b493d2c1c0c0000000000111f334658677c91a1a5a5a5a5a5a1917c665846331f0a00000000000000000000000000000c1c2a33373b3b3b3b3b3b3b3b3b3b3b3632281a0a000000000000000000000000000210202d363a3b3b3b3b3b3b3b3b3b3b39362d200f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364c61768a9fb4c0cfdadad4c9b7a696806b5637271501000000001325364759667c909fb0c2d2e5cfbeb49e8a786255443d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d39362d1f0f000000000000000000000000000000000000040a0c121517191a191714100b090300000000000000000000000000000000000000000000000000000000011426374b6176899eb3c8baa895806b5746331e0a00000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c06000001162a3f52636d73737373737373736c63523e2c2c2c2c2b343f4c61768ca5b6cadfcfbcab927c67523d2712000000162b40556b8095aab5b5b5b5b09b86715b46311c000000000005152533434f5e66757f888f95989a9b9997928b847a6e6158493d2c1f0e0000000000000417293a4d5f6e8390909090909090908876614c36210c0000000000000000000000000000000c181f222626262626262626262626211e160a00000000000000000000000000000002101b22242626262626262626262624211a0f01000000000000000000000000000000000000000000000000000000000000000000000000000000020b1113202020202020202020201b0b0902000000000000000000070d0f1f2020202020202020201d0c0a0400000000000012273c52677c91a9bacde3ecefe7d4c4b29d87725544311d080000000008182a3b4c5e6c8196a4b5c7d7e1ccb9a89b8573604b3f2e28282828282828282828282828282823211a0f01000000000000000000000000000000040a0c181f22272a2c2e2f2e2d2925211e160b07000000000000000000000000000000000000000000000000000000091e3246576b8095aabbc6b39e8976614c39281603000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c06000002182d42576d818888888888888888816c573a2a171717182033475872879cb2c7dcdac9aa947f6a553f2a15000000162b40556b80959f9f9f9f9f9f9b86715b46311c00000000000007152532404c566069737a8083858684827d776f645c4c473a2c1f0f00000000000000000c1c30414c61777b7b7b7b7b7b7b7b7b77624d37220d00000000000000000000000000000000040a0c11111111111111111111110b0903000000000000000000000000000000000000070d0f111111111111111111110f0d070000000000000000000000000000000000000000000000000000000000000000000000000000000006141f26283535353535353535353531201d150a00000000000002101b22243535353535353535353533221f180c0000000000152a3f556a7f94aac7d7e9fffff2dfcab49f8a75604b35200b00000000000d1d2f404b6074869ca9bacde1d6c6b4a395806b5d4b3a2917131313131313131313131313130e0c07000000000000000000000000000000040c181f222a34373d4042434543423f3a363228201c130800000000000000000000000000000000000000000000000000031629394d62778b9fb4c9b9a7947f6a5745321e08000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c06000002172c42576c81979d9d9d9d9d9d9b85705847331f140d0e192c3c5a6f8499afc4d9d7c2ad97826d58422d18030000162b40556b808a8a8a8a8a8a8a8a86715b46311c000000000000000715222f38454b5460646a6d6f716f6c6861594f4b3e332a1c0f01000000000000000000121f3447596166666666666666666662594834200b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021424313a3e4a4a4a4a4a4a4a4a4a4a463631271a0a000000000010202e373a4a4a4a4a4a4a4a4a4a4a4837332a1c0c00000000152a3f556a7f94aac6d7e9fcfff4dfcab59f8a75604b36200b000000000000121e32455663798b9fb4bfd0e2d1c1b49f8d7b655847331f1301000000000000000000000000000000000000000000000000000000000c171f2a33373a474c525557595a5957544f4b45393530251811040000000000000000000000000000000000000000000000000b203448596d8298adc0c5b39e8875604b362513000000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c06000000152a3f556a7f94aab2b2b2b2b29f8b77614c3f302623232a37495a71869bb1c6dbd8c3ad98836e58432e1903000013283d50626b7575757575757575716756422e19000000000000000004121a283236434a4f55585a5b5957534c473b372e1f170c000000000000000000000004182a3a474c5050505050505050504d483b2b1805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d131520202020202020202012100a0100000000000000000000000000000000000000000000000000000000000000000000000b1f31424e53606060606060606060605b4b45382715020000000c1d2e3e4b4f5f6060606060606060605d4c473a2a180400000012273c52677c91a8bacde1ecf0e7d4c4b29d87725544311d08000000000000021628384a5b697e93a1b3c4d4e3cfbcab9d8776614c42311f0f000000000000000000000000000000000000000000000000000000121c29333a474c555961676a6c6e6f6e6c69656057504a43362f1f170b000000000000000000000000000000000000000000000005182b3b4e63798ea2b4c8b8a6937e695443301c070000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000013283d52687d92abbcc8c8c8bbaa95806b5d4b433638383b475563788c9fb5cadfd6c1ab96816c56412c170100000d213344505560606060606060605b5649382613000000000000000000000a161e2530353a4043454644423d37342a221b1004000000000000000000000000000c1c2a34373b3b3b3b3b3b3b3b3b37342b1d0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071520282a35353535353535353527251e13050000000000000000000000000000000000000000000000000000000000000000000011263a4e60687575757575757575757570605645311d13020009192a3b4b5c647475757575757575757572615847331f0a0000000c21364c61768a9fb4c0cfdadad5c9b7a696816b5637271502000000000000000a1a2d3d4e606e8399a6b7c9dad9c9b7a598836e604e3d2c1a0a00000000000000000000000000000000000000000000000008131c2f3a464c58616a70777d7f81838483827e7a766e6660544c4033291b0f01000000000000000000000000000000000000000000000d21364a5b70859aafc7c5b29d8773604a35200b0000000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060000000d22374d62778b9fb4caddd8c8b49f8b7c6860544f4d4e51596173859babbccfe3d6c5a9947f6a543f2a15000000041526333d404a4a4a4a4a4a4a4a4642382b1b0900000000000000000000000208131c20242b2e30312f2d28221f180c08000000000000000000000000000000000c181f222626262626262626262220180d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041525333c404a4a4a4a4a4a4a4a4a3d393023130100000000000000000000000000000000000000000000000000000000000000000013283e53687d8a8a8a8a8a8a8a8a8a8a8574604b41312010011426374759647a8b8a8a8a8a8a8a8a8a8a8777614c37220c0000000a1f334658697e93a2b5bcc9c5c4b8ab9d8876614c37210c0000000000000000000f1f31424c6176889dabbccfe3d4c3b2a0927e685b49382715020000000000000000000000000000000000000000000008182530404c58616b777f858b929597989a9897948f8a837b73665e4c463a2c1f1002000000000000000000000000000000000000000000071a2d3d53687d92a9bacab6a58f7a654f3828160300000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060000000b2034485970859ab0c3d4e2cebbaa9f8b7e736a656263666b778298a3b4c9dae0ccb9a78f7a65503a251000000000071521282b3535353535353535312e261b0d000000000000000000000000000000070b0f15181a1c1a17130c0b0400000000000000000000000000000000000000040a0c1111111111111111110d0b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d2033435055606060606060606060524d41301e0a00000000000000000000000000000000000000000000000000000000000000000011263a4e606d8197a39f9f9f9f9f9fa397816c604e3e2d1c0f1d3144556177879da99f9f9f9f9f9f9f8b7a645847331f0a0000000417293a4a607284979fabafb0aea69e8d7c665847331f0a00000000000000000001141f334758657b8d9fb5c1d2e2cfbfb49f8a79635645311d1100000000000000000000000000000000000000000000132536434a5e6676808a949b9fabaaacaeafaeaca9a99f9890857b6d6158493d2d2010000000000000000000000000000000000000000000000f21374c61768a9fb4c9c3ac97826d5645321e0900000000000000000000091e33485e73889db3c8ddd2bda8937d68533e28130000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000005182b3b53697e93a5b7cadfd8c8baa99f93867f7a78787c808998a0b2c1d1e7d8c8b39e8974604b35200b0000000000040d131620202020202020201c1913090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013283c50616a757575757575757575675f4d3925100000000000000000000000000000000000000000000000000000000000000000000b1f31424b6074859ba6b8b5b5b5c1b19f927d685c4a3a2a1f30414b6073849aa6b7b5b5b5c0b19f927d685c4a3a2a1804000000000c1c3043546075828c969a9b9893887c665e4c3a2917040000000000000000000004182a3a4c5d6b8096a3b5c6d7e1cdbaa89b8574604b402f1c0c0000000000000000000000000000000000000005121c304354606a7c89959ea8b0b5bcc9c1c3c4c3c1c7bab4ada39b908276635b4a3e2d1e0e0000000000000000000000000000000000000000000a1f3347586e8399aec9c9b39e8975604b36210b00000000000000050b0d0e1e33485e73889db3c8ddd2bda8937d68533e28130e0e0e0e0c060000000000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000d21364b6075879db2bfcfdfd7c7bab4a49c948f8d8d91959ea8b2becfdfe2cebbaa97826d5544311d080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c0f11131311100e0b08010000000000000000000000000000000000000000070d0f1416191a1715120c0a03000207090b0b0b0b0b0b0b0b00000000000000000000000000000000000000000000000000152a40556a7f8a8a8a8a8a8a8a8a8a7d67523d271200000000000000000000000000000000000000000000000000000000000000000002141d3245566278889eaabbcecacebdb49f8b7a645847362c3d4d5f6b8096a2b4c4d4d4c4b4a297816c5f4e3e2d1c0c0000000000001325364557606d79808485837e76665e4c402f1c0c0000000000000000000000000c1c2f3f4b6074859ba8bacde1d7c6b5a396806b5e4c3a2a1804000000000000000000000000000000000000122333434a60727f8d9ea7b4b9c6cacfdad6d8d9d8d7d7cdc9c1b5b0a0988779645c4a3c2b1b0a00000000000000000000000000000000000000000417293a52677c92abbcccb9a8917c67513626140100000000000e192022232333485e73889db3c8ddd2bda8937d68533e282323232323211a0f01000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000091e324557667c91a1b3c0d1dfd7cdc2b6b1a9a4a2a3a6aab3b9c6cfdce2d2c1b49f8b78634d372715010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d161e2125262828272523201c140800000000000000000000000000000000050b101b2224292c2e2f2d2a27211e160b161c1e202020202020202013110b02000000000000000000000000000000000000000000152a40556a7f959f9f9f9f9f9f9f927c67523d271200000000000000000000000000000000000000000000000000000000000000000000021528384859657b8c9fb4becfe1cdbaa99d877661544339495b677d919eb0c0d1d8c8b7a69a8474604b413120100000000000000008182839454b5c646b6f706e6861574c402f22120000000000000000000000000000111d31455663798a9fb4bfcfe2d2c1b59f8d7b655947341f1401000000000000000000000000000000000c1c304150616d82959fabb8c5cdd6dfdcd3d8cecaced8d7dfded2c9beb2a59d897a645a483928160300000000000000000000000000000000000000000c21374c61778b9fb4cac6ad98826d5443301c08000000000e1e2b3538383838485e73889db3c8ddd2bda8937d68533e383838383838352c1f0f000000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000031628394d5e6e8399a2b4c1cedfe1d3cac7bfbab7b8bbc0c9ccd6e4e2d1c4b5a396816c5a4935190900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d181f222932363a3c3d3d3c3b3935302618180a000000000000000000000000010d1820222e363a3f414344423f3c36322922293133353535353535353528261f14060000000000000000000000000000000000000000152a40556a7f95aab5b5b5b5b5a7927c67523d271200000000000000000000000000000000000000000000000000000000000000000000000a1a2b3b4b5d697f94a0b2c2d2d7c7b7a59a8372604b465763798a9eb4bccde2cebbaa9d88776255443123130200000000000000000a1b28323e4a4e565a5b59534b46392f221204000000000000000000000000000002152738495b687e93a1b2c4d4e3cfbcab9d8877614c42321f0f0000000000000000000000000000000417293a4d5f6a7f95a0b5bcc9d6e1d3cac7bec8bbb4bbc8c2caced9ddcfc3b7a79e8978625745321e0e00000000000000000000000000000000000000000a1f33475870859bb0c5c8b39e8874604b35200b00000005192b3c484d4e4e4e4e5e73889db3c8ddd2bda8937d68534e4e4e4e4e4e4e493d2c1a060000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000a1b30404b6075849ba3b1bdcbd4dededcd4cfcdcdd1d5dee1e2d8cec1b5a69b8575614b3c2c19000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a161e2a343739464b4f51525251504e4b4336352818060000000000000000000009141d2b34373e4a4f5456585a5755524b4639363c45494a4a4a4a4a4a4a4a3e3a3124140200000000000000000000000000000000000000152a40556a7f95aabfcacacabca7927c67523d27120000000000000000000000000000000000000000000000000000000000000000000000000d1d2e3f4f616d8298a4b5c5d6d4c3b3a195806b5e4b6175869ca8b9cddacebeb49f8b7b64594837271505000000000000000000000a161e2d3639414546433e3633291b1204000000000000000000000000000000000a1a2c3d4e606e8399a6b7c9d9dac9b7a699836f604f3d2d1a0a00000000000000000000000000000a1f334658677d8d9fb5becfdad8cec2b6b1a9a3aa9faaa6adb4bbc8d0ded4c5b8a79b8575604b3d2c1a060000000000000000000000000000000000000004172a3a556a7f95aac7ccb8a78f7a654f3a25100000000b2035485a62636363636373889db3c8ddd2bda8937d6863636363636363635b4935210c0000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000121e324557617685979fb2b7c4cad3d9dcdee1e2dfdddbd7cdc8bbb4a39b8877625746321e0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010f1b28323b474c55576164666868666563605453463523100000000000000000000d1926313b484c555c64696b6e6f6c6a6761574f4a4c595e6060606060606060534e42311f0b00000000000000000000000000000000000000152a40556a7f95aabfd4dfd1bca7927c67523d271200000000000000000000000000000000000000000000000000000000000000000000000000112132434b6075869ca7b8c9d9d0bfb59f8d7c66616e8399a4b6c6d6d2c1b19f937e685d4b3b2b190900000000000000000000000003101b22242b2f302e28211e170b000000000000000000000000000000000000000f1f31424c6176879dabbccfe3d5c4b3a1937e695b4a3828160300000000000000000000000005192b3b4c6176899eabbccfe3d8c8bbb4a49c948e8b8a8d90979faab4c0cfddd5c5b5a395806b5b4935210c00000000000000000000000000000000000000000f253a4f647a8fa9bacec5aa95806b553727150100000d22384d6278787878787879889eb3c8ddd4bfaa957f787878787878787879705e38230e0000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000031628394658617581919da6b1b6c2c4c7c9cdcdc9c8c5c7bab4aa9f9685786259483928160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1f2d39454b59626a71767a7b7d7d7c7a78746d64533f2b1600000000000000000e1d2b37444b59626b727a7e818384827f7c766d645c4b6b73757575757575757568604e3a261100000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d27120000000000000000000000000000000000000000000000000000000000000000000000000003141e3245576278899eabbccfe3cfbcab9e8979697f94a1b2c2d3d5c5b5a397826d604e3f2e1d0d000000000000000000000000000000070d0f161a1b19130c0a03000000000000000000000000000000000000000001131f334758657b8c9fb4c1d2e2d0bfb49f8b79635645321e120000000000000000000000000b203448596b8095a7b8c9dad8c7baaa9f93867e787675787b828c9aa2b2bfcfc9bcb4a99f8a78634e38230e00000000000000000000000000000000000000000b20364b60758a9fb4c9c4af9a856f5544311d0800001b30465b70858d8d8d8d8d8d9ea7b8cce0d7c3af9e958d8d8d8d8d8d8d8d8a75604a35200000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000a1b293a4657616d7c88929ca4a9aeb2b4b9bab4b2b0aba99f978b8174625a483b2b1b0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2d3d4a57606c777f868a8f91929291908e89826d58432e18000000000000000e1e2c3b485560697780878f9496989997949189827a6b6073898a8a8a8a8a8a8a8a7e68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d2712000000000000000000000000000000000000000000000000000000000000000000000000000003162839495a667c8d9fb4bfcfdac9b9a79c867b8c9fb4bfcfd9c8b8a69b8574604b4231201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004172a3a4b5d6b8095a3b5c6d6e1cdbaa99c8675604b402f1d0d00000000000000000000000d22374d62788a9fb4c5d5e2cebaa99f8c7e736963606062666d788499a1b2bfb3ab9f988b8076614c37210c0000000000000000000000000000000000000000091d32455670869bb0c5c9b49f8975604b35200b00001b30465b70859ba3a3a3a3a3b3b8c5d5e7deccbcafaaa3a3a3a3a3a3a39f8a75604a35200000162b40556b8095aac0d5dbc6b09b86715b46311c0600000000000000000c1c2939464b5f67747d868e94999d9ea8a99f9d9b96908a81786b6056483c2b1d0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a2c3c4a5b6375818b959b9faaa6a7a7a6a5a89c87725d47321d0000000000000e1e2c3c495962737e89959ca5a9abadafacaaa89e978c807473889e9f9f9f9f9f9f937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d27120000000000000000000000000000000000000000000000000000000000000000000000000000000a1b2c3c4c5e6a7f94a1b3c2d3d6c5b5a49c919faabbcee2cebbaa9e8878625645322414020000000000000000000002090b12121212120e0c06000000000000000000000000000000000000000000000000000000000c1c2e3f4b6074859ba8b9cde1d7c7b5a497816c5e4c3b2b180800000000000000000005182b3b556a7f94a9bacde3d2c1b49f8b7b6960554e4b4b4d515a63748399a3b0a1998c82786b615847331f0a000000000000000000000000000000000000000002152838576c8196acc1cdbaa88e79644f39240f00001b30465b70859bb0b8b8b8b8c8ccd5e3f3eadaccc3bfb8b8b8b8b8b8b59f8a75604a35200000162b40556b8095aac0d5dbc6b09b86715b46311c060000000000000000000c1b2832414d56606873797e8487898b8b8a8886817b766c625a4b45382b1e0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003162838495a637986969fa9b0b4bbc8bdbdbbc6b29c87725d47321d00000000000a1a2c3c495a637785939ea8b2b6c3c0c3c4c1c6b9b4ab9f968576889eb3b5b5b5b5a8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d2712000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2f404a60728399a4b6c6d6d2c2b5b1a6b4bbc8d9cfbeb49f8c7b655a4838281606000000000000000000000a151d20272727272723211a0f01000000000000000000000000000000000000000000000000000000111d31445563788a9eb4becfe1d2c2b19f917c6659483625130000000000000000000b2034485970859bb0c7d7ddc9b5a3937e685d4b44373635383c49566073859b9b8f83796d625a4c473a2a170400000000000000000000000000000000000000000012283d52677d92a7bcd7c6a8937e69533e291400001b30465b70859bb0c5cdcdcddde0e7f3fff8eaded7d4cdcdcdcdcdcab59f8a75604a35200000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000000000b161e3038454b546063696f727476767473706b6661574d483c31271a0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e3245566378889ca4b4bac7caced9d2d2d1c7b29c87725d47321d0000000002152738495a6378879ba3b3b9c6cad3d6d8d9d7d7cdc9bcb4a39a85899eb3c9cacabda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d27120000000000000000000000000000000000000000000000000000000000000000000000000000000000111c3043546175869ca8b9c9dad2c9c6bbcaced9d2c2b2a0947f695d4b3c2b1a0a000000000000000000000a1a2731363c3c3c3c3c38352c1f0f00000000000000000000000000000000000000000000000000000002152737495a687d92a0b2c3d4e0cebdb39e8977625443301c1000000000000000000d22374c62778b9fb5cadfd8c8b09b8571604e3f31262120232c384555647a8b857a6f635b4d483c332a1c0c000000000000000000000000000000000000000000000f243a4f64798fa4c4d5c1ac97816c57422c1700001b30465b70859bb0c5cacacacae0e7f2fff6e8ddd5d2cacacacacacab59f8a75604a35200000162b40556b8095aac0cacac6b09b86715b46311c06000000000000000000000003121a273136434a4e54595d576061575d5b56514b4639352b1d150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000417293a4b6075879ca6b6c3ced8dfdddbdacfcac7b29c87725d47321d00000000091d3145566378889da5b5c1ccd6dfdfd6ccc8c6c5c7cacec1b4a29a9ea7b9cce0d2bda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d2712000000000000000000000000000000000000000000000000000000000000000000000000000000000000132536465763798a9eabbccfe3dedbd0dfe2d6c5b5a498826e614f3f2e1d0d0000000000000000000002152738454b52525252524e493d2c1a0a00000000000000000000000000000000000000000000000000000009192c3c4e5f6e8298a5b7c8d9e0ccb8a79a8472604a3e2d1b0b0000000000000012273c52677c91abbccfe2cebbaa917c675242311d140b0b0e1a27374a5c647970655d4e4a3d352b1f170c00000000000000000000000000000000000000000000000c21364c61768ba6b8cbc5af9a85705a3a2a1704001b30465b70859bb0b5b5b5b5b5cbd5e2f2e8d8cac1bdb5b5b5b5b5b5b59f8a75604a35200000162b40556b8095aab5b5b5b5b09b86715b46311c06000000000000000000000000000a151d253035393f4439454b4c463946413b36322920190e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f3346586a7f94a5b6c4d3e2dfd2c9c6c9bcb5b4b29c87725d47321d000000071b2d3e4b6074859ba6b7c3d2e1d9cecac5b8b3b1b0b2b4bbc8c0b4afb3b9c5d6e8d2bda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d271200000000000000000000000000000000000000000000000000000000000000000000000000000000000008182939495b667c8d9fb5c2d2e5f1e6f4e0ccb8a79c8675604b433221110000000000000000000000091d314556606767676767635b49382715020000000000000000000000000000000000000000000000000000000e1e31414c6176879daabbcee2d5c5b4a2947f695c4a3928160300000000000014293f54697e94a9c9dadfcab49f8a76614c362114010000000a192d3e4a5c645c4f4b3f362d20190e040000000000000000000000000000000000000000000000000a1f33465873889eb3c8c8b39e88735847331f0a001b30465b70859b9f9f9f9f9fa1b7c4d5e7ddcabaada89f9f9f9f9f9f9f9f8a75604a35200000162b40556b80959f9f9f9f9f9f9b86715b46311c0600000000000000000000000000000208131c2024292f283236363329312c26211e160b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364c6176899eb4c3d3e2dacdc1b5b0a6ab9f9faa9c87725d47321d0000000d22364a5c6b8096a3b5c4d4e1d4c8bbb4aca79e9c9b9d9faab2b6c3c5c9ccd6e4e8d2bda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d2712000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1b2c3d4d5e6b8095a3b5c9def2fbf3dec8b39e89786357453225140300000000000000000000000b20364b60747d7c7c7c7c79635645311d0e0000000000000000000000000000050b0d0d0d0d0d0d0d0d0d0d0d0d131f334658657b8c9fb4c1d1e3d0c0b49f8b7a645746321e12000000000000162b41566b8096abc0d5dcc6b19c87715746331e0a00000000000f202d3d4a4e4a3d372e211a0f0500000000000000000000000000000000000000000000000000000417293a5b70859bb0c5ccb8a78c76614c37210c001b30465b70858a8a8a8a8a8a8fa6b7cbe0d5c1ad9c938a8a8a8a8a8a8a8a8a75604a35200000162b40556b808a8a8a8a8a8a8a8a85715b46311c060000000000000000000000000000000000070b0e141a161e21211e171b16110c0a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273c52677c91a8b9cde1e0cdbcb0a39b918d8a8a8b8f87725d47321d0000061a2c3d4f647a8d9fb5c1d2e2d4c3b7aa9f978f898685878a929ca4b0bccce0e8f4e8d2bda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d271200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1f30404b6075869bb1c6dbf0fce7d2bca7927d675a4939281606000000000000000000000000091d3145567085919191918674604b3c2c19060000000000000000000000000d18202222222222222222222222222222293a4b5d6a8095a3b4c6d6e2cebbaa9c8675614b41301e0e0000000000182e43586d8398adc2d8dac4af9a856f5a392917030000000000010f1f2d3639362d231c110700000000000000000000000000000000000000000000000000000000001a2f44596f8499aec4d5c5a38e79634e39240e00192e42556770757575757575889db3c8ddd2bda8937e757575757575757575705e4a3520000013283d50626b7575757575757575716756422e19040000000000000000000000000000000000000000000003090b0c0a030001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003182e43586d8298adc6d6e5d3c2b09e95857c78757576797d68533d281300000c2135495b6e8398abbccfdfd4c4b7a59d8c827a74717072767d87969eafbbccddeee8d2bda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d271200000000000000000000000000000000000000000000000000000000000000000000000000000000000000001325364758657b8c9fb4cadff4ffefdac5b09a8574604b3f2f1d0d0000000000000000000000000215273850657b90a3a7a4947f6a5a4935201300000000000000000000000d1d2b34373737373737373737373737373737373f4b6073859ba8b9cce1d8c8b6a497826d5f4d3c2b190900000000182d43586d8298adc2d7dac4af9a856f5a3a291704000000000002101f2d3639362d231c11070000000000000000000000000000000000000000000000000000000003182e43586d8398adc2d0baa5907b65503b26100013263848555b606060606073889db3c8ddd2bda8937d6860606060606060605e52422f1b00000d213344505560606060606060605b5649382613000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011527375c71879cb1c6dcdecab6a495807266636058616468604e3a251100000e23394e63798c9fb5c9dadac9b7a69d877a6d6460545b5861687480959dafbfd0e3e8d2bda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d2712000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1c3043546176889daabbcee2f4f2f1ddc8b4a295806b5d4c3b2a18080000000000000000000000000a23384c5e71859bb0b49f8b78634d41301c0c00000000000000000009192b3b484d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d556278899eb3bfd0e6d3c3b19f917d675a4837261401000000162b41566b8096abc0d5dcc6b19c87715846331f0a000000000010202d3d4a4e4a3d372e211a0f05000000000000000000000000000000000000000000000000000002172c42576c8197acc1d2bca7927d67523d281200091a2a3842464a4a4a4a5e73889db3c8ddd2bda8937d68534a4a4a4a4a4a4a4a423424120000041526333d404a4a4a4a4a4a4a4a4642382b1b09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c0e0b0801000000000000060c0e0b0801000000000000000000000000000000000000081d31445573899eb3c8dedcc7b19c867360544d4b464c4f534e42311e0b0005192b3b566c8196abbccfe3cfbcab9d8878645c4f4a433a474c55606b7f95a1b3c7dce8d2bda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d27120000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1c2e3e4a60728399a6b7c8d9e6dfdddfe4d1c0b59f8d7b655948362614010000000000000000000000091c2f4051667c91a4b5a99a846f5f4d3a291704000000000000000114263748596262626262626262626262626262626262626262677d92a1b3c7dce1cebdb39e8978625544311d1000000014293f54697e94a9c9dadfcab49f8a76614c362114010000000a192d3e4a5c645c504b3f362d20190e0400000000000000000000000000000000000000000000000001162b40566b8095abc0d4bea9947f69543f2a1400000c1a262e30353535485e73889db3c8ddd3bea9937e69543e353535353535352f24160600000007151d2b343b474c51524d4a43362f211b0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e192123201d1509000000000e1a2123201d140900000000000000000000000000000000000b20354b60758a9fb5cadfd6c0ab96816b5443363633363a3d3a31231301000b2034485971879cb1c9dadfcab59f8d7b65594a3e35302a3337444b60728499afc0d1e3d2bda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d271200000000000000000000000000000000000000000000000000000000000000000000000000000000000417293a4b5c697f94a1b3c4d4e1d4cac7cad4e3cfbcab9e8877625443301c110000000000000000000000001120354a6073869cb1b3a2927d675846331f1000000000000000081d31445570777777777777777777777777777777777777777777778499afc4d9ece0ccb9a79a8473604b3f2e1b08000012273c52677c91abbccfe2cebbaa917c675242311d150b0b0e1a27374a5c647970655d4e4a3d352b1f170c000000000000000000000000000000000000000000000000152a3f546a7f94a9bfd4bfaa957f6a55402a150000000913191b202033485d73889db2c8ddd6c1ab96816c563929211e212429271f1406000000000f202d3b484d596266676360544b3f3224140100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004141e2c3538353127190900000e1f2c3538353126190d000000000000000000000000000000000c21364b61768babbccfe3d3bea8937e69533625201f212428251e130500000d22374d62788ca4b6cae7d7c7ae99836f5d4b3b2d201c171f2731435464798ea2b4c8dcd2bda8937d68533e281300000000000000000000000000000000000000152a40556a7f95aabfd4e7d1bca7927c67523d271200000000000000000000000000000000000000000000000000000000000000000000000000000000010f1f334658647a8b9fb4bfd0dbcec3b7b2b7c3d4dac9b8a69a8472604b3f2e1c0c0000000000000000000000071c304354677d92a5b6b39d8876614c3e2e19090000000000000b20354b60748a8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c99a1b3c7dcf0e8d6c5b4a2957f6a5d4b37220d00000d22374c62778b9fb5cadfd8c8b09b8571604e3f31272120232c384555647a8b857b6f635b4d483c332a1c0c000000000000000000000000000000000000000000000013293e53687e93a8bdd3c0ab95806b56402b16000000000004060b1c31465c71869bb1c6dbd9c3ae99836e574638363336393e3b3224140200000a1a2d3e4a59626f777b7c7873655d4f42321f0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c181f313c494d4b44372715010d1d2c3d494e4b44372b1d120300000000000000000000000000000c21364b61768ba0b6daecd0bba6907b66513b26110a0c0f13110b0100000012283d52677d92a7c2d3e2cdbaa9907b66503f2e1d100704091525364a5c70859ab0c5dad2bda8937d68533e28130000000000000000000000000000000000000a1a2e3f556a7f95aabfd4e7d1bca7927c67523d2d18080000000000000000000000000000000000000000000000000000000000000000000000000000000f2031424c6176879daabbceddcebdb1a59da5b7c6d6d5c4b4a2947f6a5d4b3a2a180800000000000000000000001325364b6074879db2b8a697816c5c4b3727150100000000000b20354b60758aa0a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2afb3bfd0e3f6f3e3d1c0b49f8c7a644f3a250f00000b1f34485970859bb0c7d7ddc9b5a3937e685d4b44373635383c49566073859b9b8f83796d625a4c473a2a17040000000000000000000000000000000000000000000012273d52677c92a7bcd1c1ab96816c56412c1700000000000000051a2f455a6f849aafc4d9dec9b39e897661564e4b464b4e544f42321f0c00021528384a5c6478848c90918d877b69614f3d2d1a07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003111c2a33424e5b63605544311d12192b3b495b636055483c301e160a000000000000000000000000000c21364b61768ba0b6cbe0cfbaa5907a65503b251000000000000000000000152a3f546a7f94a9bfd4dfc9b49f8a76604b3621110000000008182d3d556a7f94aabfd4d2bda8937d68533e28130000000000000000000000000000000000021628384b5d6d8298adc2d8ead5c0ab95806b5b4a36261401000000000000000000000000000000000000000000000000000000000000000000000000000b1b2d3e4e606e8399a5b7c8d8d2c1b19f96879da8b9cce1d0c0b49f8c7b6558473625130000000000000000000000081d314455687e93a6b7b59f8d7a645544311d0e00000000000b20354b60758aa0b5b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7c4c7d0ddedffffefe2cebbaa9c87725d47321d080005182a3b546a7f94a9bacde1d2c1b49f8b7b6960554e4b4b4d515b63748399a3b0a1998c82786c615847331f0a0000000000000000000000000000000000000000000011263c51667b91a6bbd0c1ac97826c57422d170000000000000002172d42576c8297acc7d8e1ccb9a898827467636057616369604f3b271200091d324556647a8999a1a6a7a59d8d7f695b4a36210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011212f3a474c60687873604b402f1e26374859637873625a4d4032281b0a0000000000000000000000000c21364b61768ba0b6cbe0cfbaa5907a65503b251000000000000000000000162c41566b8196abc0d6dbc6b19c86715645321e09000000000011263b51667b90a6bbd0d2bda8937d68533e28130000000000000000000000000000000000081e324556657b8fa0b2c6daf4dfc9b49f8b79635443301c0d000000000000000000000000000000000000000000000000000000000000000000000000031629394a5c697e93a1b2c3d4d6c6b5a39681788a9eb3bdcee2cebbaa9d8876615443301c1000000000000000000000011426374b6074889db2bcab9c8673604b3c2b1905000000000b20354b60758aa0b5caccccccccccccccccccccccccccccccccccccd9dce3edfbfafafeebd9c8b49f89745f4a341f0a00000d22374d62778a9fb4c5d5e2cebaa99f8c7e746963606062666d788499a1b2bfb3ab9f988b8076614c37210c0000000000000000000000000000000000000000000012273c51677c91a6bcd1c1ac97816c57422c17000000000000000011273c51667c91a9bacee2d6c6b2a098877d78767476797e69543e2914000b20364b6074869ca7b3bfc3b6ab9f8b79634e39240e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2f404c58616e7e89806b5e4c3c2b3144556277888578675f4b453928160300000000000000000000000c21364b61768ba0b6cbe0cfbaa5907a65503b251000000000000000000000182e43586d8398adc2d8dac4af9a856f5a3828160300000000000f243a4f64798fa4b9ced2bda8937d68533e28130000000000000000000000000000000008182d3d4b6074869cb2becfe1f6e2cebaa99b8573604b3b2b190500000000000000000000000000000000000000000000000000000000000000000000010f1e324657647a8b9fb4bfcfe1cdb9a89b8574677d919fb1c2d2d9c8b7a6998372604a3e2e1c0c0000000000000000000d1d2e3f4b5c697e94a9c9b5a4947f695a48352010000000000b20354b60758aa0b5cadfe1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e5e5e5e5e5e5e5e5e5dec9b49f89745f4a341f0a00000b203448596b8095a7b8c9dad8c7baaa9f93867f797675787b828c9aa2b2bfcfc9bcb4a99f8a78634e38230e0000000000000000000000000000000000000000000013283d52687d92a7bdd2c0ab96816b56412c1600000000000000000c21364b61768a9fb4c7d7e4cfbeb2a59d928e8b8a8b8e8a75604a35200013283d52687d92a4b5c5d0d4c9baa999836e5939281603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006192c3c4c5e657683939f8d7c665a48373f4b6073849a9a897c6d605745321e0900000000000000000000000c21364b61768ba0b6cbe0cfbaa5907a65503b251000000000000000000000182e43586d8398adc2d8dac4af9a856f5a3828160300000000000f243a4f64798fa4b9ced2bda8937d68533e2813000000000000000000000000000000011426364a5b6b8095a4b6cadcecfdead8c7b4a3937e695948342012000000000000000000000000000000000000000000000000000000000000000000000f1f31414b6175869ca9bacdddcebeb49e8a79635f6d8197a4b5c7d7d4c4b3a1947f695c4b3a2917040000000000000005182a3b4b5d657a859bb0c6c2b49e8a78624d3f2e1b080000000b20354b60758aa0b5cad0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0c9b49f89745f4a341f0a000005182b3b4c6176899eabbccfe3d8c8bbb4a49c948e8b8a8d90989faab4c0cfddd5c5b5a395806b5b4935210c0000000000000000000000000000000000000000000014293e54697e93a9bed3c0aa95806b55402b1600000000000000000a1e3246576c8197a9bacde1dccfc3b6b2a7a3aa9faa9f8a75604a352000172d42576c8297acc2d2e4e7d8c7b29d88735746321e0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2035495a657c8899a1ab9e89786255444b5d6a8095a2a79e918175604b36210b00000000000000000000000c21364b61768ba0b6cbe0cfbaa5907a65503b251000000000000000000000162c41566b8196abc0d6dbc6b19c86715645321e09000000000011263b51667b90a6bbd0d2bda8937d68533e2813000000000000000000000000000000081c30435463798b9fb4c3d3e6fafff5e5d1c1b49e8a78624d41301c0c00000000000000000000000000000000000000000000000000000000000000000a1a2c3d4e606d8298a4b6c7d7d3c2b1a0927d675b4b6075869ca9bacde1d0bfb49f8b7a645846331f14010000000000000b1f344859657b8b9ba3b5c9cdb9a899836e5d4b37220a0000000b20354b60758aa0b5bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb49f89745f4a341f0a0000000d1f334658677c8d9fb5becfd9d8cec2b6b1a9a3aa9faaa6adb4bbc8d0ded4c5b8a79b8575604b3d2c1a0600000000000000000000000000000000000000000000152a40556a7f95aabfd4bfaa947f6a553f2a150000000000000000031629394d62778a9fb4bdcfd9e1d3cac7bcc8bbb4bb9f8a75604a3520001a30455a6f859aafc4daeff5dfcbb7a58b76614b36210c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d23384d62788a9da6b3b8a79b8574604b59657b8d9fb4b8b39f96816c57412c1702000000000000000000000c21364b61768ba0b6cbe0cfbaa5907a65503b251000000000000000000000152a3f546a7f94a9bfd4dfc9b49f8a76604b3621110000000008182d3e556a7f94aabfd4d2bda8937d68533e2813000000000000000000000000000005192b3c4b6073859baabbcee1f1f3e8eaefe1ccb9a899836e5f4d3a29170400000000000000000000000000000000000000000000000000000000000003162838495b687d92a0b2c3d3d7c7b6a497826d5f4d455663798a9fb4becfe2cebbaa9d8776614c4231200f0000000000000d22374c6277899ea9b5c1d2d7c6b3a18f7a644f3828160200000b20354b60758aa0a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a59f89745f4a341f0a0000000417293a4d5f6a7f94a0b4bcc9d5e1d3cac7bec8bbb4bbc8c2caced9ddcfc3b6a69e8978625645321f0e0000000000000000000000000000000000000000000001162c41566b8196abc0d3bda8937e68533e29130000000000000000000b20344859687e939fb4bcc9d2dedfdcd2d8cec9b59f8a75604a352000172c42576c8197acc2d2e3e7d7c7b29d88725746321e0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2035495a6a8095a2b4c5b4a396806b5e6177889dabbcbbaa9d8776614c37210c0000000000000000060c0e0e21364b61768ba0b6cbe0cfbaa5907a65503b25100e0e0e0d0c060000000012273d52677d92a7c2d3e2cdbaa9907b66503f2e1d1007040a1525364a5c70859ab0c5dad2bda8937d68533e281300000000000000000000000000000c2035485a697e93a3b5c8d8e9e1ded3d5dde8d6c6b3a1917c675847331f110000000000000000000000000000000000000000000000000000000000000e1e32455663798a9fb4becfe1cdbaa99c8675614b41384a5b687e93a0b2c3d3d8c8b7a599836e604e3e2d1b0b0000000005182b3b566c8196a7b9c7d2dfe4d0bfae99836e5645321e0900000b20354b60748a909090909090909090909090909090909090909090909090909090909090909090908b745f4a341f0a000000000b1b304050616d81949fabb8c5ccd6dfdcd4d8cecaced8d7dfded2c9beb2a59d887a645a48382816000000000000000000000000000000000000000000000002182d42576d8297acc2d1bba6917c66513c271100000000000000000005182b3b4e606c81959fabb5c2c8ccd5d1d2d1d7b59f8a75604a35200013283d52687d92a3b5c5d0d3c9baa998836e5939281603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006192c3c4b6073849aa7b8c1b09e917c6672849aa6b7c0b49f8c7b655847331f0a000000000000000e1920232323364b61768ba0b6cbe0cfbaa5907a65503b25232323232320190e0000000d22374d62788ca4b6c9ded7c7ae99846f5d4b3c2d201c171f2731435464798ea2b4c8ddd2bda8937d68533e2813000000000000000000000000000c1c30414d62788a9eb4c1d1e4d7cdc9bdc1cad8e4d0bfb39d8876614c3f2e1a0a000000000000000000000000000000000000000000000000000000000e1e30414b6075869ca8bacdcacfbeb49f8b79635746322d3d4e606e8298a5b6c8d8d4c3b2a1937e685c4a392916030000000b2034485973899eb3c5d6e5efeddfcab49f8b75604b36210b00000b20354a60727b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b65503b2610000000000000122233434a60727f8d9ea7b4b9c6cacfd9d6d8d9d8d7d7cdc9c1b5b0a0988779645c4a3c2b1a0a000000000000000000000000000000000000000000000004192e43596e8398aec3d8c8a48f7a644f3a250f000000000000000000000d1d31424b60727f8c9ba3aeb3b8c5bcbdbbc7ba9f8a75604a3520000b20364b6074869ba7b3bfc3b6ab9f8b79634e39230e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1d3144556278899eb3bdbcb39e89787f94a1b3c4b4a2957f6a5d4b3a2a17040000000000000e1e2c35383838384b61768ba0b6cbe0cfbaa5907a65503b383838383838352c1e0e00000b2034485971869cb1c9d9dbc7b3a1907b655a4a3e35302a3338454b6072849aafc0d1e4d2bda8937d68533e281300000000000000000000000004172a3a4d5f6f8399a8b9cddfd7c6b9b4a8adbacadce0cbb8a697826d5d4b38281602000000000000000000000000000000000000000000000000000006192c3c4d5f6c8197a4b5b5b5b5c3b2a0937e685b4a39281f31424c6176879daabbb5b5b5bfb49f8b7a645746321e0a0000000d22374c62778ca7b8cce4f4fff7e2cebbaa8e79644e39240f0000071c304354606666666666666666666666666666666666666666666666666666666666666666666666655d4c38230e00000000000004151c304354606a7c89959ea8b0b4bcc9c1c3c4c3c1c6bab4ada39b908276635b4a3e2d1e0e000000000000000000000000000000000000000000000000011426365a6f849aafc4cebbaa8d78624d38230d0000000000000000000000141c304354606a7b8690989ea7a5a7a7a6a5a99f8a75604a352000081d31445563798999a1a5a6a49c8d7e695b4936210c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001142637485a667c919fb0c1b8a79c878c9fb4bfb8a79a8472604b3f2e1c0c00000000000006192c3c494d4e4e4e4e61768ba0b6cbe0cfbaa5907a65504e4e4e4e4e4e4d493c2c19060005192b3b566b8196abbccfe3d0bfb39d8878645c4f4a433a474c56606b7f95a2b3c7dee8d2bda8937d68533e28130000000000000000000000000a1f334758677d91a1b3c6d6e1cdb9a89e939cadbecfe4d5c4b19f8f7b655645321e0f00000000000000000000000000000000000000000000000000000c2035495a677d919f9f9f9f9f9f9fa598836e604e3d2d1b131e334657647a8b9f9f9f9f9f9f9fa99c8675614b36210c0000000f24394e64798ea3c2d2e5f8fffae7d4c4a5907b66503b2611000000132536434a5050505050505050505050505050505050505050505050505050505050505050505050504c3f2f1c090000000000000000132536434a5e66768089949b9fabaaacaeafadaca9a89f9890857b6d6157493d2d200f00000000000000000000000000000000000000000000000000081c30435471879cb1c6cab49f8a75604b36200b000000000000000000000001142636434b5d65717b83898e90929291908e8984705b45301b00021527374a5b6377838c90918d877b69604f3d2c1a06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000509192b3c4c5e6c8196a3b5c5b6a49c9faabbbcab9e8977625443302111070000000000000c2035495a636363636363768ba0b6cbe0cfbaa5907a6563636363636363625a4935200c00000e23384e63798c9fb4c9dadfcbb7a69d877a6d6460545b5861687480959dafc0d0e3e8d2bda8937d68533e281300000000000000000000000a1a2f3f4c6176889eb3bfd0e4d2c2b49e8a7e93a0b2c6d6e2cebdb29c8674604b3d2d1909000000000000000000000000000000000000000000000000000e23384d6378898a8a8a8a8a8a8a8a8a8776614c42311f0f031729394a5c697f8a8a8a8a8a8a8a8a8a8a826d58432e180300000c22374c61778ca3b5c9deedf5eedfcbb7a68e79634e39230e00000008182530353b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b382f211100000000000000000008182530404c58616a767f858b919496989a9897938f89827b71665e4c46392c1f0f01000000000000000000000000000000000000000000000000000b20354b60758a9fb4c9c6b19c87715544311d08000000000000000000000000081826303f4b505e666e74797b7c7d7c7a7975706655422d19000009192d3d4a59626f777b7c7872655d4f42321f0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1820222a34404b6074859ba8b9c2b6b1b4bbc8b59f8d7c665948362d24221b1006000000000e23384d637878787878787a8ea4b9cee3d2bda7927e787878787878787878624d38230d00000c2135495b6e8398abbccfe3d4c4b7a69d8c827a74717072777d87969eafbcccdeeee8d2bda8937d68533e281300000000000000000000031628384b5d6d8297a6b8cbdddac9b5a4947f6e8398a8b9cce1decab6a495806b5b4a372614010000000000000000000000000000000000000000000000000c2035495a63747575757575757575757261584633241401000b1b2d3e4f6169757575757575757575756d64533f2b160100000a1f34475971869bb1bfcfdee1ded0bfb29d8873604a35200b0000000008131c20262626262626262626262626262626262626262626262626262626262626262626262626231c11030000000000000000000008131c2f3a464c58616a70777c7f81838483827e7a756d665e504c4033291b0f0100000000000000000000000000000000000000000000000000000d23384d62788da9bacdc3ae98836e59372715020000000000000000000000000008141c2e37404c51546063656768666563605555483825120000000f1f2d3b484c58616667625a4f4b3f32241401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009181d2b34373b474c53586378899eb4c9cac7cacec0ab96816b5e564e4a3e39362d211a0f0100001e33485e73888d8d8d8d8d8e98a9bdd1e6d5c0ad9c928d8d8d8d8d8d8d8d87725d47321d0000061a2c3d4e647a8d9fb5c1d2e2d4c4b7ab9f978f898685878b929ca5b0bccce0e8f4e8d2bda8937d68533e281300000000000000000000091e324556657b909fb1c4d5e3cfbcab9c86736277899eb3c1d2e6d3c3b49f8c79635544311d0e00000000000000000000000000000000000000000000000006192c3c494d5e6060606060606060605d4c463a291706000000102032434f546060606060606060606058534635231000000004182a3a52677d92a1b2bec9ccc9c0b3a1927d685443301c07000000000000070b1111111111111111111111111111111111111111111111111111111111111111111111100e090000000000000000000000000000111b29333a474c555861676a6c6e6f6e6c69646056504c40382f1e170b0000000000000000000000000000000000000000000000000000000011263b50667b90a5c7d7bfaa95806a55402b1500000000000000000000000000000001111c232f3836434b4e50525251504e4b4437382a1a08000000010f1d2b343a474c50514d483c372e2114060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061828353b484d535961686f767e869cb1c7dcdcdfd6c0ab96807a726b645c564e4a3e362c1f0f00001e33485e73889da3a3a3a3a4a9b6c6d9ecdccabaada7a3a3a3a3a3a3a39c87725d47321d0000000f22364a5c6b8096a3b5c4d4e1d4c9bcb4aca79e9c9b9d9faab2b6c3c5c9ccd6e4e8d2bda8937d68533e281300000000000000000009192d3d4b6075879cb2becee2d5c5b59f8d7a6459697e93a3b5c8d9e2cebbaa9b8573604b3c2b19050000000000000000000000000000000000000000000000000e1e2c3538494a4a4a4a4a4a4a4a4a483633291b0b00000000021425323b3f4a4a4a4a4a4a4a4a4a4a433f35281806000000000c20354a60728398a0aeb3b9b4afa299836f604e36251300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b171f2a33373a474c525557595a5857544f4b4538382f231c11030000000000000000000000000000000000000000000000000000000000152a3f546a7f94a9bfd3c3a6917c67513c2712000000000000000000000000000000000008121d24263035393b3d3d3c3b39353127191a0c0000000000000d18202a33373b3c38352b231c1103000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000102335465359626970777e848b929ca4b6cadef1f4d8c4b09e968e878079726b645c4e493d2c1a06001e33485e73889db3b8b8b8b9bdc6d4e4f6e8d8cac0bdb8b8b8b8b8b8b29c87725d47321d000000071b2d3e4b6074859ba6b6c3d2e1d9cfcac5b9b3b1b0b2b4bbc8c0b4afb3b9c5d6e8d2bda8937d68533e28130000000000000000011426374a5c6b8095a5b6cadce0cbb8a697816c5d4b6073859baabbcee2d8c8b5a3937e695a48352013000000000000000000000000000000000000000000000000000e1920233435353535353535353532211f170b00000000000006141f2729353535353535353535352e2b23180a0000000000071c30435460758290999ea89f9a928476614c41311808000000000000000000000000000000000000050b0d131517191a191816120e0c06000000000000000000000000000000000000000000000000000000000000040c171f212a33373c3f41434543423e3a363228231c110900000000000000000000000000000000000000000000000000000000000005182b3b596e8399aec3cab6a58c77624c37220d000000000000000000000000000000000000000908141c2024262728272524201d1509000000000000000000050c171f2126272220190e080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b3f53646d777e858b939a9faab1b6c2d3e4efebe3cdbcb0aba59c958e87807972635b4936210c001e33485e73889db3c8cdcdced1d9e4f2fff6e8dcd5d2cdcdcdcdcdc7b29c87725d47321d00000000101d3144556378889da5b5c1ccd6dfdfd6ccc9c6c5c7cacec1b4a29a9ea7b9cce0d2bda8937d68533e28130000000000000000081d31445564798c9fb4c3d3e5d1c0b39e8876614c4354647a8c9fb4c4d4e6d2c1b49e8a78624d41301c0c00000000000000000000000000000000000000000000000000060c0e1f2020202020202020201d0c0a040000000000000000030c12142020202020202020202018161006000000000000001325364557606e7b84898b89857d7261584733231300000000000000000000000000000000060c0e192022282b2c2e2f2f2d2b2723211a0f0c070000000000000000000000000000000000000000000000000000000000040a0c171f21272a2c2e2f2e2d2925211e160a0900000000000000000000000000000000000000000000000000000000000000000b2034485973889db2c8c7b29d8772594834200b00000000000000000000000000000000000000000001080b0e10121311100e0b0801000000000000000000000000040a0c11120d0b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d43586d828d939a9fabafb4bbc8c6c5c8d1dfd9cfcac2c9c3b6b2aba59c958e8779634e39230e001e33485e73889db3c8cacacbcdd4dfedfdf4e6dad2cfcacacacacac7b29c87725d47321d0000000002152737495a6378879ba3b3b9c6cad3d5d8d9d7d6cdc9bcb4a39a85899eb3c9cacabda8937d68533e28130000000000000005192b3c4b6073859baabbcee1d8c7b4a2927d675847364a5c6c8196a6b7cbdfe1cdb9a899846f5f4d3a2a1704000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008182839454b5e666f7476746f676054473a2a17050000000000000000000000000000060e1920232b34383d404244454443403d38352c24211a0f07000000000000000000000000000000000000000000000000000000000000040a0c121517191a1917140f0b0903000000000000000000000000000000000000000000000000000000000000000000000d22374d62778ca6b7cbc9ad98826d583b2b180500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abafb4bcc9c5c2b5b1b0b4c0d1c9bcb4adb4b9c6c7c3b6b2ab9f8976604b36210b001e33485e73889db3b5b5b5b6b9c2cfdff1e6d6c8bebab5b5b5b5b5b5b29c87725d47321d000000000009192c3c495a637785939ea8b2b6c3c0c3c4c1c6b9b4ab9f968576889eb3b5b5b5b5a8937d68533e2813000000000000000c2035485a697e94a3b5c8d8e2cebaa99a84705f4d3a2d3e4b6175889db2bfd0e4d7c6b3a1927d675847331f110000000000000000000000000000000000000000000000000000000000000000000000000811181a2020202020202020200f0d0700000000000000000000000000000000000000000000000a1b2832404c51595660565a524a43362a1c0c00000000000000000000000000000e19212c35383c484d525557595a595855524e493d39362d221b1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013253652677c92a7c4cfbcab927d68533d2813000000000000030a0c141414141414141414141414141414141414140e0c06000000000000000a101212121212100a0a0c1212120c09030000000000000000000002090b0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0b0902000000000f243a4f64798fa6b7c5c1b5b0a9a39b9ba2b4c8bcab9f989ea8adb3b9c5c7ae98836e5645321e09001e33485e73889d9f9f9f9fa0a5b1c2d4e8dac8b7aba59f9f9f9f9f9f9f9c87725d47321d0000000000000e1e2c3c495962737e89959ca5a9abadafaca9a89e978c807473889e9f9f9f9f9f9f937d68533e28130000000000000c1c30414d62788a9eb4c1d2e6d4c3b49f8b79634e41311e334657677c91a1b3c6d7e4d0bfb39e8876614c3f2f1b0a000000000000000000000000000000000000000000000000000000000000000000000b19252c2f35353535353535353524221b1002000000000000000000000000000000000000000000000a161e2f383b38454b45383d353025180c0000000000000000000000000003141e2c353c494d565a62686a6c6e6f6e6d6b67635b574e4a3d362d1e160a00000000000000000000061016192020202020202020201d0b0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c3043546d8298adc2cab59f8b77624c37220d00000000000b171e212929292929292929292929292929292929292923211a0e0000000004121d242727272727241d1f22272727211e160b00000000000000000a151d202323232323232323232323232323232323232323232323232323232323211e160a0000000b20354a6074889db2b0a9a39b948d86849bb0c5b49f8c828991979ea7acb3a9927c675238281603001e33485e73888a8a8a8a8a8b93a5b9cde2d2beab99908a8a8a8a8a8a8a8a87725d47321d000000000000000e1e2c3b485560697780878e9396989997949189827a6b6073898a8a8a8a8a8a8a8a7e68533e2813000000000004172a3a4d5f6f8499a8b9cddfdfcab6a595806b5b4935231729394d5f6f8399a8bacde1e0cbb8a698826d5d4c3928160300000000000000000000000000000000000000000000000000000000000000000819293741444a4a4a4a4a4a4a4a4a39362d2010000000000000000000000000000000000000000000000003121d2426283236322828201c1308000000000000000000000000000b161e323c494d5a636b71777d808183848482807c78726c635b4f4a3e32281b0e00000000000000000a18232b2e35353535353535353532201d150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354a6074889eb3c8c5b09b85705948341f0b000000000b1b2933363f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f38352c1f0e000000122230393c3d3d3d3c393034373d3d3d3632281b0b0000000000000a1a28323638383838383838383838383838383838383838383838383838383838383632281a0a0000071c3043546c81969f9a938d857f78717f94a9bfb49f8b75757b828990979e9f8a76614c36210c00001c3045586a737575757575758ba0b6cbe0cfbaa5907b7575757575757575726857442f1b00000000000000000e1d2b37444b59626a72797e808384827f7c766d645c4b6b73757575757575757568604e3a261100000000000a1f334758677d92a1b3c6d7e4cfbeb29d8775604b3d2c1a0b1b30404d62788a9fb4c2d2e7d5c5b2a0907b655745321e10000000000000000000000000000000000000000000000000000000000000000011253747545a6060606060606060604f4a3e2d1b07000000000000000000000000000000000000000000000000090f11161e211e16120b0700000000000000000000000000000b1b2932434f5b636d7881878d929597999a999895928d8781796f645c4b45392c1e0f0100000000000618283640434a4a4a4a4a4a4a4a4a473631271909000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f24394f64798ea6b8cbc1aa947f6a553b2a180500000003172939464c545454545454545454545454545454545454544e493d2c1a06000a1d30404d51525252514d41474c5252524b46392816030000000002152838454b4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4b4538281602000013253650657b908b857e787069636a7f94a9bfb49f8a7560666d757b828890836f5746331e0a000015293b4c585e6060606061768ba0b6cbe0cfbaa5907a65606060606060605d574a3a28140000000000000000000d1926313b484c555c64696b6e6f6c6a6761574f4a4c595e6060606060606060534e42311f0b000000000a1b2f3f4c6176889eb3bfd0e4d6c6b2a0907c665645321f0f00122035485a697f94a4b5c9dae3cebeb29d8775604b3e2d190900000000000000000000000000000000000000000000000000000000000003182c4154656f757575757575757575705c4a36220d00000000000000000000000000000000000000000000000000000002090b0902000000000000000000000000000000000a1a2939464b616978828b969ca4a7aaacaeafaeadaaa7a59d968e847a6c6057493c2d1f0f00000000001023364653586060606060606060605d4b44372715020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071b2d3e556b8095aac4c9b5a38e79634e39240e000000000a1e3346576169696969696969696969696969696969696969635b4935210c001024394d5f67676767675f4d5961676767615746321e0900000000091d324556606363636363636363636363636363636363636363636363636363636363605645321e0900000b20354b60737d777069625a54546a7f94a9bfb49f8a755f515560666d747a7b644f3929170300000c1e2e3b45484a4a4a4b61768ba0b6cbe0cfbaa5907a65504a4a4a4a4a4a47443a2c1c0b0000000000000000000009141d2a34373e4a4f5456585a5754514b4639363c45494a4a4a4a4a4a4a4a3e3a31241402000000031628394c5d6d8298a6b8cbdde1ccb9a898836e5e4c382816010005192b3c4b6073869cabbccfe3dfcab6a596806b5c4a372715010000000000000000000000000000000000000000000000000000000000051a2f445a6f838a8a8a8a8a8a8a8a8a7a644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081828384657616e7f8b989faab1b6c2bfc1c3c4c3c2c0c3b7b2aca29a8d8175635b4a3d2d1d0d00000002162b4053646e75757575757575757572605544311d0b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c72879cb2c7c8b09b86715b4a36210c000000000c21364c61767f7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7f79634e38230e0012273c51677d7c7c7c7c675d61777d7c7d75614b372715020000000b20364b6075787878787878787878787878787878787878787878787878787878787874604b36210b0000081d31445560686259544d483c546a7f94a9bfb49f8a755f4a444b50556065645d4b371b0b00000000101e2930333535364b61768ba0b6cbe0cfbaa5907a65503b3535353535322f281c0e000000000000000000000000010d181f222d36393e414344423f3c36322822293133353535353535353528261f140600000000091e324557657b90a0b2c5d5e7d2c1b49e8a77624d402f1a0a0000000e1d314455647a8d9fb5c4d5e6d3c3b49f8c7a645544311d0e0000000000000000000000000000000000000000000000000000000000051a2f445a6f84999f9f9f9f9f9f9f8e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001325364556617582949faab4bbc8cad3d5d6d8d9d9d7d5d4cac7c0b4ab9f978679635b4a3c2b1909000003192e43586e838a8a8a8a8a8a8a8a8a8674604b3a291704000000000000000000000000000000000000000000000000000000000000000000000000000000000000021628384f647a8fa5b6cabbaa937e69543d2d1a07000000000d22384d62788d9494949494949494949494949494949494917c67513c271200172c42576c819292928f7b6574859292927e695544311d080000000f243a4f647a8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d7b654f3a2510000001142637444b534c483b38343f546a7f94a9bfb49f8a755f4a313637444b504f4b3f2e1b0000000000000c151c1e2021364b61768ba0b6cbe0cfbaa5907a65503b25202020201d1b140b000000000000000000000000000000050b101b2224292b2e2f2d2a27211e160b161c1e202020202020202013110b020000000009192d3e4b6075879db2beced0d9c9b5a3937e69594834221200000000011527374b5c6c8197a6b8cbd0d0cebbaa9b8573604b3c2c190600000000000000000000000000000000000000000000000000000000051a2f445a6f8499afb5b5b5b5b5a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c30435460748598a0b4bbc8ced9ddd9cfcac7c5c7caced8dddcd0c9bcb5a49c8879635a483726140100000d23384d62788b9f9f9f9f9f9f9fa4937e695846331f0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e3245566c8196abc3c9b49f8b77614c37220f00000000000d22384d62778da2a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a6917c67513c2712000e23384d63788c9fa79983758298a3a79d8774604b3620120000000f243a4f64798fa2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a28f7a654f3a251000000009192631353e37342a222a3f546a7f94a9bfb49f8a755f4a35202631353b3a372e2010000000000000000107090c21364b61768ba0b6cbd3cfbaa5907a65503b25100b0b0b08060000000000000000000000000000000000000000070d0f1416191a1715120c0903000207090b0b0b0b0b0b0b0b00000000000000011426374a5c6b8096a5b6bbbbbbbbbcab9b8573604b3b2b1804000000000009192e3e4c6176889eb3c0bbbbbbc8b5a3947f695a4935200a00000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4cacacab9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006192c3c4a60728298a3b2beced8d4cac7c9bcb4b2b0b2b4bbc8c8cbd4dacfc2b5a69d8878625544311d0800000b2035495a6b8096a7b8b5b5b5c3b39e8876614c3c2b190500000000000000000000000000000000000000000000000000000000000000000000000000000000001325364b6075889eb3c8c1ae99836e5947341f0a00000000000d22384d62778da2b7bebebebebebebebebebebebebebca6917c67513c2712000c2035495a6e8398ae9f8d8297a0b3b7a5927d6752402f1c0900000f243a4f64798fa4b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8a48f7a654f3a25100000000009141d2028221f18152a3f546a7f94a9bbb49f8a755f4a3520141d202525221b1002000000000000000000000c21364b61768ba0b6bebebebaa5907a65503b2510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d314455647a8c9fa5a5a5a5a5a5a59f8c7a645544311d0d00000000000000101f334758677d92a2a5a5a5a5a5a5a59f8a78624d39281603000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9dfceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2035495a6a8095a0b2c1cfe2cdc3b7b2a9ab9f9d9b9d9faaabb2b7c4ced9cdc1b5a69b8675604b35200b000006192b3c4c6176899eb3c3d3caccb8a796806b5a4835201000000000000000000000000000000000000000000000000000000000000000000000000000000000071c304354687d93a6b8c9b5a38f7a65503a2a180400000000000d22384d62778da2b7ccd3d3d3d3d3d3d3d3d3d3d3d1bca6917c67513c27120006192c3c4f647a8ea2ab9f97a0a69da6b19c86715e4c38231000000f243a4f64798fa4b9cacacacacacacacacacacacacacacacacacacacacacacabaa48f7a654f3a2510000000000001080b130d0b05152a3f546a7f94a5a5a59f8a755f4a352001080b100f0d080000000000000000000000000c21364b61768ba0a9a9a9a9a9a5907a65503b25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758690909090909090909090816c5c4b37261400000000000000000417293a4d5f6f8490909090909090909090846f5745321e09000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071a2d3e4d63788b9fb4becfd8cabcb0a59d948e8a8885878a8e959da6b4bbc8bcb0a39b897d675544311d080000000e1f334658697e93a5b6cadfd5c5b49f8b78624d3e2e1b070000000000000000000000000000000000000000000000000000000000000000000000000000000b20354a6073869cb1c4c3b09b85715d4b371c0c0000000000000d22384d62778da2b7ccd5d5d5d5d5d5d5d5d5d5d5d1bca6917c67513c271200000e22364a5c6f849aafb5ada199889daba4907b66503e2e1b07000f243a4f64798fa4b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a48f7a654f3a2510000000000000000000000000152a3f546a7f90909090908c755f4a35200a0000000000000000000000000000000000000c21364b61768b94949494949494907b65503b25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c21364c61767b7b7b7b7b7b7b7b7b7b7b75614c3e2e19090000000000000000000c1c30414c62777b7b7b7b7b7b7b7b7b7b7c75604b36210b000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d21364a5c6e8398aabbcedbcabaad9e96877f787572707275798088959faab8b39e968578675f4d372614010000000417293a4b6074879cb2c0d1e2cdbaa998826d5c4a3622120000000000000000000000000000000000000000000000000000000000000000000000000000071b2d3e51667b90a4b6cab7a5927d67523f2e1c000000000000000d22384d62778da2b7c0c0c0c0c0c0c0c0c0c0c0c0c0bca6917c67513c27120000071b2d3e50667b90a4afa49983788c9faf9a84705c4a36220d000f243a4f64798f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f8f7a654f3a25100000000000000000000000000d23384d62787b7b7b7b7b7b65503b2610000000000000000000000000000000000000000b20364b60747f7e7e7e7e7e7e7e7f78624d38220d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f3346586166666666666666666666666157463320100000000000000000000000131f344859626666666666666666666666605745321e09000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f24394e64798c9fb5c8d8cebdad9c9280756a6360565b5460636b74808c9ea79e918074625a4d4030190900000000000c1d314455667c91a2b4c9dad7c7b59f8d7a644f40301909000000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c6f849aafc2c3b29d8774604b362011000000000000000d22384d62778da2abababababababababababababababa6917c67513c27120000001023384c5e71869a9a9a86766e83989a9a8f7a644f3a240f000f243a4f647a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7b654f3a25100000000000000000000000000b2035495a626666666666655e4c38230e00000000000000000000000000000000000000081d31445560696969696969696969625a4835200b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000417293a464c50505050505050505050504c4639291702000000000000000000000005182a3b484c50505050505050505050504b4539281603000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000006192c3c566b8096abbccfd7c6b19f927e6b60564e4b4538434b4e55606a7b8a9a897c6b6055493c302212000000000000021527374d5e70859aabbccfe3cfbcab9a85705e4c37271502000000000000000000000000000000000000000000000000000000000000000000000005192b3b4f64798ea2b4bdb6a5937d685544311d08000000000000000d22384d62788d9595959595959595959595959595959595917c67513c2712000000091c2f4051667c8484847863647a848484847f69543f2914000d22374b5c647575757575757575757575757575757575757575757575757575757575655d4b37220e00000000000000000000000006192b3c494d5050505050504c402f1c090000000000000000000000000000000000000002152737444b5454545454545454544d483c2b1905000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1c2933363b3b3b3b3b3b3b3b3b3b3b3633291b0b000000000000000000000000000d1d2a34373b3b3b3b3b3b3b3b3b3b3b3632281b0a00000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2035495a72879cb1c9dacdbaa897816c604b4538393939393937444b5d667c8578665e4b443738352c1e0e000000000000091930404f647a8d9fb5c7d7dac9b4a2917c665544311d0b00000000000000000000000000000000000000000000000000000000000000000000000b203448596d8298a8a8a8a89d8774604b37271502000000000000000c21364c61768080808080808080808080808080808080808079634e39240e000000001124384c5e666f6f6f635a5c646f6f6f6f69614f3b271200071b2e3e4b4f60606060606060606060606060606060606060606060606060606060604f4b3f2e1b08000000000000000000000000000e1e2b35383b3b3b3b3b3b382f211100000000000000000000000000000000000000000009192731363f3f3f3f3f3f3f3f3f38352b1e0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c171f212626262626262626262626211e170b0000000000000000000000000000000d181f222626262626262626262626211e160a0000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e23384d63788da4b6cadec9b49f8a77614e4e4e4e4e4e4e4e4e4e4e4e4e5e6670625a4e4e4e4e4d493c2c19060000000000001222364a5c6e8298a9bacde2d1c0b29c8774604b3a291704000000000000000000000000000000000000000000000000000000000000000000000d22374d62778b9393939393927d67554431190900000000000000000a1f334658616b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b635b4a36210c00000000091d2f404c515a5a5a4d494a4f5a5a5a5a544f43321f0c000010202e373a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a3a372e21100000000000000000000000000000000e192023262626262626231c11030000000000000000000000000000000000000000000009151d202929292929292929292220190e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c11111111111111111111110c0a030000000000000000000000000000000000050b0d11111111111111111111110b0903000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000012283d52677d92a7c2d3d8c3ad98836e6363636363636363636363636363636363636363636363625a4935200c000000000000071b2e3e4d62788b9fb4c5d5decab6a4937e695846331f0e000000000000000000000000000000000000000000000000000000000000000000000e23394e63797e7d7d7d7d7d7d73604b3727150000000000000000000417293a464c565656565656565656565656565656565656564e4a3d2d1a07000000000012222f383c45454538353639454545453f3b32251403000002101b2224353535353535353535353535353535353535353535353535353535353525221b100200000000000000000000000000000000060b0d1111111111100e090000000000000000000000000000000000000000000000000002080b1414141414141414140d0b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000142a3f54697f94a9bed4d5c0ab968079787878787878787878787878787878787878787878787878624d38230d00000000000000102035485a6b8096a7b8cce0d3c3b39e8976614c3c2b19060000000000000000000000000000000000000000000000000000000000000000000c2136495b6368686868686868605544311909000000000000000000000c1c2933364040404040404040404040404040404040404039362d1f0f00000000000004121d24262f2f2f232022242f2f2f2f29271f14060000000000070d0f2020202020202020202020202020202020202020202020202020202020100e080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d13152020202020202015120c030000000b151b1d202020202020200c0b040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000162c41566b8096abc0d6d8c4b09e968e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e85715c46311c0000000000000006192b3c4c6176899eb3c2d3e0ccb8a796806b5a48352010000000000000000000000000000000000000000000000000000000000000000000061a2c3d494e535353535353534b443726140000000000000000000000000c171f212b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b24211a0f010000000000000000090f111a1a1a0e0c0d0f1a1a1a1a14120c030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b0f1416181a1a1816140f0b0801000000000000000000000000000000000000000000000000000000000000080e10202020202020202020110f0900000000000000000000000000000001080b1d202020202020202019171107000000000000000000000000000000000000071520282a353535353535352a27201507000f1d28303235353535353535221f180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000182e43586d8298adc2d8dfcdbcb0aba3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a39c87725d47321d00000000000000000e1f334658697e93a4b6caded5c5b49f8b78624d3e2e1b070000000000000000000000000000000000000000000000000000000000000000000f1f2c36393e3e3e3e3e3e3e353126190900000000000000000000000000040a0c161616161616161616161616161616161616160e0c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000908141c2024292c2d2f2f2d2b2924201c140808000000000000000000000000000000000000000000000000000003111c232535353535353535353526241d120400000000000000000000000009141d203335353535353535352e2c24180a00000000000000000000000000000000031525333c3f4a4a4a4a4a4a4a3f3c3225150b1d2d3a44484a4a4a4a4a4a4a37342a1d0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000182e43586d8298adc2d8ebdacdc4c0b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b29d88735d48331e00000000000000000417293a4b6074869cb1c0d1e2cdbaa998826d5c4a362212000000000000000000000000000000000000000000000000000000000000000000010f1a212328282828282828201d1409000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c11131517191a1917151412100c0a040000000000000000000000000000000000000000000000000000000000000000000009111c232630353a3f4143444442413e39353026231c110900000000000000000000000000000000000000000000000011212f373b4a4a4a4a4a4a4a4a4a3b382f221200000000000000000000000919263135484a4a4a4a4a4a4a4a4440362818000000000000000000000000000000000d203343505560606060606060544f43322015283a4b585d6060606060605f5d473b2a18040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000162c41566b8096abc0d6ebe1d3cac7b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8c1c4cecdcdcdc7b29d87725d48331d0000000000000000000b1d314455667c91a2b4c9dad7c7b59f8d7a644f4030190900000000000000000000000000000000000000000000000000000000000000000000060c0e131313131313130b080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d0f171f2126282a2c2e2f2e2c2b292725211f17130d0b050000000000000000000000000000000000000000000000000000000003121d242f3836434b4f5456585a595856544f4b4336372e241d1203000000000000000000000000000000000000000000081c2f3f4b50606060606060606060514c402f1d0900000000000000000001142637444b5d606060606060606059534636180800000000000000000000000000000013283c50616a757575757575756a614f3c270d3044586972757575757575756f5947341f0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000142a3f54697f94a9c9dae6d3c3b6b2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2acb1bdcee0dbc5b09b85705b46311b000000000000000000021527374c5e70849aabbccfe3cfbcab9a85705e4d37271502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f1a21242a33373b3d3f4143454342403e3d3a36332928221f180d00000000000000000000000000000000000000000000000000000b171e30393f4c50546064696b6d6f6f6d6b69646054504b3f382f1e160b00000000000000000000000000000000000000000e23374b5d65757575757575757575665e4c38240e000000000000000000081d314455607275757575757575756e6453362513000000000000000000000000000000152a3f556a7f8a8a8a8a8a8a8a7f6a543b2b1832485d72878a8a8a8a8a8a8c77614c37220c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273d52677d92abbccfdfcab6a59c8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d979fb1c4d9d9c3ae99836e59442f1900000000000000000000091930404f647a8d9fb5c7d7dac9b4a2917c665544311d0c00000000000000000000000000000000000000000000000000000000000000000812181a1d1d1d1d1d1d1d1d1d1d1d1d1d1d0e0c070000000000000000000000000000000000000000040e14162020200d0b05000000000000000000000000000000000000000000000000000000000000000008131c202d36393a474c51535557595a5957555352504c463a3d37342a1d150700000000000000000000000000000000000000000000010f1b2933404c515d656e74797e8182848482807e79746e655d514c4032281b0f0100000000000000000000000000000000000010253b50657b8a8a8a8a8a8a8a8a8a7c66513c2c190600000000000000000b20354b6073878a8a8a8a8a8a8a8a836e5443301c0700000000000000000000000000000e23394e63798ea59f9f9f9f9b8570594834202c41566b81969f9f9f9fab927d68533929160300000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374c62778b9fb5cadcc7b29c877878787878787878787878787878788197acc1d6dac9ac97826c57422d1700000000000000000000001222364a5c6d8298a9bacde1d1c0b29c8774604b3a2917040000000000000000000000000000000000000000000000000000000000000b19252d2f323232323232323232323232323224211a0f010000000000000000000000000000000000081621292b3535352220190e00000000000000000000000000000000000000000000000000000000000411182530353d4a4e55586166686a6c6e6f6e6c6a696765615858524c483b332515030000000000000000000000000000000000000000000f1f2d39464b5e66717b83898f94969899999796938e89837b70665e4b46392c1f0f000000000000000000000000000000000002152737556a80959f9f9f9f9f9f9f99846f5a4935200a0000000000000006192c3c51667c91a59f9f9f9f9f9f9e8874604a35200b00000000000000000000000000000c21364a5b72879cb2b5b5b59f8b77624c3722253a4f657a8fa6b8b5b5ae99846f5746321e0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2034485971869bb0c7d8cab6a58d786363636363636363636363636371869cb1c6dbcfbcab927d68523d28130000000000000000000000071b2d3e4d62788a9fb4c5d5decab6a4937e695846331f0e0000000000000000000000000000000000000000000000000000000000081929374145484848484848484848484848484839362d1f0f00000000000000000000000000000000041626343d414a4a4a38352b1e0e0000000000000000000000000000000000000000000000000000000b171f2f36434a525c646a70777b7d7f8183848381807e7c7a76726e686259504333200d00000000000000000000000000000000000000000e1e2d3d4a57616d7c8590989ea7a9abadafaeadaba9a79e9890857c6d6157493d2c1d0d00000000000000000000000000000000081d3144556f859aafb5b5b5b5b5b59f8c78624d382816020000000000000c2035495a6f8499afc3b5b5b5b5b8a78e78634e39230e0000000000000000000000000000071a2d3d566b8096abc4cfbcab937e6853392920354b6074889db3c8c9b49f8a76614b36210c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000005182b3b556a8095a9baced3c3ae99836e614d4d4d4d4d4d4d4d4d5a667c91a4b5c9dfcab59f8b77624c37220d000000000000000000000000102035485a6b8095a6b8cbe0d3c3b39e8976614c3c2b19060000000000000000000000000000000000000000000000000000000012253747545a5d5d5d5d5d5d5d5d5d5d5d5d5d5d4e4a3d2d1a070000000000000000000000000000000e21344451565f5f5f4d483c2b1905000000000000000000000000000000000000000000000000000e1b29333f4c54606772797f858b90929496989a98979593928f8b87837d776a61503c2813000000000000000000000000000000000000000c1c2b3c4a5b637582919ba3aeb3b8c5c0c2c4c4c2c0c5b8b3aea39b908275635b493c2b1c0c0000000000000000000000000000000b20364b6075899fb4c9cacacacfbcab96806b5645321e090000000000031628384d63788c9fb5cacacacad5c5a8937d68533e281300000000000000000000000000000010253a4f657a8fa6b8cbc9af99846f5746331e3043546c8297acc5cdbaa9917c675137271502000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22384d62788b9fb4c6d6c7b3a1947f6d6159504d4b4b4e525e6678899eb3c2d2d3c3b09b85705947341f0b00000000000000000000000005192b3c4c6176889eb3c2d3e0ccb8a796806b5a4935201000000000000000000000000000000000000000000000000000000000182d4154656f7272727272727272727272727272635b4a36210c00000000000000000000000000000014293d51626b757575625a4835200b000000000000000000000000000000000000000000000002101e2b3a464c5d65727c878e949b9faba8aaacaeafaeacaaa8a7a5a59d98928d7f6a553f2a1500000000000000000000000000000000000004182a3a485a63798798a0b0b5c1c8ccd6d6d7d9d9d7d5d5ccc8c1b4b0a0978679635a483a2a170400000000000000000000000000000f253a4f647a8fa9bacde1dfecdac9b39e8875604b3621100000000000091e3245566b8096abbccfe3dfdfd8c2ad98826d583c2b190500000000000000000000000000000b20354b6074889eb3c8c9b49f8a76614c3621263650667b90a7b9ccc7ad98826d5544311d08000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2035485a6c8196a8b9cdcfbfaf9d9481776d656260606367707b889da7b8ccdfcab6a5937e69533b2a1805000000000000000000000000000e1e334657697e93a4b6caded5c5b49f8b78624d3e2e1b070000000000000000000000000000000000000000000000000000001a2f455a6f83878787878787878787878787878779634e39240e000000000000000000000000000000162b41566b808b8a8c78624d38220d000000000000000000000000000000000000000000000210202e3c4958616e7b85919ca4aab0b4b8b3b1afadacacadaeb1b3b9b6b2adab96816c56412c170100000000000000000000000000000000000a1f3347586278889ca5b2bec9d2dedfd7d6ccc8c8ccd6d8dfded1c8beb1a49c8778625847331f100000000000000000000000000001142636546a7f94a9c7d7e9fcf7e0ccb8a7927d67523e2d1b07000000000b21364b6075899eb3c9daecfff2ddc7b29d88725a4835200b0000000000000000000000000000081c3043546d8297acc6cebaa9917c6752382720364b6075899eb3c9c9b39e8975604b36200b000000000000000000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005192b3c4c61778a9eb4bdcdccbbaf9f978a827b787575787c85909da6b8c5d5cfbeb29c8774604b36200d0000000000000000000000000000031729394b6074869cb1c0d1e2cdbaa998826e5c4b3722120000000000000000000000000000000000000000000000000000001c31475c71869c9d9d9d9d9d9d9d9d9d9d9d9d8e7a644f39240f00000000000000000000000001080b172b41566b80969f8d77624d38221c1308070000000000000000000000000000000000000010202e3f4b5a627683909ba3b1b6b4afa9a79e9b9a98969798999b9ea7a6abb0ab96816c56412c170100000000000000000000000000000000081b2e3f4c6176869ca6b6c3cfddd9cfcac2c5b8b3b3b8c5c2cacfdaddcec2b6a69c8676614c3e2d1b07000000000000000000000000081c3043546f8499aec4d9eefffbe8d5c5b09b85705c4a36220c000000071b2d3e52687d92a7b8cce7f7fff4dfcbb7a58d78624d38220d00000000000000000000000000010a14263651667b90a8b9cdc7ad98836e5645311d3145566d8398adc7ccb9a7907b6550362513141414140d0b060000000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1f344759687d929eb0bfcdccbdb1a99f97908d8a8a8e929ba3b3b8c4d5d1c0b2a0917c675544311d080000000000000000000000000000000b1d314455667c91a2b4c9dad7c7b2a08f7a644f4030190900000000000000000000000000000000000000000000000000001c31475c71869cb1b2b2b2b2b2b2b2b2b2b2a48e79644f39240f000000000000000000000009151d20293341566b8096a28d77624d3a353025221b1007000000000000000000000000000000000c1c2e3e4b5d64788699a1b0b5b5aa9f9a948e888684828182828486898c90969ba396816c56412c1701000000000000000000000000000000000e22374b5d6d8298a4b6c4d3e1d4c9bcb4ada5a79e9ea7a5adb5bcc9d5e0d3c4b6a497826d5c4a36220e0000000000000000000000000b20354b6074899eb3c9def3fffff3ddc8b4a38e79644f3a29170400000d22364a5c70859bb0c5d5e8fffffae6d4c3a7927d67523d281200000000000000000000000005131e2527364b6075899eb4c9c9b49e8975604b3629273851677c91a9bacdc5ac96816c54433029292929292320190e00000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004182a3b4e5f6c8196a1b0bdcdcec7bab4ada5aa9f9faba7b0b5c1cbd5cfc1b4a298826e5f4d37271502000000000000000000000000000000011527374c5e70849aabbccfe3cfbeb09a85705e4d37271502000000000000000000000000000000000000000000000000001c31475c71869cb1c6c7c7c7c7c7c7c7c7b9a48e79644f39240f00000000000000000003121927313539464b566b8096a28d7762534f4a4336372e211a0f010000000000000000000000000009192a3a4a5c647b889ca4b3b4ab9f988b857f7973716f6d6c6c6d6e7174777b80868e96816c56412c170300000000000000000000000000000006192c3c4f657a8fa0b2c3d3e2d4c4b7ab9f98908b89898b90989fabb7c4d5e2d3c2b59f8d7a644f3c2b190500000000000000000000000f24394e64798ea7b9cce0f5fffff7e4d1c1ac97826d5846331f08000417293a4f647a8ea3b5c9e3f3ffffffecd7c2ac97826d573b2a18050000000000000000000001132330393d3e45566e8398aec8ccb9a8907b6650363e3e3e4b61768a9fb4c9c8b29d8874604a3e3e3e3e3e3e38352b1e0e000000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1d31414b607383969eb4b9c6cecdc9c2c8bbb4b4bcc9c5c9d2d1c9bcb5a39a8474604b41301909000000000000000000000000000000000009192f404f647a8d9fb5c7d7ddc8b4a2917c665544311d0c000000000000000000000000000000000000000000000000001c31475c71869cb1c6dbd5c5b8b3b3b3b3b3a48e79644f39240f00000000000000000a161e2f37444b515761656b8096a28d786b686460544f4b3e362d1f13050000000000000000000000011426374758647a8b9ea6b6b2a39b8d83786f69635b5c5a58575758595c5861666b7179817f6a55402a1e170b09020000000000000000000000000c2135495b70859bb0becfe1d5c5b7a69d8c827b757373767b828d9da6b7c5d6e3cfbcab9a85705a4835200b000000000000000000000014293e54697e93a9c5d6e8fbffffffefdec9b49f8a76614c362513000a1f3347586d8297adc1d2e4fffffffff1dcc7b19c87725947341f0b000000000000000000000a1e30414d52535353677c92aabbcec6ac97816c545353535353576e8399aec3cbb7a68e7964535353535353534d483c2b19060000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000131d314455607381929ea8b4bac7c9d2d8cecacacfd9d6ccc9c1b4ab9f968576615645322312000000000000000000000000000000000000001222364a5c6d8298a9bacde1d1c0b29c8774604b3a2917040000000000000000000000000000000000000000000000001c31475c71869cb1c6dbccb8a79e9e9e9e9e9e8e79644f39240f000000000000000d1b2832404c5560666e767a7e859bae9983807d79746d645c4e4a3d3123150700000000000000000000081d3144556176879da9b8afa09885796e635b544e4a3d4543414243443a474c51565b636c6a615039363329211e160a00000000000000000000000e23384d63788da3b4c8dce0ccb8a79d887a6d6560565660666d7a889da7b9cce0dac9b4a28d78624d38220d00000000000000000000061a2c3d596e8398aec3d8edfffffffff6e1cdbaa8937e695443301c071325364c61768a9fb4c9deeffffffffff3decab6a48c77624c37220d000000000000000000001025394d5f6769696969768a9fb4c9c8b39d887269696969696969697d92a7bdd4c4aa95806b69696969696969625a4835200b0000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011426374455606c7d8a969fa9b1b5c2bfc1c3c4c2c1c5b9b3aea39b8d80746158473828150400000000000000000000000000000000000000071b2d3e4d62788a9fb4c4d5dfcab6a5937e695846331f0e0000000000000000000000000000000000000000000000001c31475c71869cb1c6dbc8b39e8988888888888979644e39240f0000000000000d1d2a39454b5e66747c838a8f939ba3b2a19995928f88827a6f635b4e4133251505000000000000000005182b3b4b6073849aa5b7af9e958274635b4e493d444b4d4e4c4a4336373433373b3d4a4e565550504e4c46393632281a1204000000000000000000152a3f546a7f94a9c1d1e4d4c4b39e8978645c504b45454b505c6479899eb3c4d5e7d1c0a9947e69543f2914000000000000000000000c2135495b73889eb3c8ddf3fcf6f4f1f3e9d7c6b19c8773604a35200d1c304354697e94a9bacde1f6f2f0f2f8f9e5d3c2a6917c67513c27120000000000000000000012273d52677d7e7e7e7e7e879db2c7cbb7a695807e7e7e7e7e7e7e7e7f95aabfd4c7b29d877e7e7e7e7e7e7e7e78624d38230d0000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009192637444b606877818b959ca4a7aaacaeafadaba9a79e998f857b6b6055473a291a0a000000000000000000000000000000000000000000102034485a6b8095a6b8cbe0d3c3b39e8976614c3c2b190600000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76737373737373645c4a36210d00000000000a1a2a3b4857606e7c8691999fa9a9b0b5bfb2aeaaa8a69e978f8479685f504333231200000000000000000b203448596a8095a2b3b1a0957f6d60564a484d5555606263616054544c473b333f4b505660636665636157534b45382f22150700000000000000011527375b70859bb0c5dadfcbb7a6927d685a4a3e363232363e4b5b687e93a6b8cbe0dac5af9a85705a362513000000000000000000000e23384e63788da6b8cbe0f5e9e1dedcdee5decab6a4907b65503b2b1820354a6073879cb2c7d7e9e4dddbdde4efebd6c1ab96816c563a2917040000000000000000001c31475c718693939393939da5b7cad5c4af9e959393939393939393959dafc3d7cab6a59d93939393939393907b66513b26110000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009192631414e59626c7880868d92959799999896948f89837a70655d4b4437291c0c0000000000000000000000000000000000000000000005192b3c4c6176889eb3c2d3e0ccb8a796806b5a4935201000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76615e5e5e5e5e4e4a3d2d1a0700000000031628384859627582909ca4aeb4bac7c6c9cfc6c3c0c4b8b3ada1998b7d6a615041301d0d00000000000005182a3b4c62778a9fb4b5a397826d614b454b59626a7175777876746f6962594b464c5d656e76787b7b79766f6860564c4032251507000000000000081d31445573889db3c8ddddc8b29d8874604b3c2d211e1e212e3d4b6074889eb3c8ddddc7b29d88725443301c0700000000000000000013283e53687d93a8c4d5e7e4d7cdc9c6c9d2e0d3c2ae98836e594834202b3c50657b90a5b6cae5dfd1c9c5c9d1dfefdbc6b19b86715846331f0a0000000000000000001c31475c71869ca8a8a8a8b2b7c3d4e2ccbcafaaa8a8a8a8a8a8a8a8aaafbcccded3c3b6b2a8a8a8a8a8a8a6907b66513b26110000000000000000000000000000000000000000000000000000000000000000051a2f445a6f8499afc4d9e3ceb9a48e79644f39240f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141d313b474c5a626b71777d7f81838483817f79746e655d504b3f3127190c0000000000000000000000000000000000000000000000000d1e334657687e93a4b6caded5c5b49f8b78624d3e2e1b08000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c4949494939362d1f0f0000000000091e32455662778598a0b1b6c2c9cdd7dbdde2dbd8d5d5cbc8bfb3a99f927f6a5f4d3b2b180500000000000b1f3447596c8196a9baaa9b8575604b4555606a787f868b8c8e8c8a857e776b6057616d7b838a8e90908e8a857e75665e4f433325150300000000000b20354b60758a9fb4cadfd7c2ac97826d5544311e100909101d3144556d8298adc2d8dfc9b49f8a75604a35200b000000000000000005192b3c586d8298adc2d7e9d7c6bab4b1b5c2d2dfcab49f8b77624d372734485a6e8399aec3d3e0d1c1b5b0b5c1d1e4dfcab49f8b76614c36210c0000000000000000001c31475c71869cb1bebebec7cad4dee5daccc3c0bebebebebebebebebfc3ccdee0e1d3cac7bebebebebebba6907b66513b26110000000000000000000000000000000000000000000000040a0c0d0d0d0d0d0d0d1a2f445a6f8499afc4d9e3ceb9a48e79644f39240f0d0d0d0d0d0d0d0b0802000000000000000000000000000000000000000000000000000000000000000000000000000000000001131d2a343c494d565a62686a6c6e6f6d6c696460554f4b3f382f1d150900000000000000000000000000000000000000000000000000031729394b6074869cb1c0d1e2cebaa998836e5c4b372212000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c3633333324211a0f0100000000091c2f404b6075859ba3b2becad3dfdfdddbdeded7d4d9dfe0ddd0c7bab49d917d67594834200d00000000000d22374c62778a9fb4b49f8c796356455660737f8a959c9faba3a99f9a948a807562758290989fa9a5a5aa9f9a93877c6a61504333211100000000000d22374d62778cabbccfe3d4bfaa947f6a5537261400000001152737556a8095aabfd5e2cebbaa8c77614c37220c00000000000000000b2035485a72879db2c7dde1cdbaa89f9ca4b5c9decebbaa95806a554431374d62788b9fb4cadfd2c2b5a39ba3b5c9dde3cfbcab907b66513b26110000000000000000001c31475c71869cb1c4c4c4c4c4c6c9d3e0dfd7d4cac7c4c4c4c4c4c4c4c4c4c8ccd5e3dfdcd1c8c5c4c4bba6907b66513b2611000000000000000000000000000000000000000000000c171f2122222222222222222f445a6f8499afc4d9e3ceb9a48e79644f39242222222222222222201d15090000000000000000000000000000000000000000000000000000000000000000000000000000000000000d181f2b35383c484d525557595a5856544f4b4437372e231c11020000000000000000000000000000010606060606060606060606000b1d314455667c90a2b4c9dad8c7b2a08f7a644f40301a0a0000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36211e1e0f0d070000000000000f24384c5e6d8298a3b5c1cfdee3d4cbc8c6c9ccc3bfc3caced9e5d7cdbcb49f8a77624d3b2a180500000006192c3c566b8096a9baab98826d5b494b607483949fa8b1b5bcc7bab4afa89e9585788497a0adb4bac7c8bbb4afa59d917f6a61503f2e1a0a000000000c21374c61768ca8b9cde1d4bfaa947f6a5536261401000001142637556a7f95aabfd4e0ccb9a78b76614b36210c00000000000000000d22384d62788da5b7cadfdec9b49f8a869cb1c6d6d8c8b39d8874604b3544556b8095aabbcedec9b5a49b869bb0c5dbebd9c9ab95806b563828160300000000000000001c31475c71869cafafafafafafb1b6c2d3e5d4c3b7b2afafafafafafafafafb3b8c5d5e3d1c0b4b0afafafa6907b66513b26110000000000000000000000000000000000000000000c1c293336373737373737373737445a6f8499afc4d9e3ceb9a48e79644f393737373737373737373631271909000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e1920232b34383d4042444443413f3a353126231c110800000000000000000000000000040e14161b1b1b1b1b1b1b1b1b1b1b1b1b1527374c5e6f849aabbccfe3cfbeb09b85705f4d3827150200000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c090000000000000000091c2f3f51667b90a0b2c1d2dfd9cfc4b7b2b1b5bcafaaaeb4bbc8d3e0e1cdbaa896816c5947341f0b0000000c2035495a72879db2b49f8c79634e4e606e8298a1b4bac6cac1b9b7b9c6b9b4a39b8a9aa2b1bec2b5b1aaa9adb4b6b29d947f6a5d4b382816030000000a1f33475874899eb4c9ded7c2ac97826d5443301c0f08080f1d3144556d8298adc2d7dec9b39e89745746321e0a000000000000000012283d52677d92a7c3d4e6dac4af9a847e93a8b9ccdfcbb7a6917c67513d4b6074889db3c8d9d6c6b19c867c91a6c3d4e6dac5b09b85705645321e0900000000000000001c31475c7186999999999999999ca4b6c9decab7a59d9999999999999999999ea7b8ccdcc8b4a29a99999999907b66513b261100000000000000000000000000000000000000000417293a464c4d4d4d4d4d4d4d4d4d4d5a6f8499afc4d9e3ceb9a48e79644f4d4d4d4d4d4d4d4d4d4d4b443727150200000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0d192022282a2c2e2f2e2c2a24201d1409080000000000000000000000000000081621282b3030303030303030303030303030302f404f647a8d9fb5c7d7ddc8b4a2917c675645311d0c00000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000000e23384c5d71859bb0becfdfd9c9bcb4a69d9ca4af9d95999faab6c2d3e4d7c6b49f8a77624c37220d0000000e23384d63788da5b6ae99846f5b4956687d92a0b2bfc9bcb4aca4a1a4a8aeb3b5aa9faab4c0c2b5a49c9594989fa9b6b59f8d7b655645321e090000000417293a5c72879cb1c7dcddc7b29d8774604b3c2d201c1c202d3c4b6074889db3c8dddbc6b19c86715c392916030000000000000004182a3b576c8297acc1d7ecdac9aa958075899eb3c9ded4c4af9a846f5b4952677c91a6b8cbe1ccb9a8937e778ca5b6cadfdfc9b49f8a76604b36210b0000000000000000172d42576c8184848484848484869cb1c4d5c7b29d87848484848484848484899eb3c8dac5b09a8484848484847a644f3a240f00000000000000000000000000000000000000000a1f3346586162626262626262626262626f8499afc4d9e3ceb9a48e79646262626262626262626262605544311d0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d131517191a1817140f0b0801000000000000000000000000000000041626333d4045454545454545454545454545454545454a5c6d8298a9bacde1d1c0b29c8774604b3a291704000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000010263b50657b90a3b5c9dce3cfbcab9f9488869caa957f848c9ca4b6c6d7e2cebaa9927d67523d281200000014293e53697e93a8c3a8937e68534b6075889eb3bec8bbab9f978f8c8f9299a1b3b8b4bbc8cab6a49c86807e828b9ca4b6ab9c8775604b362110000000001a2f44596f8499aec6d6dfcab7a5927d675a4a3d353030353d4a5a687d92a6b7cbdfd6c6ae99846e59442f1900000000000000000b1f34475972879cb1c7dce3cfbcab907b6c8196acc0d1dcc8b4a28e79634e5b70859aafc4d5dec9b49e897672879db2c7dce2cebbaa907a65503b25100000000000000000152a3e52636c6f6f6f6f6f6f6f7a8fa6b7cbc4af9a856f6f6f6f6f6f6f6f6f8096abc5d6bca7927c6f6f6f6f6f645c4a36220d00000000000000000000000000000000000000000c21364c6176777777777777777777777777849aafc5dae5d0bba6907c77777777777777777777777774604b36200b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e21334450565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b62788a9fb4c9dedfcab6a5937e695847331f0a000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000003172939566c8196abc1d2e3d1c0b49f8d7f748096a28d786e7a869ca8b9cde1d8c7ad98826d58432d18000000132536596e8499aeb7a58d78634d53687d93a7b8ccbbaa9f8d817a77797d84919ea6b8c8d8c7b19c86756b696d79869ca8b6a5937e69543f2e1b0800000012283d52677d92a8b9cce1d4c3b39e8878635b4f4b43434b4f5c6478899eb3c4d4e1cdb9a8927d67523d281200000000000000000c22374c61778ca4b6cadedfcab59f8b7663798ea2b4c8dcd1c0ac96816c5763798ea2b4c8e2d1c0ac96816c6d8298adc2d7ead8c8aa957f6a5537271502000000000000000f22354552575a5a5a5a5a5a6074889db3c8cab49f8b76615a5a5a5a5a5a657a8fa7b9ccc3ad98836e565a5a5a4f4a3e2e1b070000000000000000000000000000000000000000172c41576c818c8c8c8c8c8c8c8c8c8c8c8c9aa2b4c8dce7d3beab9a908c8c8c8c8c8c8c8c8c8c8c8c7a644f39240f000000040d131620202020202020201c19130900000000000000061016192020202020202020191610060000000000000000000000000000000000000000000000000000000000000000000014283d50626b7070707070707070707070707070707070707070708095aac0d5e6d3c3b39e8976614c37210c000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000a1e33465772879cb2c7cdcdc8b4a2927d696b8096a28d776264788a9eb4c9dedcc7b19c87725c3727150100071c30435473889db3b29d88725b49566f849aafc5c8b49f8c7c6c646264686f7d889eaabbcebfaa957f6a57545b63798a9eb4b19c86715d4b37220e0000000b21364b6075899eb3c3d4e0cbb8a69d87796c6460545460646c7a879da7b8cce2d4c4b49e8976614b36210c000000000000000012273c51677c91a6c2d3e5dcc6b19c86715b70859aafc4d4dec9b39e8975616c8197acc0d1dcc8b4a28e7963687e93a8c6d6e8dac4af9a846f5544311d0800000000000000051727353e42444444444443546c8297acc6cebbaa927d6752384444444b6075899eb3c9c9b49e8975604b44443a362e2010000000000000000000000000000000000000000000172c41576c8196a2a2a2a2a2a2a2a2a2a2a2afb4c0d1e3eedbc8b8aba6a2a2a2a2a2a2a2a2a2a2a28e79644f39240f0000071521282b3535353535353535312e261b0d00000000000a18232b2e35353535353535352e2b23180a000000000000000000000000000000000000000000000000000000000000000000162b40566b80858585858585858585858585858585858585858585859bb1c6dbf0e0ccb8a796806b56412c16000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000c21364b61768ba4b6b8b8b8b8af9a84705f6b8096a28d77625a6b8196abc0d6dec8b39e89735544311d08000b20354a60758a9fb4af99846f5a4b6075899fb4c9bbaa95806b5e4f4c4f535f677b8c9fb4c6bda8927d68533c495b6b8095abb6a48f7a654f3a2510000000091e3245576c8197a5b7c8d8d5c4b6a59d8b817a757272757a818c9da5b7c5d5d9c9b7a697826d5746321e09000000000000000417293a566c8196abc1d6ebd7c1ac97826c57677c91a6b7cbdfccb9a8937d6876899eb4c9ded4c4af9a85705b63798ea8b9cce1dec9b49f8975604b36200b00000000000000000917222a2d2f2f2f2f253651667b90a8bacdc8ae99836e5645322f3144556e8398adc8ccb9a8907b6650362624221b13130c0a04000000000000000000000000000000000000172c41576c8196acb7b7b7b7b7b7b7b7b7b7c5c8d1deeef8e6d6c8bebbb7b7b7b7b7b7b7b7b7b7a48e79644f39240f00041526333d404a4a4a4a4a4a4a4a4642382b1b09000000061828363f434a4a4a4a4a4a4a4a433f362818060000000000000000000000000000000000000000000000000000000000000000192e44596e83999a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9ba3b5c9ddf2e8d5c5b49e8a745f49341f000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000e23384d63788da2a2a2a2a2a2a2927d67566b8096a28d776252677c92a7bcd1dfcab59f8a75604b35200b000c21374c61768caabbad98826d584e63788ea9bacab49f8b77614c40373a414d5d6a7f94a8b9bea9947f69543f3c4d62778c9fb5ab95806b56362614010000031628394c6176879daabbc8d5d3c3b6aa9f978f8987888a8f979faab7c3d4d5c8bbab9d8877614c39281603000000000000000a1f33465871869bb1c6dbe7d5c4a7927d67526074889db3c8d8d6c6b19c86717e93a8b9ccdfcbb7a6917c67516074899eb3c9dee1cdbaa88f7a644f3a240f000000000000000000050f15171a1a1d2427364b6075899fb4c9c9b49f8975604b3628273752677d92aabbcec6ac97826c5443302828282828211f170c0000000000000000000000000000000000172c41576c8196acc1ccccccccccccccccccdadce3eefcfaf4e6dbd3d0ccccccccccccccccccb9a48e79644f39240f000d213344505560606060606060605b564938261300000010233646535860606060606060605853463623100000000000000000000000000000000000000000000000000000000000000000192e44596e8399aeb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b1b5c1d2e4f8f3dec9b49f8a745f4a341f000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000f253a4f647a8d8d8d8d8d8d8d8d8d7963566b8096a28d776252677c91a7bcd1e1cdb9a88b75604b36200b000e23384e63788da3c8ab96816b5650657a8fa5c7c6b19b86715847332224303f4b6075899eb4c1ac97816c573734485971869cb1af9a856f5443301c080000000a1f334758657b8c9faab8c4d5d3c8bbb4aca99f9d9d9fa9acb4bbc8d4d5c4b8aa9f8d7b655947341b0b00000000000000000c21364c61768b9fb4cadfe0cbb8a68d78634d556a8095aabbcedec9b5a48f7a869cb1c6d6d8c8b39d8874604b546f849aafc4d9e9d7c6a9947f695436261401000000000000000000000000122230393c3d45566e8399aec9cdbaa8917b6651373d3d3d4c61768b9fb4cac8b39d8874604b3d3d3d3d3d3d3733291c0c00000000000000000000000000000000172c41576c8196acc1d6e1e1e1e1e1e1e1e1e5e5e5e5e5e5e5e5e5e5e5e1e1e1e1e1e1e1e1ceb9a48e79644f39240f0013283d50626b7575757575757575716756422e19040001162b3f53646e75757575757575756e64533f2b160000000000000000000000000000000000000000000000000000000000000000192e44596e8399aec3c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c6c9d2dfeffff4dec9b49f89745f4a341f000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000b21364b60747878787878787878787260566b8096a28d7762586b8095aac0d5dec9b49e89745645321d090010253a50657a8fa5baa9947f6a5451667b91a6bbc4ae99846f593a2a18121e3245566d8398adc2b09b85705544313b576c8197acb49e8974604b35200b00000004172a3a4b5d687e8c9ea6b8cbe0d8cec9c7bab4b2b2b4bac7caced8e0cbb8a69e8c7e695d4b3a2a1800000000000000000011263b51667b90abbccfe3ddc8b39e88735a494d62778b9fb4cadfd2c2b19c869ca4b5c9e2cebbaa95806a5544556a7f95aac8d9ebd9c3ae99846e5443301c0800000000000000000000000a1d30404d51525253687d92abbccfc6ac97826d5552525252525870859ab0c5cbb8a68f7a64525252525252524c473a291704000000000000000000000000000000172c41576c8196acc1d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0ceb9a48e79644f39240f00162b40556b808a8a8a8a8a8a8a8a85715b46311c060003192e43586e828a8a8a8a8a8a8a8a826e58432e190000000000000000000000000000000000000000000000000000000000000000192e44596e8399aec3d8dadadadadadadadadadadadadadadadadadbdde4e5e5e5e5dec9b49f89745f4a341f000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000091e324556606363636363636363636054566b8096a28d77626176889eb3c8ddddc7b29d88725d382815020010253b50657a90a5baaa947f6a5550657a8fa5c9c4ae99846f593b2a180516283852677c92a7bcb49f8a75604b363f556a7f94aab9a88d78634d38230e000000000c1c2e3f4e60687b889eb3c8ddeae2dfd7cdc9c7c7c9cdd7dfe2eaddc8b39e887b69604f3f2e1c0c000000000000000003162838566b8095abc9d9ebd8c3ae99836e593c48596e8398aec2d3dec9b5a49ca4b5c2d2dfcab49f8b77624d3750657b90aabbcee2dec9b39e8974604b35200b00000000000000000000000f24394d5e6668686868778a9fb4cac8b39e887368686868686868697f94a9bed5c4ab96806b68686868686868615847331f0a000000000000000000000000000000172c41576c8196acbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb9a48e79644f39240f00162b40556b80959f9f9f9f9f9f9b86715b46311c060003192e43586e83989f9f9f9f9f9f98836e58432e190000000000000000000000000000000000000000000000000000000000000000192e44596e8399aec3d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0c9b49f89745f4a341f000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000003162838454b4d4d4d4d4d4d4d4d4d4a43566b8096a28d7762748399a7b8cce0d9c4ae99846f59442f1a00000f24394f64798ea4c9ac96816c574e63788dabbcc6b19c86715947341f090f243a4f64798fa4b9baa98e79644e393e53687d93a8c6a48f7a644f3a250f0000000000102131424e5d657a8fa4b9cfe4e3dcd4cbc8c4c4c8cbd5dce3e4ceb9a48f79655d4f42322111000000000000000000091e32455670859bb0c5daead7c7a9947f69543f3b50657b90a4b6caded2c2b5b1b5c2d2e0d3c2ae98836e5948364b61768a9fb4cadfe0ccb9a78e79634e39240e000000000000000000000011273c51667c7d7d7d7d7d889db2c8ccb8a7957f7d7d7d7d7d7d7d7d8095aabfd5c7b29d877d7d7d7d7d7d7d7d76614c37210c000000000000000000000000000000172c41576c8196a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a48e79644f39240f00162b40556b8095aab5b5b5b5b09b86715b46311c060003192e43586e8398adb5b5b5b5ad98836e58432e190000000000000000000000000000000000000000000000000000000000000000192e44596e8399aebbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb49f89745f4a341f000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000000a1a2832363838383838383838383541566b8096a28d78788499a1b2c5d5e4d1c1a9947f6a543f2a1500000e23384e63788dabbcae99836e594b61768b9fb4cab49f8b77624c3727150f24394e64798ea3b9c7a8937d68533e3c51667c91a6bba5907b66503b26110000000000071c3043546176869cb1c7dcded0c7c4b7b3afafb3b8c4c8d1dedbc6b19c8676614c413019090000000000000000000b21364b60768a9fb4c9dfe2cdbaa98f7a644f3a374b5d72869cb1c6d7e0d2c9c6c9d2e0decab6a4907b65503b32465771869bb1c6dbe8d6c5a8937e69533e291400000000000000000000081d32475d728792929292929da6b7cbd5c5af9d959292929292929292959eafc3d7cab6a59d929292929292928e79644e39240f000000000000000000000000000000172c41576c81909090909090909090909090909090909090909090909090909090909090909090908e7a644f39240f00162b40556b8095aac0cacac6b09b86715b46311c060003192e43586e8398adc3cacac3ad98836e58432e190000000000000000000000000000000000000000000000000000000000000000192e44596e8399a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a59f89745f4a341f000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000000000a161e21232323232323232e373b47566b8096ab97828a9aa2b2bfcfe3ddc8b4a38e79644f39240f00000b21364b60768b9fb5b09b85705b465770869bb0c5bcab937e68554431251e263750657a90a5bac2ac97826d57393a4f657a8fa4baa7927c67523d271200000000021628384a6072859ba4b6cadeccc0b4afa69d9a9a9da6afb4c0cddec9b5a49a846f5f4d37271501000000000000000010253a50657a8fa9bacee2dfc9b49f8a75604b362f3f53697e93a8b9cde1e5dedcdee5e9d7c6b19c86715d4b372939576c8196acc1d6ebd8c3ad98836e583c2c1906000000000000000000081d32475d72879ca7a7a7a7b2b7c4d4e3ccbbafaaa7a7a7a7a7a7a7a7aaafbcccdfd4c3b6b2a7a7a7a7a7a7a38e79644e39240f0000000000000000000000000000000e23394e63797b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b76614c36210c00162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000000000192e44596e8390909090909090909090909090909090909090909090909090909090909090908a745f4a341f000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000000000003090b0e0e0e171e2e373f4b5059626b8096ab9f979fa9b4c0cfdde2cfbfb09b85705c4a36220d0000091e32455672889db2b29d88725b49556b8095aabfc9b19b8574604b4336323544556a7f94aabfc6b19c86715746394e63788ea3b8a8937d68533e281300000000091e324556687d92a2b4c2d3ccbcafa29a8d888484888e9aa2b0bccdd2c2b3a2917c675544311d080000000000000002152737556a7f95aac7d8eadac5b09a857056453221364c61768a9eb4c9deeff3f1f3f6e1cdb9a8937e69533f2e273d52677c92a7c4d4e7ddc8b39d88735a4935200c000000000000000000081d32475d72879cb2bdbdbdc8cbd4dfe6daccc3bfbdbdbdbdbdbdbdbdbfc3ccdee1e1d4cac7bdbdbdbdbdb9a38e79644e39240f0000000000000000000000000000000c2135495b636666666666666666666666666666666666666666666666666666666666666666666666615746331e0a00162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000000000000000000000000000000000000000000f24394e647a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b65503b2610000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000000000000000002101b29333f4b4f5d656e777f879db2b1acb4bac7d1dee2d4c3b2a1917c66513e2d1b070000031628385a6f8499afb7a58d78634d4e64798ea1b3c7b5a395806b60544b45484d6073879db2c7cab49f8a76614b3a4f64798fa4b9a6917c67513c2712000000000b21364b6075889db3c0d1d1c0af9e958479736f6f737984969eb0c1d1d0c0b29d8774604b35200b00000000000000081d3144556f849aafc4daebd5c0ab96806b5638281f3346586c8297acc0d1e4f7fffff3dec9b49e8a76614c362122384d62788da6b7cbdfe0cbb7a68d78634d38230e000000000000000000081d32475d72879cb2c5c5c5c5c5c7cad3e1ded7d4cbc8c5c5c5c5c5c5c5c5c5c9ccd6e4dfdcd2c9c6c5c5b9a38e79644e39240f000000000000000000000000000000061a2c3d494e50505050505050505050505050505050505050505050505050505050505050505050504c463929170300162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000000000000000000000000000000000000000000d22364a5c646666666666666666666666666666666666666666666666666666666666666666655d4c38230e000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000000000000000210202d39464c5d65707a838b949da5b6c5c1c9cdd7e5e3d2c4b7a599836e5e4d39201000000000152a3f546a7f94a9c3a9947e69544a5c6f8499aebdc1b59f8d7e726560575a626d8096a5b6cacebbaa8f7a654f3c51667c91a6baa48f7a654f3a25100000000011263c51667b91a6b7cbdcc8b4a295806f635b5a5a5b63708096a3b4c8ddcab7a5907b65503b2610000000000000000b20364b6075899fb4c9dee6d3c3a6917c66513c2617293a4e64798ea2b4c8ddf3fff7e4d1c0ac97816c5746331e2035485a73889db2c8dde7d5c4a8927d68533d2813000000000000000000081d32475d72879cb0b0b0b0b0b0b2b6c3d3e6d4c4b7b2b0b0b0b0b0b0b0b0b0b4b9c6d6e4d2c1b5b1b0b0b0a38e79644e39240f000000000000000000000000000000000f1f2c35393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3633291b0b0000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000000000071b2d3e4a4e5050505050505050505050505050505050505050505050505050505050505050504c3f2f1c09000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000000000000110202e3e4a57616d7a858f999faab2b6c3d4d7dee1e7d9cfc2b5a69d8777614c40301d02000000000f24394f64798ea6b7af9a857058474f647a8f9fb0c1bcab9f93847a7672727882969eb0c3c9d3c8a9947e69543f53697e93a8c3a28d78624d38230d00000002182d42576d8297acc4d4dac5b09a8473604e493d3d4a4e6073859bb0c5dad4c3ac96816c57412c17000000000000000f243a4f647a8fa8bacde1decab6a48c77614c37220c21364a5c70859ab0c4d5e7fbf1ddc8b4a28e79634e392917192b3c596e8398aec3d8ecd7c2ad97826d583b2b18050000000000000000081d32475d72879a9a9a9a9a9a9a9ca5b6cadfcbb7a69d9a9a9a9a9a9a9a9a9a9ea8b9ccddc9b5a39b9a9a9a9a8e79644e39240f00000000000000000000000000000000010f1a21232626262626262626262626262626262626262626262626262626262626262626262626211e170b000000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000000000000000000000000000000000000000000010202d36393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b382f211100000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000000000000f1f2e3e4b5c6476828f9ba3aeb4bbc8cad4e1eae2dfd0c9bcb4a39b887863594734221200000000000b20354b6074889db2b49f8b77614c4b5c6c8196a3b5c2bcb5a29a8f8b87878b979fb0b6b1b6c2c3ad98836e583e566b8196abb7a58b76604b36210b000000031729395d72879cb2c7dcd8c8a6907b665443352c2d364455667c91a6c9d9dcc6b19c87715c3828160300000000000114263654697f94a9c6d7e9dcc7b29c87725947341f0b1a2d3d52677d92a6b8cbe0f6e7d5c4b09a85705b4a361b0b14293e54697e93a9c6d7e9dcc7b29d8772594834200b000000000000000003192e43586e8285858585858585879cb2c4d4c8b29d888585858585858585858a9eb4c9dbc6b19b85858585858478634d38230e000000000000000000000000000000000000060c0e11111111111111111111111111111111111111111111111111111111111111111111110c0a0300000000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000000000000000000000000000000000000000000002101b2224262626262626262626262626262626262626262626262626262626262626262626231c110300000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000000000a1b2d3d4b5c647a8798a0b0b5c1caced9dfe5ded8cec9c0b4ab9f968578635a493b2a18040000000000081c3043546b8095abbbaa96806b5a484b6074859ba4b4c0c0b4afab9f9c9d9fabb1b2a49ca4b6c7b29d8772584a5c72879cb2b29d88725645321e090000000a1e33465774899fb4c9decebbaa8c77614c36261a1a27374d62778cabbccfdec9b39e89745645321e090000000000081c3043546f8499aec4d9ecd7c2ad97826d583b2a18040f20364b6075889eb3c8d9ebe0cbb8a6927c67523d2d1a000f24394f64798ea8bacde1dfcab6a58c77624d37220d000000000000000002162b4053646e707070707070707a8ea6b7cbc5b09a857070707070707070708197acc6d6bca7927d7070707070635a4935200c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000000000000000070d0f1111111111111111111111111111111111111111111111111111111111111111100e09000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000000031628394a5b647b8a9da5b2bec9d1dfe2ebe0d2c9c8bbb4ada29a8c8174635a493c2c1d0c000000000000011426364d63788c9fb4b49f8b78624d45566277869aa2b3b8c5c9bcb4b1b2b4bcb1a098869cb1c4b6a58c77614e64798ea5b6ac96816c57382816030000000c21364c61768ba9bacddfcab49f8a75604b3620111221364b60768a9fb4cadfccb9a78b76604b36210b00000000000b20354b6074899eb3c8dee8d6c5a8937d68533e281300091d3145566b8095aabbcee2d9c8b39e8875604b36200f000b20354b6075899fb4c9dee6d3c3a7917c67523c27120000000000000000001023364653585b5b5b5b5b5b5c73889db2c8cab49f8b77615b5b5b5b5b5b657b90a8b9ccc3ae99836e575b5b5b4d493c2c1906000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000000091e32455763798a9ea8b6c3cfdde4dfdcdad2c2b5b1aa9f988f84796c6056493c2c1e0e0000000000000000082135495b6e8398abbaa998826d5d4c4859627684939ea7b0b4c1bcbcc0b3af9f97827d92a7afafa5907b665a6b8095abb9a7907b65503b2610000000000c21364c61768ba9bacde1cebbaa8e79644f3d2f26262f3e4f647a8fabbccfe0ccb9a78b76614b36210c00000000000e24394e63798ea7b8cce0e0ccb8a78e78634e39230e00021527384d62788b9fb4cadfcebbaa95806b5645311d0900081d31445570859aafc5daecd6c1ac97816c573a2a1704000000000000000006182836404345454545453e576c8197acc6cfbcab927d6853394545454b6075899eb3c9c9b49f8976604b454538352c1e0e00000000000000000000000000000000000006101618202020202020202020202020202020202020202020202020202020202014110b02000000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000000006101618202020202020202020100e080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000004172a3a4b6075869ca8b9c6d4e1e2d3cac7c5c8b5a49c948b837a6f645c4b45382c1e0e00000000000000000006192c3c4e63798d9fb5b59f8d7b655b4a485861737e89949ba3a4a6a7a4a29a908174798d99999999957f6a62788a9eb4b39e8974604b35200b000000000a1f33465874899fb4c9ded8c8aa947f6a5c4c403b3b404c5c6a8095aac9d9dec9b39e89745746321e09000000000014293e53697e93a8c5d6e8dec8b39e8974604a35200b00000a2035485a6e8399aec3d3cab49f8b78624d382715020001152737556b8095aac9daecdcc6b19c86715847331f0a0000000000000000000a18232b2e30303030303b51667b90a8b9cdc9ae99846f574632303144556e8398adc8cdbaa8917c665137272320190e0000000000000000000000000000000000000917232a2d353535353535353535353535353535353535353535353535353535353529261f14060000000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000000917232a2d35353535353535353525221b1002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000000a1f3347586b8095a4b6c6d6e4d8cec3b6b2b0b4b19c867f776d645c4e4a3d32281a0e00000000000000000000000e21364a5b6c8197a6b7ab9e8a7963594846546068777e858c8f91928f8c847c6c60728384848484847f6a6e8399a8b9a897826d5544311d08000000000417293a5d72879cb2c7dcdfc9b49f8b7a665e545151545e667a8b9fb4c9dfdcc6b19c86715c392816030000000006192c3c596e8398aec3d8edd9c4ae99846f5443301c07000005192b3c50667b90a5b6cac3ae99836e5a48341a0a00000011263b51667b90abbccfe3dfcab59f8b77614c37210c00000000000000000000061016191b1b1b1b21364b6075899eb4c9c9b49f8a76614b3621273752677c92aabbcec6ad97826d5544311d0c06000000000000000000000000000000000000061727353f424a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a3e3b3124140200000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000061727353f424a4a4a4a4a4a4a4a4a3a372e2110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000000c21374c6176899eb4c2d3e4d8c8bbb4a59d9ba3a28d786962594f4b3e362d1e160a000000000000000000000000071a2d3d4c6176889dabb9a89d8777625a4c434b5861697077797c7d7a776f665e54606e6f6f6f6f6f6a677d91a1b2b49e8a77624d372715010000000000172c42576c8197acc2d3e2cdbaa99d877c6f6a66666a6f7c879daabbcee2d2c2ab96816c56412c1700000000000c2135495b73889db3c8ddead8c8aa947f6a55362513000000000e20354a6073879cb2c7b6a4907b65503c2b19000000000c21374c61768b9fb5cadfe3cfbcab917c66513c26110000000000000000000000000203060606091e3245566e8399aec9cdbaa9917c6751382721364c61768a9fb4c9c8b39e8974604b35200b000000000000000000000000000000000000001023354552586060606060606060606060606060606060606060606060606060606060534e42311f0b00000000000000162b40556b8095aac0d5dbc6b09b86715b46311c060003192e43586e8398adc3d8d8c3ad98836e58432e1900000000000000000000000000000000000000000000000000000000001023354552586060606060606060604f4b3f2e1b080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000215283854697f94a8b9cde0d8c8bbaa9f9487859ba28d77624d483b372e211a17171714120c020000000000000000000f1f334658657b8d9fb4b7a59c8678665e4b46474c545962646767646159514c434a595a5a5a5a5e667c8c9fb4b7a5947f6a594834190900000000000010253b50657b90a4b6caded7c7b7a59d90847f7b7b7f84909da6b7c8d8dec9b5a48f7a654f3a251000000000000e23384d63788da6b7cbe0e2cebbaa8f7a65503a251000000000071c304354697e94a9bab29c8773604a35200d000000000a1f33475871879cb1c6dcecdac9ab96816b5639291703000000000000000000000000000000000216283852687d92abbccfc7ad98836d5645311f3346586f849aafc4ccb8a7907a65503b251000000000000000000000000000000000000000162a3f52636d757575757575757575757575757575757575757575757575757575757569604e3b261100000000000000162b40556b8095aac0d5dbc6b09b86715b46311c000003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000162a3f52636d757575757575757575655d4b37220e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000091d3245566f859aafc6d6e2cebbaa9f8c7f758096a28d77624d382a2c2c2c2c2c2c2c29271f140600000000000000000417293a4c5d6a7f949fb1b5a49c897c6b61574b463b474c4f51524f4c473b38303538454b57616c7c8b9faabaa99d8774604b3b2b18000000000000000b20354b6073869cb1becfded4c3b7b2a199949090949aa1b2b7c4d4ddcebeb19c8673604b35200b000000000013283d53687d92a8c4d5e7dfcab49f8a76604b36210b00000000001325364c61768a9fb4a8937e695443301c07000000000417293a576c8297acc1d7ecdbc5b09b86705746331e0a00000000000000000000000000000000000c22374c61778b9fb4cac9b39e8975604b3620293a53697e93a8c1d2c5ac96816c573e2d1b07000000000000000000000000000000000000182d42586d828a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7e69533e291400000000000000162b40556b8095aac0d5dcc7b19c87725c3a2a18040003192e43586e8398adc3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000182d42586d828a8a8a8a8a8a8a8a8a7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000b20364b60758a9fb4c9dfdfcab49f8c7b696b8096a28d77624d3d41414141414141413e3b3224140200000000000000000b1b2f3f50616d8197a0b4b5a79e8d80756a6157504b45383e3d3a3a3c3d3f3d494e56606775818d9fa9baab9f8b7b655645321d0d00000000000000081d314455667b90a0b2c0d0e1d4cabfb3afa9a6a6a9afb3bfcbd4e1cfbfb19f907b655443301c080000000005192b3b586d8298adc2d7e5dbc6b09b86715745321e090000000000081f3347586d8297ad9f8a76614c36251300000000000013283d52687d92a7c5d5e7dfcab49f8b76614b36210c00000000000000000000000000000000000b1f34475970859bb0c5ccb9a7907b6550362522374d62778ca3b5c9c7b29d87725c4a36220d000000000000000000000000000000000000182d42586d82979f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f937e69533e291400000000000000162b40556b8095aac0d5ddc8b39e88735847331f0a0004192e44596e8399aec3d8d8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000182d42586d82979f9f9f9f9f9f9f8f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000d23384d62788da9bacde2d5c0ab96806b5d6b8096a28d77624d525757575757575757544f42321f0c000000000000000000112133434b607282949fabb8ab9f96887f766b6560565553525050515355595b636b757d87979fabbab49f8d7d675d4b3828160000000000000000011426374c5e6d8298a2b3bfcdd7dfd0c7c4bfbbbbbfc4c7d0dfd6cdbfb2a197826d5d4b36261401000000000b2034485972879db2c7d0d0d0c1ab96816c563928160300000000000417293a4f647a8ea397826d58463318080000000000000e23384d63788da6b8cbd0d0cebbaa907b65503b2610000000000000000000000000000000000004182a3b546a7f94a9c3bbc5ac97816c5443302034485971869bb0bbbbb7a58e79644f39240f000000000000000000000000000000000000182d42586d8297adb5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a8937e69533e291400000000000000162b40556b8095aac0d5e0cbb8a68c77614c37220d00031729395b71869bb0c6dbd8c3ad98836e58432e190000000000000000000000000000000000000000000000000000000000182d42586d8297adb5b5b5b5b5a48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000f243a4f64798fa4c7d7eaceb9a48e7964566b8096a28d77625f676c6c6c6c6c6c6c6c69604f3b271200000000000000000003151c30435460727f8d9ea7b5b5a69e9488807b756f6b6967656566686a6e73788088929da5b5b6a99f937e695f4d3f2e1a0a00000000000000000009192f404b60748399a1b4bac6ccd5dad9d4d0d0d4d9dad5cbc6b9b4a0988373604b3f2e180800000000000d22374d62778ca5b6bbbbbbbbc3a7917c67523c2712000000000000000c22364a5c70859b8e79644e3a2917000000000000000c2135495b73889eb3bbbbbbbbc8aa95806b553828150200000000000000000000000000000000000e23394e63798ea5a5a5a5a59d8874604a35202b3b556a7f95a5a5a5a5a595806b55362614010000000000000000000000000000000000182d42586d8297adc2cacacacacacacacacacacacacacacacacacacacacacacabea8937e69533e291400000000000000162b40556b8095aac0d5e7d5c5a6907b66513b2b18090a1e33465773889eb3c8ddd7c2ac97826d57422d180000000000000000000000000000000000000000000000000000000000182d42586d8297adc2cacacabaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000010253b50657a90a5bacfe1cbb6a18c7661566b8096a28d7762677d81818181818181817e69543e291400000000000000000000011426364354606a7c899ba3b2b6b3a79e96908984807e7c7a7a7c7d7f84888d959ea6b2b7b4a49c8b7e69604e413021110000000000000000000000111d314556617583939fa8b3b8c5c5c8c9cecdc9c8c5c4b8b3a89e92837560554431211100000000000012273d52677c92a5a5a5a5a5a5a5a58c77624d37220d00000000000000071b2d3e52687d9285705c4a361c0c0000000000000006192c3c596e8399a5a5a5a5a5a5a59a85705645321d0900000000000000000000000000000000000c2136495b72879090909090908f7a644f3a2524394e63798e90909090909086715443301c080000000000000000000000000000000000182d42586d8297adc2d7dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd3bea8937e69533e291400000000000000162b40556b8095aac0d5ead7c2ad98826d594836261e1a27374c61768ba6b8cbe0d5c0ab96806b56412b160000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7dfcfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000e24394e63798ea3c5d6e8cfb9a48f7a64566b8096a28d776272879696969696969696836e59432e19040000000000000000000008182636434a5e657885929ca5b2b7b3aba89e999593918f8f919294999ea7aab3b8b4aa9f97867969604e42312312030000000000000000000000021527384657616e7e8a959ea7aab0b2b4babab4b2b0aaa69e958a7d6e60574537271503000000000000172c42576c819090909090909090908772594834200b00000000000000001021364b6075897d67523e2d1b000000000000000000142a3f54697f9090909090909090908a75604b36200b0000000000000000000000000000000000061a2c3d4e647a7b7b7b7b7b7b7b78624d382221364a5b657b7b7b7b7b7b7b7c73604b35200b0000000000000000000000000000000000182d42586d8297adc2d7ecf8eadfd8d5d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2bea8937e69533e291400000000000000162b40556b8095aac0d5eadfc9b49f8b7762544437322c354455697e94a9c4d5e7d4bfa9947f6a543f2a150000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000d22374c62778ca7b8cce0d7c1ac97816c5f6b8096a28d77677c91a5acacacacacac96816c57412c1702000000000000000000000008182530404c5a62737d87929da5acb2b7b4aeaaa8a7a5a5a6a8aaaeb3b8b4b0a89e968b8175635b4e4231241405000000000000000000000000000a1a2839464b606877808890959a9d9fa9a99f9d9a9590887f7668604b4539281909000000000000000f243a4f647a7b7b7b7b7b7b7b7b7b7a644f3b2b18050000000000000000091e3245566a7f74604b3620100000000000000000000c22374c61777b7b7b7b7b7b7b7b7b7b76604b36210b0000000000000000000000000000000000000f21364a5c6466666666666666625a4835201a2d3d4c5e6566666666666666605443301c080000000000000000000000000000000000182d42586d8297adc2d7eceadacdc3c0bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbda8937e69533e291400000000000000162b40556b8095aac0d5eae2cdbaa999837260554b453d494e6074879db2c7dde6d3c3a6917c67513c27120000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000b20354b6074899eb3c8ded9c5b19f927d6e6b8096a28d7879889eb3c3c1c1c1bcab927d67523d28120000000000000000000000000008131c2f3c48556067747d8791979da6aaadafb1b3b9bab4b2b1afabaa9f9b948a81786c60564a3d312414060000000000000000000000000000000b1b2832424e59616a757b8085888a8b8b8a8885807b756a61584e4232281b0a00000000000000000d22364a5c64666666666666666666645c4a361d0d000000000000000000021628384f616a605645321d090000000000000000000b1f3447596166666666666666666666605745321e09000000000000000000000000000000000000071a2d3e4a4e505050505050504d483c2b190f1f2f404c50505050505050504b43362614010000000000000000000000000000000000182d42586d8297adc2d7ecdfcdbcb0aba8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8937e69533e291400000000000000162b40556b8095aac0d5eaead7c7b3a19781736660565b5b636e8096a5b7cbdfdfcab6a58c77624c37220d0000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000081c3043546e8398aec4d5e1cebdac9b92837a8196ab9681899ea6b8cbd6d6cab49f8b77614c37220c000000000000000000000000000000111e2b37444b556068747c82888e94989a9c9ea8a99f9d9b9a96908a857f766c625a4b45382d1f140600000000000000000000000000000000000b161e313b474c5660656b70737476767473706b6560564c473a311e160a000000000000000000071b2d3e4a4f5050505050505050504f4a3e2d1b00000000000000000000000a1a32434f544b453828150200000000000000000004182a3b474c505050505050505050504b4539281603000000000000000000000000000000000000000f202d36393b3b3b3b3b3b3b38352b1e0e0111212f383b3b3b3b3b3b3b3b3530261808000000000000000000000000000000000000182d42586d8297adc2d7ecd8c3b09e95929292929292929292929292929292929292927e69533e291400000000000000162b40556b8095aac0d5eaf5e5d0bfb19f97867c757170727883969eb0c3d4e6d8c8b29d8772594834200b0000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000114263653687d92a6b7cbe0dbcab9aca09890969eb09f969ea8b8c4d5e1cfbeaf99846f5947341f0a000000000000000000000000000000000e19263137444b5660666d73797f838587898b8b8a888684807b76706a61584d483c32281a0f010000000000000000000000000000000000000003141d2a3438454b50555b5d576161575d5b55504b4538332a1c1303000000000000000000000010202d363a3b3b3b3b3b3b3b3b3b39362d20100000000000000000000000001525323c3f3632281a0a00000000000000000000000c1d2a34373b3b3b3b3b3b3b3b3b3b3632281b0a0000000000000000000000000000000000000000010f1a2124262626262626262220190e000003111c232626262626262626201c140800000000000000000000000000000000000000182d42586d8297adc2d7ead5c0ab95807d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d79634e39230e00000000000000162b40556b8095aac0d5eaf0e5decebeb1a49c91898785878d98a0b0bccde2e2cebbaa95806b563b2b18050000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c0000000000000000000b21364b6075889db3c0d1e2d7cabeb2ada5abb0bdb0acb3b9c6d5e2d3c3b2a08f7a644f3a2a1804000000000000000000000000000000000009141d273138454b51575c646a6e70727476767473716f6b666157554c473a352b1e160a00000000000000000000000000000000000000000000000c181f2832363b404539464b4b463945403b3632281f170c0000000000000000000000000002101b222426262626262626262624221b1002000000000000000000000000071520272a201d150a000000000000000000000000000c181f2226262626262626262626211e160a0000000000000000000000000000000000000000000000070d0f111111111111110d0b050000000000090e10111111111111110b08010000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a68686868686868686868686868686868686868635b4936210c00000000000000162b40556b8095aac0d5eae0d3cac7c6c2b5b1a99f9c9b9da5aeb2becddae6d4c4b49f8b78624d37220d000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000000091e324556697e93a2b4c3d2e2dccfc6c3bac1c4cdc4c1c9ccd6e3d3c4b6a598836e5c4b371c0c000000000000000000000000000000000000000109151d2731363c3e4a4e55585a5c576061575d5c5a56504b463937332a20190e0300000000000000000000000000000000000000000000000000040a161e21262b30293336363229302b25201d150a0400000000000000000000000000000000070d0f1111111111111111110f0d07000000000000000000000000000000030c12150b0902000000000000000000000000000000040b0c111111111111111111110b0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a655353535353535353535353535353535353534e493d2c1a0600000000000000162b40556b8095aac0d5e5d3c2b6b1b1b5c2c7bab4b1b0b2b7c3c6cfdce5d7c8b7a697826d594834200b000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000000031628384b6074849aa5b5c2ced9e2dad8cfd6d8e0d9d6dee1d9cfc3b6a69c8776614c3e2e1b00000000000000000000000000000000000000000000010a151d20272d36393f434539454b4c46394645413b363329211f170c06000000000000000000000000000000000000000000000000000000000002090b10161b171e21211e161b16100b0902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000812191b202020202020202016140e04000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d39362c1f0f0000000000000000162b40556b8095aac0d5decab6a49c9ba3b5c3cdc9c6c5c7cad4dbe2ded2c7baaa9d8876614c3b2b1905000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000000000a1d3144556177879ba3b4bbc8ced8dadddfe7e6dfdcd8cec9bcb4a49c887963584633201000000000000000000000000000000000000000000000000002090b111a21242a2e30283236363329312f2b26211e170c0a0400000000000000000000000000000000000000000000000000000000000000000000000000030a0c0c0a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1a262d3035353535353535352b292116080000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2828282828282828282828282828282823211a0f010000000000000000162b40556b8095aac0cacac7b19c86869ba5b3bfcacfd9d7d9d8d6d3cac2b5a99f8c7c655847331d0d00000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c00000000000000000000021527374759627885979faab4bac7c5c8cbd4d4cac7c8bbb4ab9f978678635b4a3a29170200000000000000000000000000000000000000000000000000000000070d0f15191b161e21211e171c1a16110c0a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d0f0f0f0f0f0f0f0f0e0c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c121517191a191715110c0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000081a2a3842454a4a4a4a4a4a4a4a413d3426160400000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251414141414141414141414131313130e0c0600000000000000000000162b40556b8095aab5b5b5b5b09b85778799a1afb4bcc9c2c4c3c1c2b6b1a49c8a7c665e4c3a2a170000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2515151515151515151515100e080000000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36210c000000000000000000000009192a3b485a6275818c989fa9acb0b3b7c4c3b7b2adaa9f988c8176625a4a3d2d1b0b000000000000000000000000000000000000000000000000000000000000000000030003090b0c0a030005010000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d1115181a1b1c1a1917140f0b080100000000000000000000000000000000000d192022242424242424242424211a0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c171f21272b2d2e2f2e2c2a27211f170c0a040000000000000000000000000000000000000000000000000000000000000000000000000012263848555b606060606060606056514434210e00000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2929292929292929292929292321190e00000000000000000000000000162b40556b80959f9f9f9f9f9f9b86717783919a9fababadafadaba9a49c93867a665e4c402f1c0c0000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2a2a2a2a2a2a2a2a2a2a2a25231c1103000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c362113130c0a0400000000000000000c1d2b3c4857606c79838a91979a9da6b0b7a59d98938b837a6c6158493c2d1f0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d181f22262a2d2f3031302e2c2924201c14080800000000000000000000000000000d1d2b34373a3a3a3a3a3a3a3a39362d1f0f0000000000000000000000000000000000000000000000000000000000000000000000000000040b171e212a33373c404244454341403c37332a211f170c040000000000000000000000000000000000000000000000000000000000000000000004192d4255667075757575757575756b62513d291400000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3e3e3e3e3e3e3e3e3e3e3e3e3e38352c1e0e000000000000000000000000162b40556b808a8a8a8a8a8a8a8a8571626e7c848b9395989a9896938d867e73645c4c402f2111000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3f3f3f3f3f3f3f3f3f3f3f3f3b372e2111000000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c36282828221f180c00000000000000000e1e2b39454b5b636e767c828588969eb29d87837e776e645c4c463a2b1e0f0100000000000000000000000000000000000000000000000000000000000000030a0c1115181a1b1c1b1a1814110b0903000000000000000000000000000000000000000000000000000000000000000000070d1920222a34373c3f434445464543423e39353026221b1008000000000000000000000005192b3b484d4f4f4f4f4f4f4f4f4e4a3d2d1a070000000000000000000000000000000000000000000000000000000000000000000000000c171f2933363a474c515557595a585755514c473a3733291f170c000000000000000000000000000000000000000000000000000000000000000000061b30455b70848a8a8a8a8a8a8a8a806b56412b1601000000000000182d42586d8297adc2d7e4cfbaa48f7a6553535353535353535353535353534d493c2c1906000000000000000000000013283d50626b757575757575757571674c5f676f777d80828483817e78726860554b3e2f221203000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a6555555555555555555555555555504b3f2e1c080000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76614c3e3e3e3e37342a1c0c00000000000000000e1b28323d494e5761676d70738096a28d786d6962594f4a3e33291b0e000000000000000000000000000000000000000000000000000000000000050b0d161e21262a2d2f3031302f2d2a26211e160c0a0400000000000000000000000000000000000000000000000000000000040f1a212b34383b474c5154585a5b5b5a5857544e4b4336372e231c11030000000000000000000b20344859626464646464646464635b4a36210c0000000000000000000000000000000000000000000000000000000000000000000003111c293339464c545861676a6c6e6f6e6c6a666158554c473a332a1c100200000000000000000000000000000000000000000000000000000000000000061b30455b70859a9f9f9f9f9f9f96806b56412b1601000000000000182d42586d8297adc2d7e4cfbaa48f7a696969696969696969696969696969635b4935210c00000000000000000000000d213344505560606060606060605b56494d515962686b6d6f6e6c69635b534b44372e20120400000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a655d4b37230e0000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b766153535353534c473a2a180400000000000000000a161e2c3539464c51575b6b8096a28d7762534c483b362e1f170b0000000000000000000000000000000000000000000000000000000000070d181f222932363c3f424445464544423f3b363228221f180c06000000000000000000000000000000000000000000000000000c171f2d363c484d555962666a6d6f70716f6e6c696460544f4b3f382f1e160a00000000000000000d22374d62787a7979797979797979634e39240e0000000000000000000000000000000000000000000000000000000000000000000816212f3a464c57616971777c8082838483817f7c76716a61584c473a2e201406000000000000000000000000000000000000000000000000000000000000061b30455b70859ab0b5b5b5b5ab96806b56412b1601000000000000182d42586d8297adc2d7ebd6c0ab96807e7e7e7e7e7e7e7e7e7e7e7e7e7e7e79634d38230e0000000000000000000000041526333d404a4a4a4a4a4a4a4a464238393b484d5356585a5856544e493d3531261910020000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ecd7c1ac97817f7f7f7f7f7f7f7f7f7f7f7f7f7f7b65503b25100000000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6cbb6a18b76686868686868615947341f0a000000000000000000030f1a212933363c42566b8096a28d77624d38342a221b100400000000000000000000000000000000000000000000000000000000060f1a212a343739464b5154585a5b5b5b5a5754514b453837332a211a0f0500000000000000000000000000000000000000000002101c29333d4a4e5a626a71777b7f828485868583817e79746e645d504b3f32281a0c00000000000000162b40556b808f8f8f8f8f8f8f8f85715b46311c0600000000000000000000000000000000000000000000000000000000000000081626333f4c58616b767f868b919597999a989695918b867f766b61584b3e312414040000000000000000000000000000000000000000000000000000000000061b30455b70859ab0c5cacac0ab96806b56412b1601000000000000182d42586d8297adc2d7ecd8c4b09e969393939393939393939393939393917c67523c2712000000000000000000000000071521282b3535353535353535312e26242b34373e40434543413e38352c201d140900000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ecd9c5b19f979494949494949494949494949494806b56402b160100000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6d3bea9947f7d7d7d7d7d7e77614c37220c0000000000000000000000060b171e212b41566b8096a28d77624d3822180d0700000000000000000000000000000000000000000000000000000000010e19202d363b484c535761666a6d6f7071706f6d69666056524c473a352c20180d000000000000000000000000000000000000000412202d3a474c5b636e7880868b919498999a9b9a9897938e89837a70655d4b45382a1c0c000000000000162b40556b8095a4a4a4a4a4a49b86715b46311c060000000000000000000000000000000000000000000000000000000000000816263444515d65768089949b9fabaaacaeafadacaaab9f9b94898076645c4e423122120200000000000000000000000000000000000000000000000000000000061b30455b70859ab0c5dad5c0ab96806b56412b1601000000000000182d42586d8297adc2d7ece0cdbcb0aba8a8a8a8a8a8a8a8a8a8a8a8a8a7917c67523c271200000000000000000000000000040d131620202020202020201c19130d182022282b2d2f2e2c2923211a0e08010000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ece1cebdb1acaaaaaaaaaaaaaaaaaaaaaaaaaa95806b56402b160100000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6dbc2ae9d9493939393938e79644f39240f00000000000000000000000000030a162b41566b8090908d78624d38220d000000000000000000000000000000000000000000000000000000000009141d2b353e4a4e5962686f767b7f828485868584827f7b756e6861584e493d342b1c130800000000000000000000000000000000041222303e4a58616c79838b959b9faba9adafb0b0afadaca9a79e988f857b6c6056473a2a1b0b0000000000162b40556b8095aab9b9b9b9b09b86715b46311c060000000000000000000000000000000000000000000000000000000000031626344451626b7b88969ea8b1b5bcc9c1c3c4c3c1c9bcb4b1a89e96877a68604e4030201000000000000000000004060a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a1b30455b70859ab0c5dad5c0ab96806b56412b1608060000000000182d42586d8297adc2d7ecebdbcdc4c0bebebebebebebebebebebebebca7917c67523c271200000000000000000000000000000000000b0b0b0b0b0b0b0b06040000050b0d1316181a1917140e0c060000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ececdbcec5c1bfbfbfbfbfbfbfbfbfbfbfbfab95806b56402b160100000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6dbcbbbaea9a8a8a8a8a48e79644f39240f0000000000000000000000000000000e23384d63797b7a7b74604b36210b000000000000000000000000000000000000000000000000000000000b1926313c484d5c646f777d848a919497999a9b9a999794908a837d776e635b4d483b3025180b000000000000000000000000000002122230404d5c6476818c999faab0b5bcc9c2c4c5c6c4c3c1c5b9b3ada39b8d81756158473929170300000000162b40556b8095aac0cecec6b09b86715b46311c0600000000000000000000000000000000000000000000000000000000001121334451626c808d9da6b3b9c6cacfdad7d8d9d8d6d9cfcac6b9b4a59d8b7e685f4d3e2d18080000000000000912191b2020202020202020202020202020202020202030455b70859ab0c5dad5c0ab96806b56412b201d1b140b000000182d42586d8297adc2d7ecf9ebe0d8d6d3d3d3d3d3d3d3d3d3d3d3d1bca7917c67523c27120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ecf9ece1d9d7d4d4d4d4d4d4d4d4d4d4d4c0ab95806b56402b160100000000000000000000000000000000000000000000000000000000001c31475c71869cb1c6d2d2cbc2bebdbdbdb9a48e79644f39240f0000000000000000000000000000000c2135495b63656565605645321e090000000000000000000000000000000000000000000000000000000e1b2937444b5a626d79848c93999fa9a9adafb0b0b0afaca9a99f99928b83796d62594a4336281b0e00000000000000000000000000102030404d5f677a87979faab4bbc8cacfdad7d9dadbdad8d6d6ccc9c1b5ab9f968576615746331e1200000000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000000000000000000000000000000000000000000000b1b2e3f51626c81959fabb7c4ccd6dfe0ded9d6d4d5d9dfe2dfd6ccc3b7aa9f8d7d675c4a36261401000000000c1a262d303535353535353535353535353535353535353535455b70859ab0c5dad5c0ab96806b56413535322f281c0e0000182d42586d8297adc2d7ecfff5eae2dfdededededededededededed1bca7917c67523c2712000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c121415151515151515151515151515151515151515151515151515151512100a01000000182d42586d8297adc2d7ecfff3e8e0deddddddddddddddddddddd5c0ab95806b56402b160100000000000000000000000000000000000000000000000000000000001c31475c71869cb1bdbdbdbdbdbdbdbdbdb9a48e79644f39240f00000000000000000000000000000006192c3c494d5050504b45382816020000000000000000000000000000000000000000000000000002101e2c3a4655606b78828d999fabafb4bac7c2c4c5c6c5c4c2c7bab4aeab9f998c82776a605446392b1e0f01000000000000000000000a1a2d3e4d5f677d8b9da5b4bbc8ced9dfe3e0dedad7d4d5d8dbdee0ded1c9bcb5a39b8575614b40301a0a000000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000000000000000000000000000000000000000000031628394b5d6b80959fb5bcc9d4e1e0d5ccc8c4c1bfc0c4c9cdd7e3e1d4c8bbab9f8a7a645443301c08000000091a2a3842454a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a5b70859ab0c5dad5c0ab96806b564a4a4a47443a2c1c0b00182d42586d8297adc2d7ecf5e5d8cec9c9c9c9c9c9c9c9c9c9c9c9c9bca7917c67523c27120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071520272a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a27251e13050000182d42586d8297adc2d7ecf3e3d5ccc8c8c8c8c8c8c8c8c8c8c8c8c0ab95806b56402b160100000000000000000000000000000000000000000000000000000000001c31475c71869ca8a8a8a8a8a8a8a8a8a8a8a48e79644f39240f000000000000000000000000000000000e1e2c35383b3b3b3632281a0a000000000000000000000000000000000000000000000000000010202e3c49586173808b989fabb5bcc9c9cdd7d7d9dadbdad9d7d7cdc9c9bcb4aa9f978a7f726157483c2d1f0f000000000000000000021527384a5c677d8c9fa9b7c3ced9e2e3dcd6ccc9c4c2bfc0c2c6c9d2dce7dacfc2b5a399836f5e4d382816020000162b40556b8095aac0d5dbc6b09b86715b46311c06000000000000000000000000000000000000000000000000000000091e324657657b8d9fb5bdcfdae3d6ccc5b8b3afaba9abafb4bac7cfd9e6d8c9baa99c8673604b36261401000012263848555b5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f70859ab0c5dad5c0ab96806b5f5f5f5f5d574b3a281400182d42586d8297adc2d7ecead8c7bab4b4b4b4b4b4b4b4b4b4b4b4b4b4a7917c67523c271200000000000000000000000000000000000000000000000000000000000000000000000000000000000000031525323b3f4040404040404040404040404040404040404040404040404040403d393023130100182d42586d8297adc2d7ece8d5c5b8b3b3b3b3b3b3b3b3b3b3b3b3b3ab95806b56402b160100000000000000000000000000000000000000000000000000000000001c31475c7186939393939393939393939393938e79644f39240f00000000000000000000000000000000000e192123252525211e160a00000000000000000000000000000000000000000000000000000d1d2e3e4b5b637683959fa9b5bcc9cfdadfe2e3dfdddbd9dbdddfe3e1ded9cfc8bbb4a99f948375625a4a3d2d1c0c0000000000000000091d314556647a8b9faabac7d4e2e7e0d1c8c5b9b3afacaaaaadb1b5c2c8d1dee3d1c1b3a1917c665645321e090000162b40556b8095aac0d5dbc6b09b86715b46311c060000020503010000000000000000000000000000000000000000000c21364b6175879dabbccfe3e1d4c5b9b3a79e9a9694969a9fa9b4bcc9d8e6d7c7b5a4927d675443301c080000192d425566707575757575757575757575757575757575757575757575849ab0c5dad5c0ab96807575757575726957442f1b00182d42586d8297adc2d7ece2cebaa99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f917c67523c2712000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2032434f54555555555555555555555555555555555555555555555555555555524d41301e0a00182d42586d8297adc2d7ece0ccb8a79e9d9d9d9d9d9d9d9d9d9d9d9d9d95806b56402b1601000000000000000000000000000000000000000000000000000000000012273c52677d7d7d7d7d7d7d7d7d7d7d7d7d7d7e77614c37220c000000000000000000000000000000000000060c0e1010100b090200000000000000000000000000000000000000000000000000000a1b2b3c4b5c64798699a1b4bac7cfdae3e0ded9cfcac8c6c4c6c8cacfdadee1e3d9cec7bab4a0988578635b4a3a2a1909000000000000000b20364b6075879ca9b8c4d2e0e3d5cbc0b4afa79e9a979495989ca4b0b4c0d1dedfd0bfb29d8775604b36210b0000162b40556b8095aac0d5dbc6b09b86715b46311c0c1215181a1916140f0d0700000000000000000000000000000000081c2e3f54697f94a5b6c9dae2d4c3b7a79e948984817f80848a969fabbbc8d8e5d2c2b29d8773604b35200b00001b30455b70858a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8b9aa2b4c8dddfcab59f8d8a8a8a8a8a87725d47321d00182d42586d8297adc2d7ecdfc9b49f8b89898989898989898989898989898a7c67513c27120000000000000000000000000000000000000000000000000000000000000000000000000000000000000012273b4f61696a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a675f4d39251000182d42586d8297adc2d7ecdec8b39e8988888888888888888888888888887f6a553f2a150000000000000000000000000000000000000000000000000000000000001025394d5f676868686868686868686868686868615947341f0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008182839485a647a899ca4b3bfced8e3e1d6ccc8c9bcb4b3b0afb1b3b5bcc9c9ccd6e2e2d7cdbfb2a39b887963594737271502000000000000091d314556677d8b9ea6b5c2d0d0c5b8b3a29a928985827f8083868f9aa2b4c0d1e3dfcab7a5917c67513727150200162b40556b8095aac0d5dbc6b09b86715b46311f21272a2d2f2e2b2924221b100a04000000000000000000000000000e23374b5d72879cb1c3d3e7d5c4b7a59d897f766f6c6a6b6f77818d9faabbcee2dfcab7a58f7a644f3a240f00001b30465b70859b9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9faab4c0d1e4e3cfbcab9f9f9f9f9f9d87725d48321d00182d42586d8297adc2d7e4cfbaa48f7b747474747474747474747474747474675f4d39241000000000000000000000000000000000000000000000000000000000000000000000000000000000000000142a3f54697f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7d67523d271200182d42586d8297adc2d7e4cfbaa48f7b73737373737373737373737373736a61503c28130000000000000000000000000000000000000000000000000000000000000a1d30414d5253535353535353535353535353534c473a2a1804000000000a0f111515151515151513100b010000000000000000000000000000000000000000000000000000000000000000000013253645576278889da7b6c2d0e2e5d7cdc5b8b3adab9f9d9b9a9b9d9fabadb3b9c6ced8e5e1cfc1b5a69d8777615544311d12000000000000021527384d5f677b889ca4b3bfc0b3a69e91857d756f6d6a6b6d717a849aa2b4c8dce6d4c3ad98836e5544311d0800162b40556b8095aac0d5dbc6b09b86715b462933363d40424443413e39362d221f180c01000000000000000000000010253a50657a8fa4b6cacacacbb8a69d87786a615756545658616b7c8c9fb4c3d4e6d4c3aa95806a55402b1500001b30465b70859bb0b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4bbc8d1deefecdac9bcb5b4b4b4b29d87725d48321d00182d42586d8297adc2d7e4cfbaa48f7a655f5f5f5f5f5f5f5f5f5f5f5f5f5f514d41301d0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e7388959595959595959595959595959595959595959595959595959595836f59442f1a00182d42586d8297adc2d7e4cfbaa48f7a655e5e5e5e5e5e5e5e5e5e5e5e5e55504333200d00000000000000000000000000000000000000000000000000000000000001122330393c3e3e3e3e3e3e3e3e3e3e3e3e3e3e37342a1c0c00000004121d24272a2a2a2a2a2a2a28251e13050000000000000000000000000000000000000000000000000000000000000000071c3043546075859ba6b8c5d3e0ded1c7bab4a79e97918b88868486888b91989ea8b4bac7d2dfdfd2c4b7a59a8473604b413019090000000000000a1a30414d5d64788699a1b0b3a29a887c70676056575555585d6574849ab0c2d3e5dec9b49e8975604b36200b00162b40556b8095aac0d5dbc6b09b86715b463a464c5255575a5856544e4a3e37342a1c140800000000000000000000152a40556a7f95aac2b5b5b5c6b39e8878635a4b46393f3a474c5e697f94a5b7cadfdbc5b09b86705b38271502001b30465b70859bb0c5cacacacacacacacacacacacacacacacacacacacaced8e6effcf7e7dacfcacacac7b29d87725d48321d00182d42586d8297adc2d7e4cfbaa48f7a654f4a4a4a4a4a4a4a4a4a4a4a4a4a3c3930231201000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa99836f59442f1a00182d42586d8297adc2d7e4cfbaa48f7a654f4848484848484848484848483f3c332515030000000000000000000000000000000000000000000000000000000000000005121d25272828282828282828282828282828221f180c00000000122230393c3f3f3f3f3f3f3f3d3a31231300000000000000000000000000000000000000000000000000000000000000031628394a60728298a3b5c4d5e3dccfc0b4a99f9589827b7573716f7173767c8289969fa9b5c1d0dde2d4c3b4a297816c5f4d372715020000000000001323303f4b5a627583969ea29a8377665e524b45383f403f4b5662778ca4b6cadee1cdb9a88d78624d38230d00162b40556b8095aac0d5dbc6b09b86715b4b4f5861676a6d6f6e6b69645c554c473a3026180c000000000000000000192e43586e8398a0a0a0a0a0a0a8947e695a493c32282a2a33404b6074879db2c7dcdec8b39e89735645311d09001b30465b70859bb0c5dadfdfdfdfdfdfded6d6d6d6d6d6d6d6d6d6d6d6dddfe7f2fffef0e5dedbd6d6c7b29d87725d48321d00182d42586d8297adc2d7e4cfbaa48f7a654f3a34343434343434343434343427241d120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889eb3bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfae99846f59442f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a33333333333333333333332a28201507000000000000000000000000000000000000000000000000000000000000000000010a101213131313131313131313131313130c0a04000000000a1d30404d5155555555555555524e41311e0e000000000000000000000000000000000000000000000000000000000000091e324657687e93a0b2c1d2e2dbcebeb2a29a8b80766d6660565b5a5c5761666d76818b9ba3b3bfcfdce1d1c0b19f917c675544311d0b0000000000000513202e3c4857617280939b847462594c403632282a2b2e38485972879cb1c7dce9d7c6a48f7a654f3a251000162b40556b8095aac0d5dbc6b09b86715b5d646d767c7f828483807e79726a61594b43362a1c0d00000000000000001c31465c71858a8a8a8a8a8a8a8a8976614c3c2c1e1615171f3144556b8095aac0d5e0ccb8a78b74604b36200b001b30465b70859bb0c5daf0f4f4e4d7cdc9c1c1c1c1c1c1c1c1c1c1c1c1c8cbd4e2f2f0dfd2c9c6c1c1c1b29d87725d48321d00182d42586d8297adc2d7e4cfbaa48f7a654f3a251f1f1f1f1f1f1f1f1f1f1f120d0d0d0c09030000000000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889eb3c8d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4c4ae99846f59442f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a251e1e1e1e1e1e1e1e1e1e150d0d0d0c0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f24394d5e666a6a6a6a6a6a6a685f4e3c2c19060000000000000000000000000000000000000000000000000000000004182a3a4b6175889db3becfdfdfcebdb1a09884786b6157514b45384539464b5158616b788599a1b2becfe0decebdb29c8774604b3929170300000000000002101e2b394654606b7e87766156473b30211e1615151d31445570859ab0c5dae6d1bca7917c67523c271200162b40556b8095aac0d5dbc6b09b8671616c7a828a929597999896938e877f77686054473a2b1d0d000000000000000b20354b6074757575757575757574615746331e0e03000415273750667b90a5bbd0e8d5c5a28c77624d37220d001b30465b70859bb0c4d4e4f4e9d7c6b9b4acacacacacacacacacacacacb3b7c4d4e7e5d2c1b5b1acacacac9d87725d48321d00182d42586d8297adc2d7e4cfbaa48f7a654f3a25222222222222222222222222222222211e160b00000000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889eb3c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ae99846f59442f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a252222222222222222222222222222221f180c00000000000000000000000000000000000000000000000000000000000000040a0c1d1d1d1d1d1d1d1d1d1d1d1d1d1d1c1a130a00000011273c51667c7f7f7f7f7f7f7f7d685a4935200d000000000000000000000000000000000000000000000000000000000a1f3447596a7f95a6b7cbdce3d1c1b19f978274625a4b46393632282f2832363a474c5a63758398a0b2c2d2e4dfcab6a5937e695746331e0a00000000000000000e1b2936434b606875615847382a1d120b171f27313f4b6074899eb4c9dee6d0bba6917b66513c261100162b40556b8095aac0d5dbc6b09b867175818d989fa9aaacafadaba9a49c95897e736158483c2b1d0d000000000000081d314455606060606060606060605546392917000000000e24394e63798ea3b8ceead8c8a28d78634d38230e001a2f44596f8399a6b7c6d7e7e1cdb9a89e9696969696969696969696969da6b7cbdfdec9b5a39b969696969687725d48321d00182d42586d8297adc2d7e4cfbaa48f7a654f3a373737373737373737373737373737373632281b0b000000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889eababababababababababababababababababababababababab99846f59442f1a00182d42586d8297adc2d7e4cfbaa48f7a654f3a37373737373737373737373737373737332a1c0c00000000000000000000000000000000000000000000000000000000000c181f223232323232323232323232323232312e271b0d000011273c51667c919494949494948c78624d3b2a18050000000000000000000000000000000000000000000000000000000c22374c6177899eb4c4d5e7d6c5b4a397816d6056483c3329211e161a161e2129333c495761728298a4b5c6d7e6d3c3b39e8876614b36210d0000000000000000000b182630424e556055473a2a1a131c20293337444b5d697e93a8b9cde1e6d4c3a48f7a654f3a251000162b40556b8095aac0d5dbc6b09b857787979fabb4bac7c2c4c3c0c2b6b1a79e938576625a483b2b1909000000000001142637444b4b4b4b4b4b4b4b4f554c463a2917040000000f24394f64798ea4b9cee2cebbaa8b76614c36210c000d22374c6277889da8b9c9dadec9b49e8a818181818181818181818181889db3c8dddbc6b19b858181818181806a55402b1500182d42586d8297adc2d7e4cfbaa48f7a654f4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4b46392816030000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e7389959595959595959595959595959595959595959595959595959595846f59442f1a00182d42586d8297adc2d7e4cfbaa48f7a654f4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4c473a2a18040000000000000000000000000000000000000000000000000000000c1c2a333748484848484848484848484848484743392b1b0a000b20354a6073869caaaaaaaaaa97816c5947341f0b0000000000000000000000000000000000000000000000000000071a2d3d566b8095a8b9cce2e0ccb8a79b8574604b45382b1e170b09020003090c171f2c3946546075869ca8bacde1e0cbb8a6947f6a543b2b180500000000000000000008141c3137444b44372a1c212530353a464c55606a7b8b9fb4c6d7e9dfcab6a58d77624d38220d00162b40556b8095aac0d5dcc7b29c87879ca5b5bcc9cdd7d7d9d8d5d3cac5b8b3a29b867862594837261401000000000009192631353638454b515460646a615846331f11060009182a3a51667c91a6bbd1dfcab49f8a75604a35200b000b20344859647a8a9eabbccfe1cdb9a8957f6c6c6c6c6c6c6c6c6c6c70859ab0c5dad5c0ab96806c6c6c6c6c6a62503c281300182d42586d8297adc2d7e4cfbaa48f7a65626262626262626262626262626262626262615746321e09000000000000000000000000000000000000000000000000000000000000000000000000000000152a40556a7f8080808080808080808080808080808080808080808080808080807d68523d281300182d42586d8297adc2d7e4cfbaa48f7a656262626262626262626262626262626262615847331f0a000000000000000000000000000000000000000000000000000004182a3a474c5d5d5d5d5d5d5d5d5d5d5d5d5d5d5c564939271300071c304354687d92a5b7bfc8b49f8a77624c3a291704000000000000000000000000000000000000000000000000000c21364a5b72879db2c6d6e7d5c4b39e897762564532281a0e0300000000000000040e1b2836455763788a9fb4c5d6e7d5c4b09b8671594834200b000000000000000000000113192731363127212d3636434a50586169747f8c9fa9bacde4f2dcc7b29d87725a4834200b00162b40556b8095aac0d5dfcab6a59c9ca4b6c3cec9c7c5c6c9ccd6dbded6ccc0b4a49c8777625544311d0e000000000003172939464c525660666c747a8076614c3e2e211a131c263447596c8297acc1d7ddc8b39d88735443301c070005182b3b4a5c667c8d9fb5beced7c6b59f8d7d675c5757575757575b70859ab0c5dad5c0ab96806b5757575755504333210d00182d42586d8297adc2d7e6d1bba6917c7777777777777777777777777777777777777775614b36210c00000000000000000000000000000000000000000000000000000000000000000000000000000013283c50616a6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b685f4e3a251000182d42586d8297adc2d7e6d1bba6917c77777777777777777777777777777777777777614c37220c00000000000000000000000000000000000000000000000000000a1f334758617272727272727272727272727272716756432e1a00001325364b6074879db2c5cdbaa995806b5846331f0a000000000000000000000000000000000000000000000000000e24394e63798ea5b6cae4e0cbb7a6947f6a59483827150a00000000000000000000000b182839495a6b8096a7b9cce0dfcab59f8b77624d37220d00000000000000000000000009151d202832363d4a4e5460656c767e86959faabac7d7eae4d0c0ac97826d573c2b190500162b40556b8095aac0d5e6d3c3b6b2b1b6c2c7bab4b2b0b1b4b9c6c6cfe0e0d1c2b6a59a8473604b3d2c1a06000000000a1e33465761686e757b82888f95806b5c4b3f352c253037444c61778a9eb4c9ded9c3ae99836e593625130000000d1d2d3e4c5e6a7f94a0b1c0d1cfbcab9f8b7a645948394141455b70859ab0c5dad5c0ab96806b56414141403c3325150400182d42586d8297adc2d7ecd3bfac9b918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c7e69533e29140000000000000000000000000000000000000000000000000000000000000000000000000000000d2033435055565656565656565656565656565656565656565656565656565656524e41311e0b00182d42586d8297adc2d7ecd3bfac9b918c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c85705a45301b00000000000000000000000000000000000000000000000000000c22374c6176878787878787878787878787878786715c47311c0000081d314455697e93a7b8ccc7b39e8976614c38281602000000000000000000000000000000000000000000000003162839556a7f94aac3d3e6ddc8b39d8875604b3b2b1a0a000000000000000000000000000a1b2c3c4c6176899eb3c9dee3cfbcab937e68533625130000000000000000000000021019273139454b535b636b737a828a939ca4b4bbc8d7e5e9d7c6b3a28e79644e39240f0000162b40556b8095aac0d5eae1d3cac7c6c1b5b0a99f9c9b9c9ea8aeb2beccd6e0d3c3b4a2957f6a5b4935210e000000000c21364c61757d838990979da69f8b7a655d4e493d36434a55606e8298a8b9cde1d2c2a9947e69543f291400000000102030404f616d8297a2b4c3d3c9baa99d88786257463626455b70859ab0c5dad5c0ab96806b56412c2c2b282115070000182d42586d8297adc2d7ecdbc9b9aca6a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2937e69533e2914000000000000000000000000000000000000000000000000000000000000000000000000000000031525333c404040404040404040404040404040404040404040404040404040403d3a3123130100182d42586d8297adc2d7ecdbc9b9aca6a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a29a85705a45301b00000000000000000000000000000000000000000000000000000d22374c62778c9d9d9d9d9d9d9d9d9d9d9d9d9d89745e49341f0000021527374b6075889eb3c6ccb9a8947f6a5645321e090000000000000000000000000000000000000000000000091e32465771869bb0c6dbe7d4c4aa95806a5745321d0d0000000000000000000000000000000e1f3347586c8196abc6d6e8dac9af99846f5443301c070000000000000000000715202e37444b576068707980888f979ea8b1b6c2ced8e6e9e1cdb9a89a846f5c4a36220d0000162b40556b8095aac0d5eaf1e6d9c9bcb4a39b918a878587899098a0b3b9c5d6e2d1c0b49f8c79634e3c2b19050000000f24394f64798e999fa8acb3b7a99e8a7b6d635b5a58546065738196a0b2c6d6dec9b5a48e79644f39240f0000000002122232434b6074849aa5b6c5d6c7b7a69b857561544330455b70859ab0c5dad5c0ab96806b56412b1715130d04000000182d42586d8297adc2d7ece7d7c9bfbbb7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a8937e69533e2914000000000000000000000000000000000000000000000000000000000000000000000000000000071b2d3e4a4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4e493d2c1a0600182d42586d8297adc2d7ece7d7c9bfbbb7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7af9a85705a45301b00000000000000000000000000000000000000000000000000000d22374c62778ca1b2b2b2b2b2b2b2b2b2b2b29e89745e49341f000000091e3245576a7f95a8b9cdc6b39d8875604b37261401000000000000000000000000000000000000000000000c21364b61768b9fb5cadfdfcbb7a68e79644f3928160000000000000000000000000000000004172a3a50657b90a8b9cce1dec9b49f8974604a35200b0000000000000000081625333e4b556069757d858e969da6acb4b9c6cad3e2eae5d7cdbbb49e8a79634d3e2d1b070000162b40556b8095aac0d5eaf5e3cfbcab9f94857c76727071757b83909ea7b9c6d6e2cebbaa97826d5a4835200b0000000b20364b60758a9fb4bac6c8c7b9a89e8c827973706d6f747b85969fb0becfe4d4c4b19c86715c4a36220d000000000004151d3145566176879ca7b9c8d5c4b5a3998372604b41455b70859ab0c5dad5c0ab96806b56412b1601000000000000182d42586d8297adc2d7ecf5e7dbd3d1ccccccccccccccccccccccccccccccccbea8937e69533e29140000000000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c64646464646464646464646464646464646464646464646464646464635b4935210c00182d42586d8297adc2d7ecf5e7dbd3d1ccccccccccccccccccccccccccccccc5af9a85705a45301b00000000000000000000000000000000000000000000000000000d22374c62778ca1b7c7c7c7c7c7c7c7c7c7b39e89745e49341f000000031628394c6176899eb4c7cbb8a6937e685544311d08000000000000000000000000000000000000000000000f24394f64798eabbccfe3ddc8b29d88735c4a361b0a00000000000000000000000000000000000c20364b6075899eb4c9dee1cdbaa98d78624d38220d000000000000000816263443505c64747e88929ba3abb2b7c4c9cdd7dee5e7e0d2c7bab49d927e685b49352010000000162b40556b8095aac0d5eae5cebdb49f8d7f726761575b5560656e7b899ea8b9cde1d9c8b49f8b78624d38220d000000091d32455671869bb1c6d7ddd6c6b9aa9f988e8885828488909ba3b0bdcddcdac9b7a6927d68523e2d1b070000000000000215273847586379899eaabbced2c1b3a195806b5f4e3f5b70859ab0c5dad5c0ab96806b56412b1601000000000000182d42586d8297adc2d7e5e5e5e5e5e5e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1d3bea8937e69533e29140000000000000000000000000000000000000000000000000000000000000000000000000000000f24394f647979797979797979797979797979797979797979797979797979797a79634e38230e00182d42586d8297adc2d7e5e5e5e5e5e5e1e1e1e1e1e1e1e1e1e1e1e1e1e1dac5af9a85705a45301b00000000000000000000000000000000000000000000000000000d22374c62778ca1b3b3b3b3b3b8c5d5dcc9b39e89745e49341f000000000a1f3347586b8196a9bacec4b29d8774604b3520120000000000000000000000000000000000000000000012273c52677c91a7c9daecd9c3ae99846e593e2d1b000000000000000000000000000000000000091d31455670859ab0c5dae9d7c7a5907b65503b2610000000000000031626344451616a7a87939da6b0b5c1c8cbd4dee1e9e5ded5cbc2b5a99f927f69604e3c2c1902000000162b40556b8095aac0d5ead7c7b19f927d6960544b4639444b505d65798a9eb4c2d2e2cebbaa95806a553a291704000002152838576d8297acc2d7ece4d6c8bbb4ada69d9a98999da6b0b4c1cddbe3cfbcab9d8774604b36201000000000000000000a1a2a3a495b657b8c9fb4bdcdcfbfb09e927d685d4b5b70859ab0c5dad5c0ab96806b56412b1601000000000000182d42586d8297adc2d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0bea8937e69533e29140000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73888f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f836f59442f1a00182d42586d8297adc2d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0c5af9a85705a45301b00000000000000000000000000000000000000000000000000000d22374c62778c9e9e9e9e9e9ea7b8c6d6c9b39e89745e49341f0000000004172a3a4d62778b9fb4c9cab6a5927d6752402f1d0900000000000000000000000000000000000000000013283e53687d93a8bdd2e8d6c1ac97816c57422c1700000000000000000000000000000000000002152738586e8398adc3d8e6d1bca6917c67513c27120000000000001121334451636c7f8c9ca4b3b7c4c9d1dddfe6e8e0ded2c9c4b8b3a49c8b7e69614f42311e0e00000000162b40556b8095aac0d5e2cdbaa997826d5f4a4336322931353f4c5b677d92a4b5c9ded8c8b09b85705847331f0a00000013293e53687e93a8c8d8eaf4e6d8cecac4b7b2afadafb3b8c4c8d1dfdfcebfb59f8d7b655645311d090000000000000000000c1c2c3d4c5d687e939fb0bfd0cdbcb49f8b7b655a5b70859ab0c5dad5c0ab96806b56412b1601000000000000182d42586d8297adbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba8937e69533e29140000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889ea4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a499836f59442f1a00182d42586d8297adbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaf9a85705a45301b00000000000000000000000000000000000000000000000000000c22374c6177898888888888888fa8b9cdc9b39e89745e49341f00000000000c203448596d8297abbccfc3b19c86715e4c382410000000000000000000000000000000000000000000142a3f54697f94a9bed4e9d4bfaa957f6a55402a1500000000000000000000000000000000000000172c41566c8196abc1d6e7d2bda8927d68533d2813000000000009192f3f50626c81949faab6c3cbd5dde4ebe3dfd6ccc8c2b5b1a69e93867968604f433223130000000000162b40556b8095aac0d5dfc9b49f8a77624c4130251e161d202f3d4d5f71869cb1c6dbdfcab49f8b76614c37210c0000000f243a4f64798faabbcee2f7eee3dcdad4cbc8c5c2c4c8cbd5dddfd4cbbdb1a096806b5d4c38271502000000000000000000000f1f2f3f4e606c8196a1b3c2d2cebaa99e8978625870859ab0c5dad5c0ab96806b56412b1601000000000000182d42586d8297a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5937e69533e29140000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889eb3b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9ae99846f59442f1a00182d42586d8297a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a59a85705a45301b00000000000000000000000000000000000000000000000000000b1f3447596173737373737374899eb4c9c9b39e89745e49341f000000000005182b3b4e63788c9fb4cac9b5a4907b66513f2e1b080000000000000000000000000000000000000000152a3f546a7f94a9bfd4e9d4bfa9947f6a543f2a1500000000000000000000000000000000000001162b41566b8096abc0d5e8d2bda8937d68533e281300000000011527374c5d6b80959fb4bbc8d3e0e7e7dfd9cfcac5b8b3aca49c93887e73635b4e42322414050000000000162b40556b8095aac0d5d7c2ad98826d5948341c13080308111f314153687d93a8c5d6e2cebbaa917b66513c26110000000b21364b60758a9fb4cadfeeded1c8c5c2c9cdd7d7d9dbd9d7d3cac4b7b29f978274604b3f2f1a0a000000000000000000000001112131424b60738399a4b5c5d5c7b8a79c86766170859ab0c5dad5c0ab96806b56412b1601000000000000182d42586d8290909090909090909090909090909090909090909090909090909090907e69533e29140000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889eb3c8cececececececececececececececececececececec4ae99846f59442f1a00182d42586d829090909090909090909090909090909090909090909090909090909084705a45301b000000000000000000000000000000000000000000000000000004182a3b474c5e5e5e5e5e5f74899eb4c9c9b39e89745e49341f0000000000000d2135495b6e8398aec0d0c2b09a85705d4b37220f000000000000000000000000000000000000000014293e53697e93a8bed3e8d6c1ab96816c56412c1700000000000000000000000000000000000003182d43586d8298adc2d7e7d1bca7927c67523d271200000000081d314455657b8d9fb5bdced8e6e9e1d4cbc9bcb4afa79e978f867d756860554a3d31241406000000000000162b40556b8095aac0d5d2bca7927d67523b2a1800000000011323384d62788da7b9cce0d9c8a8937e68533e2913000000091e32455671869cb1c6dbe3d1c0b4b0adb4bac7c2c5c5c3c1c3b6b2a69d9281726056453121110000000000000000000000000003141d3144556175869ca6b8c7d5c5b6a49a837370859ab0c5dad5c0ab96806b56412b16010000000000000e24394e63797b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b77624d38220d0000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889eb3c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c4ae99846f59442f1a000e24394e63797b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b79644f3a240f0000000000000000000000000000000000000000000000000000000c1d2a343749494949495f74899eb4c9c9b39e89745e49341f000000000000061a2c3d4f647a8ea2b3c7c8b4a28f7a654f3d2d1a070000000000000000000000000000000000000012283d52677d92a7bcd2e7d8c3ad98836e583c2b19050000000000000000000000000000000000071a2d3d5a6f859aafc4daebd9c8a6907b66513b2611000000000b20354b6074879dabbccfe2eae4d6cdc4b7b2ab9f999189817a716860574b44372d1f130600000000000000162b40556b8095aac0d5ceb8a38e79634e39240e00000000000b2035485a74899eb3c9ded5bfaa95806a55402b1500000002162838586d8297adc2d7dcc8b4a29a989fa9aaadafb0aeaca9a59c95887d6c6054453827150300000000000000000000000000000114263746576278889ea9bacdd3c2b3a1968170859ab0c5dad5c0ab96806b56412b16010000000000000c21364a5b636666666666666666666666666666666666666666666666666666666666625a4835200b0000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889eb2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2ae99846f59442f1a000c21364a5b6366666666666666666666666666666666666666666666666666666666645c4a36220d000000000000000000000000000000000000000000000000000000000c181f2233333334495f74899eb4c9c9b39e89745e49341f000000000000000e22364a5c6f849aafc1d1c0ae99846f5b4a36210e0000000000000000000000000000000000000010253a4f657a8fa4c3d4e6dbc6b19c86715a4835200b00000000000000000000000000000000000d21364a5c73889db2c8dde2cebbaa8e79634e39230e0000000316283852677d92a5b6c9daece2d4c6b9b4a69d958b847c756c645c534b45393127190f010000000000000000162b40556b8095aac0d5ccb7a18c77624c37220d000000000006192b3c5d72879cb2c7dcd6c1ac97816c57422c170000000014293e53697e93a8c8d9dac5b09a84828a9295989a9b9997948e877f75675f4b4336271a0a0000000000000000000000000000000009192939485a647b8b9fb4bcccd0bfb09f937e849ab0c5dad5c0ab96806b56412b1601000000000000071a2d3d4a4e50505050505050505050505050505050505050505050505050505050504d483c2b19050000000000000000000000000000000000000000000000000000000000000000000000000000001e33495e73889d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d99836f59442f1a00071a2d3d4a4e505050505050505050505050505050505050505050505050505050504f4a3e2d1b070000000000000000000000000000000000000000000000000000000000040b0c1e1e1f34495f74899eb4c9c9b39e89745e49341f00000000000000071b2d3e50657b90a3b5c9c7b3a18e79634e3c2c19060000000000000000000000000000000000000c22374c61778ca5b7cadfdec9b5a48d78624d38221200000000000000000000000000000000011527374e64798ea6b7cbdfdfcab49f8a75604b36200b000000091e3245566f859aafc3d4e7e6d4c4b7a89e94887f786f6760564f4b3e3632281d150900000000000000000000162b40556b8095aac0d5ccb7a18c77624c37220d000000000006192b3c5d72879cb2c7dcd6c1ac97816c57422c17000000000f253a4f647a8faabbcedbc5b09b8670767d8082858684827f79726a61574d413026180a0000000000000000000000000000000000000b1b2b3c4b5d677d929eafbecfcdbdb49f8b899eb3c8ded5c0ab96806b56412b1601000000000000000f1f2d36393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b38352b1e0e000000000000000000000000000000000000000000000000000000000000000000000000000000001c31465c7185878787878787878787878787878787878787878787878787878787826d57422d1800000f1f2d36393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a362d2010000000000000000000000000000000000000000000000000000000000000000000090a1f34495f74899eb4c9c9b39e89745e49341f00000000000000001023374b5d70859bb0c2d0bfad98826d5a4935200d0000000000000000000000000000000000000a1f34475972879db2c7dde5d2c2a8937e685340301909000000000000000000000000000000081d3144556a7f94aac4d4e7dbc6b19b86715645311d090000000b21364b60768a9fb4c9dfead8c8b7a69d8a7f756a625a514b4538372e21221f180c0000000000000000000000162b40556b8095aac0d5ceb8a38e79634e39240e00000000000b2035485a74899eb3c9ded5bfaa95806a55402b15000000000b21364b60768a9fb4cadec9b49f8a7561686b6d70706e6c69635b554b4639301c140800000000000000000000000000000000000000000e1e2e3f4d5f6b8095a0b2c1d2cebbaa9f9ea7b8cce0d5c0ab96806b56412b160100000000000000010f1a212426262626262626262626262626262626262626262626262626262626262220190e00000000000000000000000000000000000000000000000000000000000000000000000000000000001a2e435667717272727272727272727272727272727272727272727272727272726d63523f2a160000010f1a21242626262626262626262626262626262626262626262626262626262624221b1002000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000081c2f3f51667c91a4b6cacab49f8b78624d3b2a1805000000000000000000000000000000000004182a3a566c8196abc5d6e8dbc6b09b85715e4d3727150200000000000000000000000000031628394b6074879cb2c7dce6d4c3aa957f6a55382715020000000f243a4f647a8fa9bacde2e2cebbaa9d88786a60564d483c363228222a3437342a1d1406000000000000000000162b40556b8095aac0d5d2bca7927d67523b2b1805000000001325364d62788da7b9cce0d9c8a8937e68533e291300000000091e32455671869cb1c6dbcdbaa98e79635255585a5b5957544e493d3632281b130100000000000000000000000000000000000000000000102030414a60728298a3b5c4d4c8bbb4b3b8c5d5e8d5c0ab96806b56412b1601000000000000000000070c0e11111111111111111111111111111111111111111111111111111111110d0b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000013263949565c5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d57524535230f00000000070c0e111111111111111111111111111111111111111111111111111111110f0d070000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000001120354a6073869cb1c3cebbaa97816c5948341f0b00000000000000000000000000000000000010253b50657b90a7b8cce0ddc9b5a3917c665544311d1300000000000000000000000001141e324557687d92a4b6cadedfcab7a58e79644e39240f0000000011263c51667b91a6c7d7eadfc9b49f8b79635a4b4538342b201d212e3b474c473b312414050000000000000000162b40556b8095aac0d5d8c2ad98826d5948342014080308111c304354687e93a8c5d6e2cebbaa917b66513c26110000000003162838586d8297adc2d7d7c7a7927d68524043454644423f39362c211e161b15130d03000000000000000000000000000000000000000002131c3043546074859ba6b7c6d7cecac8ccd5e3ebd5c0ab96806b56412b16010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091b2b394346484848484848484848484848484848484848484848484848484848423f3527170600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000071c304354687d92a5b7cbc8b49f8a77624c3a29170400000000000000000000000000000000000b20354b6074899eb3c9dae4d2c1b19c8674604b41311c130800000000000000000009141d32424b6075879db2c3d3e6d8c7b29d87725c4a36210d0000000012283d52677d92a7bcd2e7dac5b09b85705b4a3c322820191920303f4b5961594e423123130500000000000000162b40556b8095aac0d5dfc9b49f8a77624c4130261e171d202f3d4a6073869cb1c6dbdfcab49f8b76614c37210c000000000014293e53697e93a8c9d9d6c1ac96816c5737263031303030303030303030302a2820150700000000000000000000000000000000000000000013253645566277879da8b9c9d9dfdee0e8f3ebd5c0ab96806b56412b1601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000610161820202020202020202020202020202020202020202020202020202020201e1c150c000000000d1b262e313232323232323232323232323232323232323232323232323232322d2a2317090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000001325364b6074879db2c5cdbaa995806b5846331f0a0000000000000000000000000000000000081d3144556d8298abbccfe3decab6a496816c5f4e41302518110a03000000040a11192631424f616d8298a6b7cbe1e2cebaa996816c563d2d1a070000000011263c51667b91a6bbd0e6d6c1ac96816c573e2f272424272c35404d5d657768604e4131231304000000000000162b40556b8095aac0d5e2cdbaa997826d604b433633293135404c5b687d92a4b5c9ded8c8b09b85705847331f0a00000000000f253a4f647a8fabbccfdac5b09b8570554445454545454545454545454545403c332515030000000000000000000000000000000000000000081828384859647a8a9eabbccfe3ecf5fbffebd5c0ab96806b56412b16010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000917232a2d35353535353535353535353535353535353535353535353535353535353330291e100000000009131a1c1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d18160f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000081d314455697e93a7b8ccc7b39e8976614c3828160200000000000000000000000000000000011527374e64798c9fb5c7d7e5d3c2b19f927d685f4a43362e211e17161416171f212f37444b60697f93a0b2c4d4e6d6c6b49f8b78624d38230f00000000000f243a4f64798fa4c3d4e6d9c3ae99836e5c4c403c3a3a3c3c494d5f677b897e685f4e41302212040000000000162b40556b8095aac0d5ead7c7b19f927e6960544b4639444b505e66798a9eb4c2d2e2cebbaa95806a553a29170400000000000c21364b61768b9fb4cadec9b49f8975605b5b5b5b5b5b5b5b5b5b5b5b5b5b55504333200d0000000000000000000000000000000000000000000a1a2b3b4a5c667c8d9fb4becedeeeffffebd5c0ab96806b56412b16010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061727353f424a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a48453b2e1e0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000021527374b6075889eb3c6ccb9a8947f6a5645321e0900000000000000000000000000000000000921364a5c6d8298a9bacde2e0cebdb49f8c7d6b60544b3f3633292b292b293337404c55606c7e8c9fb4becfe2e1ccb9a896816c5a4935200c00000000000d22374d62778ca5b6cadfdfcab49f8c7a665e55514f4f51545a626e7c8a9e8d7e685f4d403022120300000000162b40556b8095aac0d5eae5cebeb59f8d7f736761575b5560656e7b899ea8b9cde0d9c8b49f8b78624d38220d000000000000091e32465771879cb1c6dccdbaa88e797070707070707070707070707070706a61503c2813000000000000000000000000000000000000000000000d1d2d3e4c5e697f949fb1c0d1e1f1ffebd5c0ab96806b56412b1601000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010233545525860606060606060606060606060606060606060606060606060606060605e584c3b29150000000000000000000000000003090c111416181a1a1816110c0a040000000000000000000000000000000000000000000000000000000000000000060c0d15151515151515151515150e0c07000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000091e3245576a7f95a8b9cdc6b39e8875604b3727150100000000000000000000000000000000071a2d3d4d62788b9fb4c2d3e3e2cebbaa9f928072655d524c4639403f403a474c525e667381939faabbcedce2d2c1b39e8977614c3c2c190600000000000b2034485972879db2c7dce2cebbaa9e8a7c726a6664646669707883919fa89f8d7d675e4d402f211100000000162b40556b8095aac0d5eaece3cfbcab9f94857c76727071757b83909ea7b9c6d6e2cebbaa97826d5a4835200b00000000000003162839586d8298adc2d7d7c6b19c868585858585858585858585858585857f6a55402a150000000000000000000000000000000000000000000000102030404f616d8297a2b4c3d3e3f3ebd5c0ab96806b56412b16010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162a3f52636d7575757575757575757575757575757575757575757575757575757575736a5845301c00000000000000000000040a0c161e2126292b2d2f2f2d2b27211f170c0700000000000000000000000000000000000000000000000000000000000e1920232a2a2a2a2a2a2a2a2a2a2a23211a0f0100000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000031628394c6176899eb4c7cbb8a6937e685544311d0800000000000000000000000000000000000f2035485a6b8196a4b6c5d6e6d8c8bbb49e95857b6f67615758565456585861676f7b86969fb4bbc8d9e5d4c4b5a3947f6a5847331e0e00000000000005182b3b566b8196abbfd0e5d8c8b9a89e90867f7c79797c7f858d99a1b4baab9f8c7d665e4c402f1a0a000000162b40556b8095aac0d5eaf1e6dac9bcb5a39b918a878587899099a1b3b9c5d6e1d1c0b49f8c78634d3c2b19050000000000000014293e54697e93a9c9d9dec9b6a49c9a9a9a9a9a9a9a9a9a9a9a9a9a9a98826d58432d18030000000000000000000000000000000000000000000002122232434b6073849aa5b6c5d6e6e5d5c0ab96806b56412b16010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d828a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a88735e48331e0000000000000000020c171f212832363c3e4042444443413c37332a201c130800000000000000000000000000000000000000000000000000000e1e2c35383f3f3f3f3f3f3f3f3f3f3f39362d1f0f00000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000a1f3347586b8196a9bacec4b29d8774604b362513000000000000000000000000000000000005192b3c4c6176869ca7b8c8d8e6d8cebcafa39b8f847c76706d6b696b6d70767d84909ca4b0bdced9e6d7c7b7a69b8574604b3a2a1800000000000000000f243a4f647a8fa1b3c7d7e6d6c6b9b4a49c94918f8f91949ba3aeb3bfc9bbaa9f8c7c665e4c382715020000162b40556b8095aac0d5eae1d3cac7c6c1b5b1aa9f9d9b9c9ea8aeb2bfccd6e0d3c3b4a2957f6a5b49351e0e000000000000000010253a4f657a8fabbccfe3d3c2b6b1b0b0b0b0b0b0b0b0b0b0b0b0b0ad98826d58432d1803000000000000000000000000000000000000000000000004151d3144556176879ca7b9c8d8d0d0c0ab96806b56412b16010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d82979f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9d88735e48331e000000000000000a151d29333639464b515456585a595856514c473a353025180e0000000000000000000000000000000000000000000000000e1e2c3c494d55555555555555555555554e4a3d2d1a07000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000417293a4d62778b9fb4c9cab6a5927d675443301c0700000000000000000000000000000000000e1e3346576378899eaabbcdd7e5e2ccc1b5b0a199928a8582807e8082858b929aa2b1b6c2cde2e4d6c9baa99d8877625645321c0c00000000000000000d22374b5c6e8399a9bacde1e4d6cdc2b6b1aaa6a4a4a6a9b0b4c1c7cfd8c8bbaa9f8b7c655645311d090000162b40556b8095aac0d5e6d3c3b6b2b1b5c2c8bbb4b2b0b1b4b9c6c6cfe0e0d1c2b6a59a8472604b3c2c190000000000000000000c21364b61768b9fb4cadfe0d3c9c6c5c5c5c5c5c5c5c5c5c5c5c5c2ad98826d58432d18030000000000000000000000000000000000000000000000000215273747586379899eaabbbbbbbbbbab96806b56412b16010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adb5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b39d88735e48331e0000000000010f1a28323a464c52576166696b6d6f6f6d6b666158514a43362c1e12040000000000000000000000000000000000000000000e1e2c3c495a626a6a6a6a6a6a6a6a6a6a6a635b4a36210c000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000000000000c203448596d8297abbccfc3b19c8673604a352010000000000000000000000000000000000003172939495a657b8c9fb4bac7d4e2dfd2c9bfb3aea99f9a98959495989a9faaafb4c0c9d3e0e1d4c6b9ab9f8b7a645948382816000000000000000000071b2e3e4d63788b9fb4bbcdd7e5e1d3cac7bfbbb9b9bbbec5c8d1dbe7dacfc1b5a49c8775604b36200b0000162b40556b8095aac0d5dfcab6a59c9ca4b5c3cec9c7c5c6c9cdd7dbded5ccc0b4a49c8777625443301e0e0000000000000000000a1e32465772879cb1c7dce5e5dedcdadadadadadadadadadadad7c2ad98826d58432d18030000000000000000000000000000000000000000000000000009192a3a495b657b8c9fa5a5a5a5a5a596806b56412b16010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2cacacacacacacacacacacacacacacacacacacacacacacac8b39d88735e48331e0000000002101f2c38454b5861686e767b7e8082848482807c776f666054493c2f221203000000000000000000000000000000000000000e1e2c3c495a62787f7f7f7f7f7f7f7f7f7f7f79634e39230e000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000005182b3b4d63788c9fb4cac9b5a4907b66513f2e1b0800000000000000000000000000000000000b1b2c3c4b5d687e929fa9b7c4d1dfe4ddd0c7c7bab4afadaba9abadb0b4bbc8c7d0dee5dfd1c3b6a89e8d7d675c4a3b2b1a0a00000000000000000000102035495a687e939db4bac7d2dfe3dedcd4d1ceced1d4dbdde2dfd1c9bcb5a39b8678625645311d090000162b40556b8095aac0cacac7b29c87869ca4b5bcc9cdd7d7d9d8d5d3cac5b8b3a29a86786259483626140000000000000000000003162939586d8398adc2d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0c2ad98826d58432d180300000000000000000000000000000000000000000000000000000c1c2c3d4c5d687e8f90909090909090806b56412b16010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddc8b39d88735e48331e0000000110202e3d4956606a767d838a9193959799999896918b847b72635a4c402f21110000000000000000000000000000000000000e1e2c3c495a627887949494949494949494948272604a35200b000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000d2135495b6e8398aebfd0c2b09a85705d4b37220f0000000000000000000000000000000000000e1e2f3f4e60687d8b9da6b4c1cad4e0e3dbd8cec9c5c2c0bec0c2c5caced8dce3e0d3cac0b4a59d8a7c675f4d3e2e1d0d000000000000000000000006192c3c4e606a7f939fa9b5c1cacfdadbdddfe2e1dedcdad7cdc9c0b4ab9f978577625a49382715020000162b40556b8095aab5b5b5b5b09b857786979fabb4bac7c1c4c3c0c2b6b1a79e9284766259483b2b1808000000000000000000000014293f54697e94a9c9bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbad98826d58432d18030000000000000000000000000000000000000000000000000000000f1f2f3f4e60687a7b7b7b7b7b7b7b79634e38230e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ecf8eadfd8d5d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c8b39d88735e48331e0000000f1f2e3e4a5b63747f8992999fa9a9abadafaeadabab9f9a908578665e4c3f2f1c0c000000000000000000000000000000000e1e2c3c495a6278879da5aaaaaaaaaaaa9f978172605443301c07000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000000000000006192c3c4f64798ea1b3c7c8b4a28f7a654f3d2d1a07000000000000000000000000000000000000112131424e5f677a889ba3b2b7c3ccd6dee1e2dfdad7d5d3d5d7dadfe2e0ded5cbc3b6b2a29a8779665e4d41302010000000000000000000000000000e1e31424f616a7e8a9ba3aeb5bcc9c6c8caceccc9c7c5c7bab4aea29a8d82756159493c2b1a0a000000162b40556b80959f9f9f9f9f9f9b867175818d989fa9aaacafadaba8a49c95897d726158483b2b1d0d00000000000000000000000010253a50657a8faba5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a598826d58432d180300000000000000000000000000000000000000000000000000000001112131424e5d6566666666666666635b4935210c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7eceadacdc3c0bdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb39d88735e48331e000008182c3d4a5c647986949ea7aeb4bac7c0c2c4c4c2c9bcb5afa29a8a7c665d4c3a2a180400000000000000000000000000000e1e2c3c495a6278879da5b7c3bfbfbdb19f97817260544336251300000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000000000e22364a5c6f849aafc1d1c0ae99846f5c4a36210e00000000000000000000000000000000000003142431414d5c647785929da5b3b8c5c9cdd6dadddfe3ebe2dfddd9d6ccc9c4b8b3a59c918476635b4c40302313020000000000000000000000000000142432434f6069798590999fabacb1b3b4bbb9b4b2b0aca99f9991857a6d6157473a2b1e0e00000000162b40556b808a8a8a8a8a8a8a8a8571616c7a828a919497999896938e867f77686054473a2b1d0d000000000000000000000000000c21364b61768d90909090909090909090909090909090909090909090826d58432d180300000000000000000000000000000000000000000000000000000000031424313f4b50505050505050504e493d2c1a06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ecdfcdbcb0aba8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a89d88735e48331e0001142636495b647a899ba3b3b9c5c9cdd7d5d3d1d1d5dacfcac0b4a89e8b7b655947341f0c000000000000000000000000000e1e2c3c495a6278879da5b7c3d4cebdb19f9781726054433625180800000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000000000000000071b2d3e50657b90a3b4c8c7b3a18e79644e3c2c1906000000000000000000000000000000000000061423303e4a5962737d87949ea7aeb4b9c6c4c8cacfd9cecac7c4c5b9b3ada69e93877c6f61584a3d3022130500000000000000000000000000000006152532424f5b63727b848c92979c9e9faaa89e9c9a97918a847c70645c4b46392a1c0e000000000013283d50626b757575757575757571674b5d646d767c7f828483807e79716a61584a43362a1c0d00000000000000000000000000000a1e334657657b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b79634e39240e0000000000000000000000000000000000000000000000000000000000000614212e373a3b3b3b3b3b3b3b38352c1f0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ecd8c3b09e959292929292929292929292929292929292929288735e48331e00081c30435463798a9ea7b5c2ccd6d5cbc8c1bebcbcbfc7cad4d1c6b9a99e8977614c3a2a180400000000000000000000000e1e2c3c495a6278879da5b7c3d4cdbdb19f968172605443362518080000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000000000000000001023374b5d70859bb0c2d0bfad98826d5a4935200d000000000000000000000000000000000000000513202d3b48546067757f8992989ea8acafb2b4bcb6bbb4b2afaba79e9891887e74675f4c473a2d1f12040000000000000000000000000000000000071524323d495460656f787d8286888a8b8b898785827c766f675f4f4a3e32291b0c0000000000000d213344505560606060606060605b56494b4f5761676a6c6f6e6b69635b554c473a3025180c000000000000000000000000000000031729394b5d6566666666666666666666666666666666666666666666635b4a36210c0000000000000000000000000000000000000000000000000000000000000003111c23252626262626262623211a0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7ead5c0ab95807d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7c67523d2712000b20354b6073869ca8b7c4d2d4cbc4b7b3aca9a6a7aab2b7c3d2d7c7b8a797826d5847331f0a000000000000000000000e1e2c3c495a6278879da5b7c3d4cdbdb09f96816c60544336251808000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000081c2e3f51667c91a4b6cacab49f8b78634d3b2a18050000000000000000000000000000000000000002101d2b36434b566069767d838990969a9d9faba1aa9f9d9a969089837c766960554d41332a1c0f010000000000000000000000000000000000000006141f2c36434a505a62676c71737576767472706d666157514d40362d1e160b00000000000000041526333d404a4a4a4a4a4a4a4a4642383739464c5255575a5856534e4a3d37332a1c130800000000000000000000000000000000000b1b2f3f4b50505050505050505050505050505050505050505050504e4a3d2d1a07000000000000000000000000000000000000000000000000000000000000000000080e10111111111111110e0c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a68686868686868686868686868686868686868675f4d39251000081c304354667c8a9da6b5c1c4b7b2a69d96939191959da5b5c1d2d5c5b49f8b77614c37220c0000000000000000000e1e2c3c495a6278879da5b7c3d4cdbdb09f96816c634a433625180800000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000001120354a6073869cb1c3cebbaa97816c5948341f0b0000000000000000000000000000000000000000000d18263038454b5861676e757b8185888a8b8c8b8a8884817b756e6761574b4437301f180c00000000000000000000000000000000000000000000010f182530353c484d52575c54606160575d5b57514b46393930221b1003000000000000000000071521282b3535353535353535312e26222933363c3f424443413e39362d221f180c000000000000000000000000000000000000000011212f373b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b39362d1f0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a65535353535353535353535353535353535353524d41301e0a00011426364c5e667a879ba3b2b3a69d9188817e7c7c80879ba3b5c9ddcebbaa937e68533e281300000000000000000e1e2c3c495a6278879da5b7c3d4cdbdb09f96816c635245302518080000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000000000000071c304354687d92a5b7cac8b49f8a77624c3a29170400000000000000000000000000000000000000000008141c28323a464c525660666c6f737576777675726f6c656055524b463931271912040000000000000000000000000000000000000000000000000008131c202b35383d4236434a4c4b453945423c363228241d1207000000000000000000000000040d131620202020202020201c19130b171e21272a2d2f2e2b2924211a0f0a0400000000000000000000000000000000000000000003111c23252626262626262626262626262626262626262626262624211a0f010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006101618202020202020202020100e08000000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3930231301000008182f404c5c64778599a1a199877c746c6967676a75859bb0c6dbd8c8ad97826d58422d18000000000000000e1e2c3c495a6278879da5b7c3d4cdbdb09f96816c635245341c1308000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000000000000001325364b6074879db2c5cdbaa995806b5846331f0a00000000000000000000000000000000000000000000010a161e29333638454b51575a5d57606160565d5a56504b44373632291d15090000000000000000000000000000000000000000000000000000000000070e192022282d25303536363228302d27211e160b0a0000000000000000000000000000000000000b0b0b0b0b0b0b0b06040000030a0c1215171a1916140e0c070000000000000000000000000000000000000000000000000000080e10111111111111111111111111111111111111111111110e0c0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000917232a2d35353535353535353525221b100200000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2828282828282828282828282828282827251e13050000000012222f3d4a596275839699837666605554515257697e93a8bed3d9c4af9a846f5a452f1a0000000000000e1e2c3c495a6278879da5b7c3d4cdbdb09f96816c6351453427170000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000000000000000000000081d314455697e93a7b8ccc7b39e8976614c382816030000000000000000000000000000000000000000000000020b171f212832363b414539454b4c4b453845413b363127211e160b020000000000000000000000000000000000000000000000000000000000000000050b0d1217131c2021211e161b18110c090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061727353f424a4a4a4a4a4a4a4a4a3a372e211000000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2513131313131313131313131313131312100a01000000000004121f2d3b4857607280867561584b44494d54606b8095abc0d5dbc6b09b86715b46311c00000000000e1e2c3c495a6278879da5b7c3d4cdbdb09e96816c635145342717090000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000000000000000000000021527374b6075889eb3c6ccb9a8947f6a5645321e0900000000000000000000000000000000000000000000000000040a0c151d20262c30283236373632282f2c26201d150c0a0300000000000000000000000000000000000000000000000000000000000000000000000000000000070b0c0b0903000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d0f0f0f0f0f0f0f0f0f0c0b0400000000000000000000000000000000000000060c0d131617191a181614100b0801000000000000000000000000000000001023354552586060606060606060604f4b3f2e1b08000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000010f1d2b394554606b7661574c52585b636a737d8b9fb4c9dfd9c4af9a846f5a452f1a000000000e1e2c3c495a6278879da5b7c3d4cdbcb09e96806c62514434261708000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000091e3245576a7f95a8b9cdc6b39e8875604b3727150100000000000000000000000000000000000000000000000000000002090b11171a161e2122211e161a17100b0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101b22242424242424242424221f180c000000000000000000000000000000050b0e192023282b2d2f2f2d2b2925201d1509090000000000000000000000000000162a3f52636d757575757575757575655d4b37220e000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000000000000d1b2836434a5761575861686d72787f86929fa9bacee2d6c5ac97826d57422d180000000e1e2c3c495a6278879da5b7c3d4cdbcb09e96806c6251443426160800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000031628394c6176899eb4c7cbb8a6937e685544311d0800000000000000000000000000000000000000000000000000000000000000020003090b0c0b09030001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090b101518191b1c1d1c1b1916110d0b050000000000000000000000000000000000000000000000000000000000000000000000000000000000000010202d36393a3a3a3a3a3a3a3a37342a1d0c000000000000000000000000040e1920222c35383e4042444443413f3a353127241d1208000000000000000000000000182d42586d828a8a8a8a8a8a8a8a8a7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000041222303c494d5d656f767d82878d949ca4b4bac7d8e0ccb9a7927c67523d271200000b1b2c3c495a6278879da5b7c3d4cdbcb09e96806c625144342616080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000000a1f3347586b8096a9bacec4b29d8774604b3625130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d161e21252a2d2e30323231302e2b272220180d0a04000000000000000000000000000000000000000000000000000000000000000000000000000000071b2d3e4a4f4f4f4f4f4f4f4f4f4c473b2a1804000000000000000000000c181f2b35383c494d535557595a5856544f4b4437382f231c110100000000000000000000182d42586d82979f9f9f9f9f9f9f8f7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000122230404d5a63707b848b92989da5a9b1b5c2ced8e2d1c0b39e8976614c36210c0003172939495a6278879da5b7c3d4cebeb09e96806b62514434261608000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000000417293a4d62778b9fb4c9cab7a5927d675443301c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c0e141618191a181614110b0902000000000000000000000000060b0b0b0b0b0b0b0b0b0b0a000000000000000000000000000000070d1820222832363a3f4244454748464544413c37342b211f170c04000000000000000000000000000000000000000000000000000000000000000000000000000d22364a5c646464646464646464615947341f0b000000000000000003111d2a343c484d565a62686b6c6e6f6d6b69656055514c40372e1d1509000000000000000000182d42586d8297adb5b5b5b5b5a48f7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000000e1e30404d5e66788490999faaadb2b7c3c6c9d2e0d8cec0b4a2947f6a5846331f0a000a1e3346576278879da5b7c3d4dac5b1a096806b6251443426160800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000000000000000000000c203448596d8297abbccfc3b19c8673604a3520110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d0f1a2124292b2d2e2f2d2b2926211e160b0802000000000000040a0c1b202020202020202020202013110b0200000000000000000004101b222b343738454b4f5457595b5c5d5c5a5956514d483b37332a1f170c0000000000000000000000000000000000000000000000000000000000000000000000000f24394f647a797979797979797a77614c37220c000000000000000614212f3b474c5a626b72787d8082848482807e7a756e665e504b3f3127190c0000000000000000182d42586d8297adc2cacacabaa48f7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000000006192c3c4d5e667c8a9aa2afb4bbc8c7cad4dbdfd5ccc8bbb4a29a8474604b3a291704000c21364c6176889da5b7c3d4e2d7c2ad97826d625144342616080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000000005182b3b4d63788c9fb4cac9b5a4907b66513f2e1c08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101b22242d36393e4042444543413f3b363228201d1509000000000c171f2131353535353535353535353528261e1306000000000000000c181f2e363b484d555660656a6d6e70717271706e6b666259544c473a33291c1103000000000000000000000000000000000000000000000000000000000000000000091e33495e73898f8f8f8f8f8f8f8f7e68533e2813000000000000061424313f4c59616c7880878d93959799999896948f89837b70655d4b44372a1c0c00000000000000182d42586d8297adc2d7dfcfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000c2035495a667c8c9ea8b4c0caced8dcddd7cdc9c5b8b3aa9f968476615544311c0c00000a1e334657697f949daebbcbd9dec8b39e897a645c4a3e2d20100200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000000000000000000000000000000d2135495b6e8398aebfd0c2b09b85705d4b37230f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101b222d36393d4a4e535657595a585654514b4538363127191206000c1c293337464a4a4a4a4a4a4a4a4a4a4a3e3a312413020000000003111d2a343e4a4f59626a70757a7f8283858787868583807c77726961584c473a2f2215070000000000000000000000000000000000000000000000000000000000000000091e33495e73889ea4a4a4a4a4a4937d68533e2813000000000003142432424e5d6577818b969ca4a8aaacaeafadaba9a79e9890857b6c6055473a2a1a0a000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000006192c3c4d62788a9eaab9c6d1dfded5cbc8c7bab4aea79e978b8074615847372715000000031729394f61697f949daebbcbe0ccb8a79e897a645c4a3e2d201002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000000000000000000000006192c3c4f64798ea1b3c7c8b4a28f7a654f3d2d1a07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014202d363e4a4f585b63696b6d6e6f6d6b69666056524b44372f21190e1c2a3a474c5b606060606060606060605f534e42311e0b0000000412212f3b474c5c646d777f858a8f9497999a9c9d9b9a9996918c877f776d61584c403325150600000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3b9b9b9b9a8937d68533e28130000000000112132424f60697b89969fa9b1b6c2c0c1c3c4c2c0c5b9b3ada29b8f8173615847382816020000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000000c2035495a6e8399a8b9c8d7e0d2c9c5b8b3aca99f99918881796b6055473a2a1909000000000b1b32434f61697f949daebbcbd5c5b8a79e897a645c4a3e2d2010020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000000000000e22364a5c6f849aafc1d1c0af99846f5c4a36210e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131c313e4a4f5c646d73797e8082838482807e7b756e6760554c40352c1e2b3a47586170757575757575757575757568604e3a26110000001222303f4b59616f7a828b959a9fa9a9acaeb0b1b2b1afaeaba6a59c948a8276665e504333241404000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8cecebda8937d68533e2813000000000c1c2e3f4f60697e8c9ea7b4bac7cad3d5d7d9d9d7d5d6ccc9c0b4b09f978476615645321e130000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000000e23384d63788c9fb5c6d6e0d2c2b5b1a69e97918a837c756c635b4b44372a1c0c000000000000142532434f61697f949daebbcbd5c5b8a79e897a645c4a3e2d20100200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000000000000000000000000071b2d3e50657b8fa3b4c8c7b3a18e79644e3c2c19060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008182530424e5c646f7a82888e939597999a9896949089837c74665e4d493c2f3b48596176858a8a8a8a8a8a8a8a8a8a8d7d68533e281300000a1d30404d5d6577838f989faab0b4bac7c2c3c5c6c7c6c5c3c0c3b6b2a99f97887c6a615042312212000000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8ddd2bda8937d68533e28130000000417293a4b5d697e939faab9c5ced8dedfd9d3d0d0d2d7dee0ded1c8bdb1a29a8574604b42311a0a00000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000014293e54697e93abbccfe4d2c2b5a49c9088827c766e6660564e493d3127190c0000000000000007142532434f61697f949daebbcbd5c5b8a79e897a645c4a3e2d201002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000000000000000000000000001023374b5d70859bb0c2d0bfad98836e5a4935200d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000132536434a60687a848e989ea6a8abacaeafadaba9a89e9891867c6f635b4c4048596277859ba39f9f9f9f9f9faa9f8c7d68604e3a261100000f24394d5e667b8899a1adb4bbc8c9ced8d7d5d3d1d0d2d6d8d5d3cac7bab4a69d907f6a604e402f1a0a0000000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8ddd2bda8937d68533e28130000000a1f334758657b8b9fb4bbc8d6e2dacfcac4bebbbabcc2c8ccd6e3ddcec0b4a397826d604e38281602000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000003192e43586e8398adc9dadec9b5a49c867b746d66615751584f4b3f311d150900000000000000000007142532434f61697f949daebbcbd5c5b8a79e897a645c4a3e2d2010020000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000000000000000000000000000000000081c2e3f51667c91a4b6c9cab49f8b78634d3b2a18050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091c304354606d7e8b99a1adb3b8c4c0c2c3c4c2c0c6b9b4aea49c908479665e4f5a6277869ba3b5c1b5b5b5baa99f8c7d675f4e42311e0b000011273c51667c8c9da6b3bfc9ced8d8cec9c4bfbdbbbbbdc1c7cad3ded7cdc4b7b29d937e685e4c3828160300000000000000000000000000000000000000000000000000000000091e33495e73889eb3c8ddd2bda8937d68533e2813000004172a3a4c6176889daabbced9dfd2c9bcb5afa9a6a5a7acb3b8c5cddbded0c1b1a0927d685645321e09000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100f0d0b090200000000000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000051a30455a6f859aafc4dadbc6b19c8674666055514b56606e655d4e423127190d00000000000000000007142532434f61697f949daebbcbd5c5b8a79e897a645c4a3e2d20100200000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f000000000000000000000000000000000000000000000000001120354a6073869cb1c3bbbbaa97816c5948341f0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009192f404a607281939faab3bfc8cbd5d5d7d6d5d7d5d6cdc9c2b6b1a199897c69616278879ca4b5c2d2d6c6b9a99f8b7c675f4d413124130200000c21364b6175869ca9bacddfd2c9c7bab4afaaa8a6a6a8abb2b6c3c9d3e1d4cbbbb49f8d7c665645321e0c00000000000000000000000000000000000000000000010305020000091e33495e73889eb3c8ddd2bda8937d68533e281300000a1f3347586b8095a6b8c8d8ded1c1b5ab9f9993909092979ea7b0bdcbd9dfcebeb29d8875604b36210f000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25242422211e16140e0c07000000000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000061b30465b70859bb0c5dad4bfaa947f6a564b4b4e596274837b68604b44372a1d1002000000000000000007142532434f61697f949daebbcbd6c5b8a79e897a645c4a3e2d201002000000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000000000000000071c304354677d92a5a5a5a5a59f8a77624c37220d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011527374c5e6a7f959fb4bbc8d0ddd6ccc9c4c1c0c2c5cacfd9d3cabfb3a89e8d7f6d78879ca5b6c2d2d6c6b9a89e8b7c665e4d4130231306000000091e324657647a8b9fb4bfcac1b5b1a99f9a9593919192969ca4b1b6c2cfdddfcfbcab9d8775604b3a2917040000000000000000000000000000000000070d0f1416191a1715120c1e33495e73889eb3c8ddd2bda8937d68533e281300000c21374c6176899eb4c4d5e3d1c0b4a39b8d847e7b7b7d8289969faebacbdcdfcbb7a6937e69543d2d1a070000182d42586d8297adc2d7e4cfbaa48f7a654f3a3a3a39383632282a24211a0f0900000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000004192e43596e8398aec3d8d8c3ae99836e636060636a7784988b7e6c6055473b2d201000000000000000000007142532434f61697f949daebbcbd6c5b8a79e897a645c4a3e2e2010020000000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000000000000000001325364b60738790909090909090806b56412b16000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d314455667c8d9fb5bdced8d5ccc5b9b3afacaaacb0b4bcc9ccd6d0c6b9ab9f9483889da5b6c3d3d5c5b9a89e8a7b665e4c403023130500000000031628394a5c697e93a1b3b6b2a39b918a85807e7c7b7d8187909ca4b3bfcfdfd9c9b7a6947f6a5846331f0a0000000000000000000000000000050b101b2224292c2e2f2d2a27211e33495e73889eb3c8ddd2bda8937d68533e2813000417293a546a7f94a8b9cce2d5c5b4a29a857a6f696665676d7681939caebecee5d4c4b29d88735b4a36210c0000182d42586d8297adc2d7e4cfbaa48f7a654f4f4f4f4f4d4b45383f39362d241d12070000000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000001162b40566b8095abc2d3dbc6b2a197817875757980899aa29f93817462594a3e2d1b0700000000000000000007142532434f61697f949daebbcbd6c5b9a79e897a645c4a3e2e20100200000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000000000000000000000000000000081d31445563797b7b7b7b7b7b7b7b654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b6074879cabbccfe2d3c5b8b3a79e9a9795979a9fabb3b8c5ced6c9bcb4a0989da6b7c3d3d5c5b8a79e8a7b655d4c40302212050000000000000b1b2d3e4f606e8399a5a59c91867c766f6a686666686c727b8699a1b3c0d1e5d4c4b39e8976614c36210c000000000000000000000000010d1820222e363a3f414344423f3c363229495e73889eb3c8ddd2bda8937d68533e2813000a1f33465870859ab0c6d6e0ccb8a79a8475645c5451505258616c7e93a0b1c7d7dfcbb7a68e79634e39240e0000182d42586d8297adc2d7e4cfbaa48f7a6564646464646260565a544e4a3d3830221b1002000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000000f253a4f647a8fa4b6c9dacfbfb19f978d8a8a8e959ea7b4b49f978477645c4a36220d0000000000000000000007142532434f61697f949daebbcbd6c5b9a79e897a645c4b3e2e201002000000000000000000000000000000000000000000000000000000000000000000000000000a1f34495f74899eb4c9c9b39e89745e49341f0000000000000000000000000000000000000000000000000000011527374a5b6366666666666666655d4b37220e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005182b3b53687d92a5b6c9dad3c3b6a79e948984818082858b949ea7b1bdcdd7cfbeb2adb2b7c4d4d4c4b8a79e897a655d4b3f2f22120400000000000000000f2032424c6176879d99877c716761575553515153565e66758399a2b4c7d8e0ccb9a7927c6752362513000000000000000000000009141d2b34373e4a4f5456585a5755524b4639495e73889eb3c8ddd2bda8937d68533e2813000c21364c61768b9fb4cadfdec8b39e897762574a3e3b3b3a464c606d8297a9bacde1d4c4a9947f69543f2a140000182d42586d8297adc2d7e8d2bda8937e7a79797979797776746f69635b514c40362d2013050000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000000d22374b5c71869cabbccfdfcebdb1aca99f9fabaab3b8c5bdb1a29a877a644f39240f000000000000000000000007142532434f61697f949daebbcbd6c5b9a79e897a645c4b3e2e201002000000000000000000000000000000000000000000000000000000000000000003090b13131f34495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000000000000000000009192d3d4a4e505050505050504f4b3f2e1b0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2034485971869bb1c3d3d9c9b6a49c897f766f6c6b6d70777f89979fb4bac7d7cfc6c2c8cbd4d4c4b7a69d897a645c4b3f2f21120400000000000000000001141f334758657b8b8376665e514b46393e3c3c3d404c576173849ba9bacee2d6c5ad98826d5443301c070000000000000000000d1926313b484c555c64696b6e6f6c6a6761574f4a5e73889eb3c8ddd2bda8937d68533e28130011263c51667b91aabbcee2d4c3a9947f6a5947392d26262933424d62778a9fb4c9ded9c4af99846f5a442f1a0000182d42586d8297adc2d7ecd5c1ad9c938f8f8f8f8f8e8d8b89857f7971665e4f4a3e3123160800000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000081b2e3e50657b8d9fb5bccbd4cec5c7bab4b4bcc9c8ccd2c8bbb49f8c7c67523c271200000000000000000000000007142532434f61697f949daebbcbd6c5b9a79e897a645c4b3e2e2010010000000000000000000000000000000000000000000000000000000000000a161e2128282834495f74899eb4c9c9b39e89745e49341f000000000000000000000000000000000000000000000000000000000f1f2d36393b3b3b3b3b3b3b3a372e21100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374c62778ca3b5c9e3cfbcab9c86786a61575755575962697681929fa9bacde1dad8dddfd4c3b7a69d8879645c4b3e2e211103000000000000000000000004172a3a4b5d657a7261584c40363b3e40413f3d3a39465562788b9fb4c9dfddc8b39e8874604a35200b00000000000000000e1d2b37444b59626b727a7e818384827f7c766d645c5e73889eb3c8ddd2bda8937d68533e28130013293e53687e93a8c8d9dfcbb7a58d78624d3b2a1b111017203448596f8499aec4d9dcc6b19c87715c3727150100182d42586d8297adc2d7ecddcabaada8a4a4a4a4a4a4a2a89e9a948e867c71645c4e4134261606000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000001023374b5d6b80969eb2b7c4c9d2d8cec9cacfd9cfcac2b5aa9f937e695f4d3925100000000000000000000000000007142532434f61697f949daebbc8c8c5b9a79e8a7a645c4b3e2e1f0f00000000000000000000000000000000000000000000000000000000000a1a2832363e3e3e3e495f74899eb4c9c9b39e89745e49341f00000000000000000000000000000000000000000000000000000000010f1a21232626262626262625221b100300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013283d52687d92a7c2d2dfcab49f8c7a645a4b4639403b484c58616c7d8b9fb4c9def4edf2dfcab7a59d8879635b4a3e2e201003000000000000000000000000000c1c2e3f4b5d656054463a464c5053555654524f4b43485a6c8297acc7d7e0cbb8a68e78634e39230e000000000000000e1e2c3b485560697780878f9496989997949189827a6b6073889eb3c8ddd2bda8937d68533e281300152b40556a8095aabfd5ddc7b29d88725a48341d0d000005182b3b546a7f94a9bfd4ddc8b39e88735544311d0800182d42586d8297adc2d7ece8d8cac1bdb9b9b9b9b9b9c6b9b3afa9a39b91857a68605144342414040000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000081c2e3f51626b80919da6b1b5c2c0c2c4c3c1c9bcb4afa49c8c7f6a604f41301d0a000000000000000000000000000007142532434f61697f949db3b3b3b3b3b3a89e8a7a645c4b3d2d1a0700000000000000000000000000000000000000000000000000000003162838454b53535353535f74899eb4c9c9b39e89745e49341f000000000000000000000000000000000000000000000000000000000000070c0e11111111111111100e080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b40566b8095abc0d5d9c4af9a846f5c4a3c33292b2a343a474c5f697f94a9bed4e9fef2ddc7b29d8778635b4a3d2d20100200000000000000000000000000000010212e3f4b4f4a454b52586166686a6c6a676460544e50657a8fa9bacde2d5c5a5907a65503b25100000000000000e1e2c3c495962737e89959ca5a9abadafacaaa89e978c807473889eb3c8ddd2bda8937d68533e281300172c42576c8197acc1d6dbc6b09b86715b3c2b190100000013283d52687d92a7bdd2dfcab59f8a75604b35200b00182d42586d8297adc2d7ecf6e8ddd5d2cecececececed6ccc9c4c2b5b1a39b8b7d6b6251423222120000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000001121344451626b7c88939ca4a7abadafaeacaaab9f9a93867a6a6150423223120100000000000000000000000000000007142532434f61697f949e9e9e9e9e9e9e9e9e8a7b645b4a36210c000000000000000000000000000000000000000000000000000000091e3245566068686868686874899eb4c9c9b39e89745e49341f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182d42576d8297acc2d7d4bfaa957f6a553e2d1e17162431414d5f677c8b9fb4c9dff4f4f2ddc7b29d877762564536251300000000000000000000000000000000000310212e37404d5660686f767b7d80817f7c7a746c635b60758a9fb4c9dfd1bca7917c67523c271200000000000a1a2c3c495a637785939ea8b2b6c3c0c3c4c1c6b9b4ab9f968576889eb3c8ddd2bda8937d68533e281300172c41566c8196abc1d6dcc6b19c87715544311d0800000013293e53687e93a8bdd3dfc9b49f8a75604a35200b00182d42586d8297adc2d7ecfff7ede7e5e0e0e0e0e0e0e8e1dedad2c9c1b5a99f92806b604f402f1a0a00000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000000316263444515e66767e868d92969899999795928b857e74645c504333241405000000000000000000000000000000000007142532434f61697f888888888888888888888779634e39240e0000000000000000000000000000000000000000000000000000000b21364b60757e7d7d7d7d7d7e8b9fb4c9c9b39e89745e49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0c1115181a1b1c1a181715100b09020000000000000000000000090b0b0b0b0b0b0b0b0b0b0b0b0400000000000000192f44596e8499aec3d9d3bea8937e69533e2914152432424e5f677d8c9fa9bacee2e1dee1dfcbb7a59b8574605443301c13020000000000000000000000000000000e1e2b3a464c5e66747d848a9093959694928f8881796b6072879db2c7dcd3bea9937e69543e29140000000002152738495a6378879ba3b3b9c6cad3d6d8d9d7d7cdc9bcb4a39a85899eb3c9ded2bda8937d68533e281300142a3f54697f94a9bed4dec9b49e8975604b35201305030d1c2f40566b8196abc0d6ddc7b29d88725443301c0700182d42586d8297adc2d7ecf3e5dad2cfcacacacacacbcdd1d8dfe2ded2c7bab49e937e695e4c38281603000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000000000000000000000000000000000000000000000000000008162634404d57616971787d81828484827f7d776f6860564a3e332515060000000000000000000000000000000000000007142532434f61697373737373737373737372635b4a36210c0000000000000000000000000000000000000000000000000000000d22374c62778c9393939393939fa9bacdc9b39e89745e49341f0000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d161e21262a2d2f30312f2e2c2a25211e160d0b050000000000080e101e202020202020202020202020190c0a0300000000192e43586e8398adc3d8d5c0ab96806b563f2f1c2532424f60687d8c9faabac7d8d7cdc9cdd7d4c3b5a3988272604a4130201000000000000000000000000000000e1e2b3c4858616f7c8792999faaa8aaaba9a7a69d968b807571869bb0c6dbd5c0aa95806b55402b1600000000091d3145566378889da5b5c1ccd6dfdfd6ccc8c6c5c7cacec1b4a29a9ea7b9cce0d2bda8937d68533e28130012273c52677c91a7c2d2e1cdb9a8907b655041302019161e2a3a4c5e72879cb1c7dcdbc5b09b86705b3625130000182d42586d8297adc2d7ece5d5c8bebab5b5b5b5b5b6b7bcc3caced9e5d7cdbcb49f8d7c665645321e0c000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000816223039464b535a63676b6d6f6e6c6a686259534b45382d20150700000000000000000000000000000000000000000007142532434f545e5e5e5e5e5e5e5e5e5e5d4e4a3d2d1a070000000000000000000000000000000000000000000000000000000d22374c62778ca1a8a8a8a8a8b4bac7d7c9b39e89745e49341f000000000000000000000000000000000000000000000000000000000000000000000000000000070d181f222932363c3f424445464543413f3b3632282220180d080002101b2225333535353535353535353535352f211e160b000000172c42576c8197acc1d6dbc6b09b86715d4c3a2933434f60697e8d9faabbc8d8cfc7bab4bac7d5d1c1b2a095806a5f4d3e2e1e0e0000000000000000000000000a1a2b3c485a627684919da5afb4bbc8bfc1bfc4b7b2aa9f958676859bb0c5dad5c0ab95806b56402b16000000071b2d3e4b6074859ba6b7c3d2e1d9cecac5b8b3b1b0b2b4bbc8c0b4afb3b9c5d6e8d2bda8937d68533e2813000e24394e63798ea4b5c9ded6c6ae99836f5f4d40352b28323b4758667c91a4b6caded7c7ad98826d58432d180000182d42586d8297adc2d7ecdac8b7aaa5a0a0a0a0a0a0a2a6adb4bbc8d3e0e1cfbcab9d8875604b3a2917040000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000004121b2933363c494d5256585a595755524c483b3631271a10020000000000000000000000000000000000000000000000071425323b3f494949494949494949494839362d1f0f000000000000000000000000000000000000000000000000000000000d22374c62778ca1b7bdbdbdbdc9cdd7d2c9b39e89745e49341f00000000000000000000000000000000000000000000000000000000000000000000000000060f1a212a343739464b5154585a5b5b5a585654504b453837342b221b1013212e373a494a4a4a4a4a4a4a4a4a4a4a4a443632291b0b000014293e53697e93a8c2d3ddc9b5a3907b65584738435061697e8d9fabbbc8d8cfbfb2a99fa9b8c4d5cfbeaf9e927d675c4b3c2b1b0b0000000000000000000002152838485a6278869aa1b2b6c3c9ced8d5d6d4d4cbc8bbb4a49b86869cb1c6dcd5c0ab95806b56402b160000000d22364a5c6b8096a3b5c4d4e1d4c8bbb4aca79e9c9b9d9faab2b6c3c5c9ccd6e4e8d2bda8937d68533e2813000c21364a5b71869cb1c6d7dbc7b3a1917d675e4d483c39464b596276879db2c2d3e1cdbaa9917c67513c27120000182d42586d8297adc2d7ecd2beaa99908b8b8b8b8b8b8d91989faab6c2d3e0d9c9b7a6947f6a5846331f0a0000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000b171e212c35383d4143444442403d37342a201d150a0000000000000000000000000000000000000000000000000000071420272a333333333333333333333224211a0f01000000000000000000000000000000000000000000000000000000000d22374c62778ca1b7bdbdbdbdbdbdbdbdbdb39e89745e49341f0000000000000000000000000000000000000000000000000000000000000000000000010e19202d363b484c535761666a6d6f70716f6d6c6a656056554d483b372e201d313f4b4f5e606060606060606060606060594b4639291603000e24394e63798ea4b6caded2c1b19c867661564850616a7f939fabbcc9d9cfbeb2a1998a9da6b8c7d7ccbcb49f8b7a645a4839291909000000000000000000091d3245566278889ca4b3bfcad4dfdcdacfcac8c7c9cdcec2b5a39b9ca4b5c9ded5c0ab95806b56402b160000061a2c3d4f647a8d9fb5c1d2e2d4c3b7aa9f978f898685878a929ca4b0bccce0e8f4e8d2bda8937d68533e281300071a2d3d546a7f94a8b9cde1d0bfb49f8a7c6c625a595857616877859ba5b7cae0d7c7b49f8a76614b36210c0000182d42586d8297adc2d7e5cfbaa5907b757575757576787c838c9ca4b6c2d3e7d4c4b39e8976614c36210c0000182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000000000000000000000030a0e192023282c2d2f2f2d2a28221f180d090200000000000000000000000000000000000000000000000000000000030c12141e1e1e1e1e1e1e1e1e1e1d0e0c070000000000000000000000000000000000000000000000000000000000000d22374c62778ca1a8a8a8a8a8a8a8a8a8a8a89e89745e49341f0000000000000000000000000000000000000000000000000000000000000000000009141d2b353e4a4e5962686f767b7f828485868483817f7a75706a62594f4b3f3531414e5d65737575757575757575757575756e615746321e0a000b20354a6073879cb1c2d3decab6a49a84746259626b7f949db5bcc9dacebeb2a0988378889da9bacde2cdbaa99e88786257463726140100000000000000081b2e3f4b6074859ba6b6c2d0dfe0d0c7c9bcb5b3b2b4b9c6c7c1b5b0b1b5c2d2e5d5c0ab95806b56402b1600000c2135495b6e8398abbccfdfd4c4b7a59d8c827a74717072767d87969eafbbccddeee8d2bda8937d68533e281300000f22374c62778a9eb4c3d4e1cdbaa89f8d8178716e6d70767e889ba3b5c3d4e1cdbaa998826d5746321e0a0000182d42586d8297adc2d7e4cfbaa48f7a65606060606162676e79869ca4b6c9dae1ccb9a8927c67523726140100182d42586d8297adc2d7e4cfbaa48f7a654f3a251000000000000000000000000000000000000000000000000000000000000000000000060c0e1216181a191715130d0b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d22374c62778c9393939393939393939393939389745e49341f0000000000000000000000000000000000000000000000000000000000000000000b1926313c484d5c646f777d848a919497999a9b9a989694908a857f776e645d4d49444b60687b888a8a8a8a8a8a8a8a8a8a8a8a8376614b36210c00071c304354697e93a4b6c8d9d3c2b4a29a8478666c80959daebbcfdacebdb1a0988273647a8b9fb4bccdd7c7b8a69c8675615544311d14000000000000000e22374b5d6d8197a3b5c4d3e0d5ccc0b3afab9f9e9d9ea8a9b2b7c3c6c6c9d2e0ead5c0ab95806b56402b1600000e23394e63798c9fb5c9dadac9b7a69d877a6d6460545b5861687480959dafbfd0e3e8d2bda8937d68533e281300000b1f3448596a7f94a5b7cadfd7c6baab9f978d868383858a939da6b5c1d2e1d1c0b49f8a78624d392916030000182d42586d8297adc2d7e4cfbaa48f7a654f4b4b4b4b4d515b6376869cabbccfe3d6c6ad98836e5544311d0800182d42586d8297adc2d0d0cfbaa48f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080b141515151515151515151512100a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b21364b60757e7d7d7d7d7d7d7d7d7d7d7d7d7d7d68523d281300000000000000000000000000000000000000000000000000000000000000000e1b2937444b5a626d79848c93999fa9a9adafb0b0afadaba9a99f9a958b837a6f625a55606b7d8b9ea69f9f9f9f9f9f9fa99f928072615746321e0a00001325364b6074869caabbcee2d1c0b4a29a897b81959eafbccbe3cdbdb19f978273605c687d929eb0bfbcbcc4b5a4998373604b423118080000000000081c2e3f4f657a8f9fb1c1d2e2d5c5b8b3a29a918b8887898d939da5b0bccadee5f0ead5c0ab95806b56402b160005192b3b566c8196abbccfe3cfbcab9d8878645c4f4a433a474c55606b7f95a1b3c7dce8d2bda8937d68533e2813000005182a3b4b6075879db2becee1d7c9bcb4aca49c99989a9fa9b3b8c4d2dfd2c3b4a295806b5a48351b0b000000182d42586d8297adc2d7e4cfbaa48f7a654f3a363636383d4a58647a8d9fb5cadfdec9b39e8973604b35200b00182d42586d8297adbbbbbbbbbaa48f7a654f3a251000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141d20292a2a2a2a2a2a2a2a2a2a27251d13050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091e32455660686868686868686868686868686868604e3a251100000000000000000000000000000000000000000000000000000000000002101e2c3a4655606b78828d999fabafb4bac7c2c4c5c6c4c2c1c7bab4b0aa9f988f847869617380929fa9b8c4b5b5b5c1b5a69d8b7d6b605446392916030000081d324556657b8c9fb4bbcdd7d1c0b4a79e90969eb0bcccdacdbdb09f97817260554e5f6b8096a1a6a6a6a6a6a6a196816c604e36251300000000000e23374b5d6f849aafbdcedfd5c5b8a79e90847c76737274787e87959eadbacadbebead5c0ab95806b56402b16000b2034485971879cb1c9dadfcab59f8d7b65594a3e35302a3337444b60728499afc0d1e3d2bda8937d68533e28130000000d1e324556667c919fb1c3d4e7d9cfcac2b5b1aeadafb4bac7cbd5ddcec1b5a59a8474604b3c2b1900000000182d42586d8297adc2d7e4cfbaa48f7a654f3a252021232d3a4a5c6f8499afc4d9e1ccb9a88c77624d37220d00182d42586d8297a5a5a5a5a5a5a48f7a654f3a2510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009192631353e3f3f3f3f3f3f3f3f3f3f3c39302314070000000000000000000000000000000000000000000000000000000000000000000000000000000000000003162838454b5353535353535353535353535353524e41311e0b00000000000000000000000000000000000000000000000000000000000010202e3c49586173808b989fabb5bcc9c9cdd7d7d9dadbd9d8d6d8cec9c8bbb4ada19a8a7f7784969eb4bac7d5caccbfb2a39b887a675f4a4336291b0b000000021528384b5d697e939db4bac7d3d1c5b8b3a6abb0bdcddacdbcb09f968172605444414b607283919191919191919191917e685443301c070000000013253650657a8fa2b4c8dbdac9b8a69e897c6f6761575d5a62697480939cadbdcee3ead5c0ab95806b56402b16000d22374d62788ca4b6cae7d7c7ae99836f5d4b3b2d201c171f2731435464798ea2b4c8dcd2bda8937d68533e2813000000021628384c5e6d8297a5b7c9d9ebe3dfd2c9c6c3c2c5c9cdd7ddd1c8beb1a39b8776615645321e0e00000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100c0f1c2d3e53697e93a8bed3e8d6c6a48e79644f39240f00182d42586d8290909090909090908f7a654f3a25100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001142637444b5455555555555555555555524d4132251407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a2832363e3e3e3e3e3e3e3e3e3e3e3e3e3e3d3a3123130100000000000000000000000000000000000000000000000000000000000d1d2e3e4b5b637683959fa9b5bcc9cfdadfe2e3dfdddbd9dadcdfe3e2dfd8cec9bfb3a89f948a9aa1b0bcced8d7cdbcafa0988578645c4d413025180b00000000000a1a2e3f4f606a7f939fa9b6c2ced5ccc8bbc1c4cddbd2c1b09e96816c6054433630435461767c7c7c7c7c7c7c7c7c7c7c72604a35200b000000071c3043546d8297acc0d0e3cfbcab9e8879665e514c463c494d56606b7e939fb1c5d6e8d5c0ab95806b56402b160012283d52677d92a7c2d3e2cdbaa9907b66503f2e1d100704091525364a5c70859ab0c5dad2bda8937d68533e2813000000000a1a2f404b6175879dabbccfe3eef0e5dedbd8d8dadad4cac7c0b4b0a09785786258473828150000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000011263b50667b90a5bbd0e5d0bba6917b66513c2611000e24394e63797b7b7b7b7b7b7b7b7b76614c36210c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d31445560696a6a6a6a6a6a6a6a6a6a675f4f4332251407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a161e21282828282828282828282828282828251e130500000000000000000000000000000000000000000000000000000000000a1b2b3c4b5c64798699a1b4bac7cfdae3e0ded9cfcac8c6c4c5c7cacfd9dfe2e2dfd0c6bab4a99fa9b3bfcde2d4c7bab49e958275625a4b3e301c1308000000000000001121324250616a7e8b9ca4b1becee0ddd0d6d8e0dec9b5a396806c624a43362626364657616767676767676767676766605443301c070000000b20354a6072889db3c8dddfcab59f8d7b655b4c4036332c3538454b606c8196a7b8cce0d5c0ab95806b56402b1600152a3f546a7f94a9bfd4dfc9b49f8a76604b3621110000000008182d3d556a7f94aabfd4d2bda8937d68533e28130000000000121e334657657b8c9fb4c0d1e3f3f8f3eeded1c8c5c3b7b2aba29a8f8274625a483a2a1a0a0000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a2510000011263b50667b90a5bbd0e5d0bba6917b66513c2611000c21364a5b63666666666666666666615846331f0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60747e7f7f7f7f7f7f7f7f7f7f7c69614f43322514070000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090b131313131313131313131313131313110b01000000000000000000000000000000000000000000000000000000000008182839485a647a899ca4b3bfced8e3e1d6ccc8c9bcb4b3b0afb0b2b4bcc9caced9e6e4d7cdc7bab4bac7d0ded2c4b7a99f9180726057483c2e201300000000000000000003142433435060687a8697a0b1c5daf3e5ebf4f0dbc6b19b8675655d4b4538281a2939464c51515151515151515151514a43362513000000000f24394f647a8ea6b7cbdfd6c5ad98836e5d4b3c2f211e19202731424c6176899eb3c8ded5c0ab95806b56402b1600162c41566b8196abc0d6dbc6b19c86715645321e09000000000011263b51667b90a6bbd0d2bda8937d68533e28130000000000031729394b5d6a8095a2b4c5d5e7f7f7e3d1c0b4afa4a59d968f857a6d6056483c2b1c0c000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a25100b0e1b2d3d53687e93a8bdd3e9d6c6a48f79644f3a240f00071a2d3d4a4e5050505050505050504c463a29170400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d314455647a89949494949494949494917f69614f4332251407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013253645576278889da7b6c2d0e2e5d7cdc5b8b3adab9f9d9b999a9c9fabaeb4bbc8cfdde9e1d7cdc9cdd7ded1c1b5a69d8b7d6a605445392b1d10020000000000000000000006152533424e5c64758297adc2d7eceae2dfe2dec9b5a39b867b6c60564538291b2933363c3c3c3c3c3c3c3c3c3c3c35302518080000000013283e53687e93a8c4d4e0ccb8a78f7a654f3f2e1e120a060a151f3346586c8196acc1d6d5c0ab95806b56402b1600182e43586d8398adc2d8dac4af9a856f5a3828160300000000000f243a4f64798fa4b9ced2bda8937d68533e28130000000000000b1b2e3f4b6073849aa7b8c9daecf1dcc8b4a29a8e8c87817a70655d4b45382b1e0e00000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a251c20222c394a5b6e8399aec3d9e1cdb9a88c77624d37220d00000f1f2d36393b3b3b3b3b3b3b3b3b3633291c0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011426374b5c647a8a9ea8aaaaaaaaaaaa9d947f69614f4332251407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b0d121517191a1816130e0c0600000000000000000000000000000000000000000000071c3043546075859ba6b8c5d3e0ded1c7bab4a79e97918b88868485878b90999faab3bfcfe2f5eae2dfe2e3d1c0b4a39b887a675f4a4336281b0d0000000000000000000000000007151c30435460748499afc4d9e6d8cec9ced8d2c1b5a49c8d81746056463929171e212727272727272727272726201c13080000000000152a40556a7f95aabfd4dec8b39e8975604b352011000000000417293a50667b90a5bbd0d5c0ab95806b56402b1600182e43586d8398adc2d8dac4af9a856f5a3828160300000000000f243a4f64798fa4b9ced2bda8937d68533e281300000000000000111d3144556277899eabbccfe3efdac5af9a857a77726c655d4f4b3f32281a0e0000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f3a253035373c495763798c9fb4cadfdec9b49e8974604b35200b0000010f1a2124262626262626262626211f170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009192e3e4b5c647a8a9ea7b9c5bfbfbbae9d947f69614f43322514070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0d181f22282a2c2f2f2d2b2923211a0f0c06000000000000000000000000000000000000031628394a60728298a3b5c4d5e3dccfc0b4a99f9589827b7573716f7072767b838c99a1b3c6dbf0fdf6f4f1dcc8b4a29a8577645c4d413025180a000000000000000000000000000008182e3e4b60728298a1b3c7dcd6c8bbb4bbc8c9d2c2b6ab9f978374615746321e120c12121212121212121212110b0700000000000000172c42576c8197acc1d6dbc6b09b86715544311d0800000000000d23384d62788da2b7cdd5c0ab95806b56402b1600162c41566b8196abc0d6dbc6b19c86715645321e09000000000011263b51667b90a6bbd0d2bda8937d68533e281300000000000000011426374859667c8d9fb5c1d1e4dfcab59f8d7b6559564f4b3f372e1e160a000000000000000000182d42586d8297adc2d7e4cfbaa48f7a654f4a4a434a4c505a6375869cabbccfe3d7c6ae98836e5544311d0800000000070c0e1111111111111111110c0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010202e3e4b5c647a899ea7b9c5d6cbbbae9d947f69614f43322514070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c171f212a34373d4042444442403e39352c23211a0f0500000000000000000000000000000000091e324657687e93a0b2c1d2e2dbcebeb2a29a8b80766d6660565b5a5b5761666e788399aec3d8eeffffffefdac5af9a847562594a3e301c13080000000000000000000000000000011426364b5c6a7f94a0b2bfd0d5c5b9aa9faab1b5c1cdc9bcb5a1998475614b41301d0a0000000000000000000000000000000000000000192e43596e8398aec3d8d9c4af9a846f5a3726140100000000000c21364c61768ba1b6cbd5c0ab95806b56402b1600152a3f546a7f94a9bfd4dfc9b49f8a76604b3621110000000008182d3e556a7f94aabfd4d2bda8937d68533e2813000000000000000009192b3b4c5e6b8096a3b5c5d6e3cfbcab9e8877625443372e221b100200000000000000000000182d42586d8297adc2d7e4cfbaa48f7a655f5f5f546061666d78859ba4b5c9d9e1cdb9a8927d675237271501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000210202e3e4b5c647a899ea7b9c5d6cbbbae9d947f69614f43322514070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b161e2a33373b484c525557595a5855534e493d38352c20190d000000000000000000000000000004182a3a4b6175889db3becfdfdfcebdb1a09884786b6157514b453844394654606b7d8b9fb4c9def4fcfffff2ddc8b29d8875604b3b2d201300000000000000000000000000000000081c304354647a8c9fb4becfd5c5b8a79e8b909ba3b0bccccfbfb3a299836e5f4d3924100000000000000000000000000000000000000000172d42576c8297acc1d7dbc5b09b86705443301c0700000000000d22384d62778da2b7ccd5c0ab95806b56402b160012273d52677d92a7c2d3e2cdbaa9907b66503f2e1d1007040a1525364a5c70859ab0c5dad2bda8937d68533e28130000000000000000000d1d2f404b6074859ba7b9cce0dac9b8a69a8472604b3e2e1c0c000000000000000000000000182d42586d8297adc2d7e4cfbaa48f7b747474747475777b828b9ba3b5c2d2e7d5c4b49e8a76614c37210c0000000000070d0f20202020202020202020202020202020202020202020202020202020110f090000000000000000000000000000000000070c0e1818181818181815130d0400000000000000000000000000000000000210202e3e4b5c647a899ea7b9c5d6cbbbae9d947f69614f433225140700000000000000000000000000000000000000000000000000000000000000000000000000000000000003111b28323a474c545962676a6c6e6f6d6b68635b564e493d342b1d14020000000000000000000000000a1f3447596a7f95a6b7cbdce3d1c1b19f978274625a4b463936322e3c4857617280929fa9bacde1f3e7f4f6f4dfcbb7a6947f6a5947341f0a000000000000000000000000000000000b20354b6073869caabbced5c5b8a79e897a7a85969eafbcccd0c0b2a1917c67513e2d1b0700000000000000000000000000000000000000152b40556a8095aabfd5ddc8b39e8874604a35200f000000000316283950657a90a5bacfd5c0ab95806b56402b16000d22374d62788ca4b6c9ded7c7ae99846f5d4b3c2d201c171f2731435464798ea2b4c8ddd2bda8937d68533e281300000000000000000000121d3144556278899eb3bdcee0d5c4b3a2947f6a5c4b3a2917040000000000000000000000182d42586d8297adc2d7ecdfc9b49f8b89898989898a8c90979fa9b5c1d2e0dac9b8a695806a5847331f0a00000002101b22243535353535353535353535353535353535353535353535353535353526231c110300000000000000000000000000010f1a21242d2d2d2d2d2d2d2b2821150700000000000000000000000000000000000210202e3e4a5c647a899ea7b9c5d6cbbbae9d947f69614f4332251407000000000000000000000000000000000000000000000000000000000000000000000000000000000614212f39464b58616a70777d7f81848482807e78726b635b4d483c321d150a00000000000000000000000c22374c6177899eb4c4d5e7d6c5b4a397816d6056483c3329212e3f4b5a627583959eb4bac7d7e1ded2dfe2eae7d4c4b49e8a77614c3722100000000000000000000000000000000316283851667c91a4b6c8d8cbb8a69e897a64657380959eafc3d4cfbfb19b86715c4a36220d0000000000000000000000000000000000000013293e53687e93a8c5d5e0cbb8a68e79644f3d2d1d10080408131e3245576b8096abc0d5d5c0ab95806b56402b16000b2034485971869cb1c9d9dbc7b3a1907b655a4a3e35302a3338454b6072849aafc0d1e4d2bda8937d68533e28130000000000000000000002152737495a677d919fb1c2d2e2d0c0b49f8c7a645846331f140100000000000000000000182d42586d8297adc2d7ece2cebaa99f9f9f9f9f9f9faaa5acb4bac7d2dfe2cfbcab9d8875614b3a2a170400000010202e373a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a3b382f2211000000000000000000000000000f1f2d363942424242424242403c3325150400000000000000000000000000000000000210202e3e4a5c647a899ea7b8c5d6cbbbae9d947f69614f43322514070000000000000000000000000000000000000000000000000000000000000000000000000000081624323f4b57616a767f858b92959799999795938e8780796d625a4f4232281a0a000000000000000000071a2d3d566b8095a8b9cce2e0ccb8a79b8574604b45382b1e1a2c3d4b5d65788699a1b0bccdd7d7cdc9bdc9cdd7e5e1cdb9a8947f69543e2d1b070000000000000000000000000000091e32455670859aafc2d3d2c2b39e8879645c54606b8095a5b7cadec9b5a38e79644f39240f000000000000000000000000000000000000000f253a4f647a8fa7b8cce0d5c5ac97816c5b4a3b2d201d171f2530404b6075889db2c8ddd5c0ab95806b56402b160005192b3b566b8196abbccfe3d0bfb39d8878645c4f4a433a474c56606b7f95a2b3c7dee8d2bda8937d68533e2813000000000000000000000009192b3c4d5f6c8197a4b5c6d7e2cebbaa9d8776614c42311f0f00000000000000000000182d42586d8297adc2d7ecead8c7bab4b4b4b4b4b4b4bbc8c2c9ced8e5d8cebdb59f8d7c665746321c0c000000071b2e3e4b4f60606060606060606060606060606060606060606060606060606060504c402f1c090000000000000000000000071a2d3d4a4e5858585858585855504333210d0000000000000000000000000000000000000210202e3e4a5c647a899ea7b8c5d6cbbbae9d947f69614f433225140700000000000000000000000000000000000000000000000000000000000000000000000006162634424f5d65757f89949b9fabaaacaeafadaaa8a49c968b827869614b4538281b0a00000000000000000c21364a5b72879db2c6d6e7d5c4b39e897762564532281a0e2135495b657b889ca4b3bfcde1d4c6b9b4a7b4bac7d7e9d6c6b19c86715c4a36220d00000000000000000000000000000b21364b60768b9fb5cadfc9b5a4917c675b4a434b6075879db2c7ddd2c1a9947f69543f2a14000000000000000000000000000000000000000b20354b6073899eb3c8dedfcab49f8c7963594a3e3531293336434a5e6a8095a6b7cbdfd5c0ab95806b56402b1600000e23384e63798c9fb4c9dadfcbb7a69d877a6d6460545b5861687480959dafc0d0e3e8d2bda8937d68533e28130000000000000000000000000e1e30414b6074869ca8b9cde1d8c8b7a599836e604e3d2d1b0a000000000000000000182d42586d8297adc2d7ecf5e5d8cec9c9c9c9c9c9caced9d7dfe2ded3c8bbb49f947f6a5e4d392916000000000d22374b5c6475757575757575757575757575757575757575757575757575757575665e4c38230f00000000000000000000000c21364a5b636d6d6d6d6d6d6d6a62503c2813000000000000000000000000000000000000000210202d3e4a5c647a899ea7b8c5d5cbbbae9d947f69614f43322514070000000000000000000000000000000000000000000000000000000000000000000004142434445160697b88949ea8b0b5bcc9c1c3c4c2c0c3b6b2aa9f978a7e6d60564539281808000000000000000e24394e63798ea5b6cae4e0cbb7a6947f6a59483827150a0e23384e63788a9ea6b5c2cfddd1c3b7a89e929fa9bacde2dec9b5a48e79644f39240f00000000000000000000000000000e24394e63798eabbccfdbc6b19c86715f4d3d3245566d8297acc2d7d7c2ad97826d58422d1803000000000000000000000000000000000000081d3144556d8398adc1d2e2cebbaa9d8777645c4f4b443a464c5460697c8d9fb4c4d4e7d5c0ab95806b56402b1600000c2135495b6e8398abbccfe3d4c4b7a69d8c827a74717072777d87969eafbcccdeeee8d2bda8937d68533e281300000000000000000000000000121e32455663798a9eb4becfe0d4c3b2a1937e685b4a392816030000000000000000182d42586d8297adc2d7e5e5e5eae2dfdedededededfe2e2dfdbd3cac2b6aa9f93816c615040301b0b000000000f243a4f647a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a7c66503b261100000000000000000000000e24394e637982828282828282806a55402b1500000000000000000000000000000000000000000210202d3e4a5c647a899ea7b8c5d5cbbbae9d947f69614f43322514070000000000000000000000000000000000000000000000000000000000000000001122324251626c7e8c9da6b3b9c6cacfdad6d9d9d7d5d3cac8bbb4a99f93827460574536251300000000000003162839556a7f94aac3d3e6ddc8b39d8875604b3b2b1a0a000c2135495b6c8197a2b4c3d3cec0b4a59d8a7d8b9fb4c9dfe5d2c2aa95806a55362513000000000000000000000000000011273c51667c91a6c9dad7c2ac97826d5740302838556a7f94aabfd4d9c4ae99846f59442f1a040000000000000000000000000000000000000114263751667c91a3b5c9ddd8c8b6a59d877a6d6560555b586167727e8c9fabbccfe2ead5c0ab95806b56402b160000061a2c3d4e647a8d9fb5c1d2e2d4c4b7ab9f978f898685878b929ca5b0bccce0e8f4e8d2bda8937d68533e28130000000000000000000000000002162838495b687d92a0b2c2d3e1cfbfb49f8b79635745321e130000000000000000182d42586d8297adc2d0d0d0d0d0d0d0d0d0d0d0d0cfd9cecac6c3b6b2a49c8b7e6c63524333221200000000000f243a4f64798f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f907b66503b2611000000000000000000000011263b50667b9097979797979786715c46311c0700000000000000000000000000000000000000000210202d3e4a5c647a899ea7b8c5d5cbbbae9d947f69614f4332251407000000000000000000000000000000000000000000000000000000000000000b1b2f404f606c80939faab7c4ccd6dfdadacfcacaced8d8dfd9cec7bab4a0978475605443301c100000000000091e32465771869bb0c6dbe7d4c4aa95806a5745321d0d0000061a2c3d4b6073849aa5b6c5beb1a29b87796e8398aec6d6e8d9c4af99846f5443301c070000000000000000000000000012273c51677c91a6c9d9d8c2ad98836d5443343343546c8297acc1d7d9c4ae99846f59442f1a04000000000000000000000000000000000000000924384c5e71859bb0bfd0e1d4c3b6a59d8c827a75717072767c85939faabbc9d9ebead5c0ab95806b56402b160000000f22364a5c6b8096a3b5c4d4e1d4c9bcb4aca79e9c9b9d9faab2b6c3c5c9ccd6e4e8d2bda8937d68533e281300000000000000000000000000000a1a2c3d4e5f6d8298a4b6c7d7e1cdbaa99c8675604b41301e0e00000000000000182d42586d8297adbbbbbbbbbbbbbbbbbbbbbbbbbbbac8bbb4b0aaa49c92867b696052453525150400000000000f243a4f64798fa4b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5a5907b66503b2611000000000000000000000011263b50667b90a5adadadad9b86715c46311c070000000000000000000000000000000000000000000210202d3e4a5c647a899ea7b8c5d5cbbbae9d947f69614f43322514050000000000000000000000000000000000000000000000000000000000031729394c5e697e939eb4bbc8d5e0d1c8c5c9bcb5b4bbc8c3cacfd9d7cdbeb1a2998372604a3e2e1b08000000000c21364b61768b9fb5cadfdfcbb7a68e79644f392816000000000f1d3144556176879ca7b9b4a097847763667b90a8b9cce1dec9b39e8974604a35200b000000000000000000000000000f253a4f647a8fabbccfdcc7b29d8773604c48464c6073869cb1c6dbd6c1ac97816c57422c170200000000000000000000000000000000000000091d2f4051667c90a1b3c3d4e1d4c3b7aa9f988f898685878a919ba3b4bbc8d8e7f1ead5c0ab95806b56402b16000000071b2d3e4b6074859ba6b6c3d2e1d9cfcac5b9b3b1b0b2b4bbc8c0b4afb3b9c5d6e8d2bda8937d68533e28130000000000000000000000000000000f1f31414b6175869ca9bacde2d7c7b6a497816d5f4d3c2c1909000000000000182d42586d8297a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a3aa9f9b958f877d73655d4f42352717070000000000000f243a4f64798fa4b9cacacacacacacacacacacacacacacacacacacacacacabba5907b66503b2611000000000000000000000011263b50667b90a5bbc2c2b19b86715c46311c07000000000000000000000000000000000000000000000210202d3e4a5c647a899ea7b8c5d5cbbbae9d947f69614f4332231301000000000000000000000000000000000000000000000000000000000a1e334657667c8c9fb4bdced8d6ccc0b4b0a8ab9f9faaa6adb4bcc9d3e1cec0b2a195806b5c4b372212000000000f24394f64798eabbccfe3ddc8b29d88735c4a361b0a000000000115273747586379899eaa9f94827461596075899eb4c9dee0ccb9a78d78634d38230e000000000000000000000000000c22374c61778b9fb4cadfcab6a5947f6c625958616b7e93a4b5c9ded1c0a9937e69543e29140000000000000000000000000000000000000000001224384c5e6f8399a5b6c6d5e1d4c8bbb4ada89e9c9b9c9faab0b5c1c7c7cad3e0ead5c0ab95806b56402b1600000000101d3144556378889da5b5c1ccd6dfdfd6ccc9c6c5c7cacec1b4a29a9ea7b9cce0d2bda8937d68533e281300000000000000000000000000000001131e324657647a8b9fb4bfcfe1d3c2b19f927d675a49372715020000000000182d42586d82909090909090909090909090909090908e8c8a86807a736760544b3f32241709000000000000000f243a4f64798fa4b9cedfdfdfdfdfece3dfd5d3d3d3d3d3d3d3d3d3d3d3d0bba5907b66503b2611000000000000000000000011263b50667b90a5bbd0c6b19b86715c46311c0700000000000000000000000000000000000000000000000210202d3e4a5c647a899ea7b8c8d9cbbbae9d947f69614f41311e0b00000000000000000000000000000000000000000000000000000005182b3b4b6175889eaabbcee2d5c5b9b3a29a928d8a8a8c91989fabb6c2d2dfcfbfaf9e8f7a644f402f1d0900000012273c52677c91a7c9daecd9c3ae99846e593e2d1b00000000000009192a3a495b667c8c9e8d7f6d6056475571869cb1c6dbe8d6c5a48f7a644f3a250f000000000000000000000000000a1f33475870859aafc2d2d4c3b49f8d8177737276808c9fb4c2d2ddc8b4a28d78624d38220d000000000000000000000000000000000000000000091d2f404c6176879da8b8c4d3e1d9cecac6b9b3b1b0b2b4bbc8c2b6b1b1b6c2d3e5d5c0ab95806b56402b160000000002152737495a6378879ba3b3b9c6cad3d5d8d9d7d6cdc9bcb4a39a85899eb3c9cacabda8937d68533e281300000000000000000000000000000000031629394a5c697e93a1b2c3d4d0cebdb39e8978635544311d1200000000000e24394e63797b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a797775716a6460544b43362e21140600000000000000000f243a4f64798fa4c4d5e4f4fff7e7dacfcac0bebebebebebebebebebebebebba5907b66503b261100000000070d0f1212121212263b50667b90a5bbd0c6b19b86715c46311c12121212120b070000000000000000000000000000000000000210202d3e4a5c647a899eaabbcee2cbbbae9d947f695f4e3a25110000000000000000000000000000000000000000000000000000000b203448596a8095a6b8c8d9d5c5b8a79e91857d787575777c838c9ca4b5c1d2ddccbcb09a85705e4c38240c00000013283e53687d93a8bdd2e8d6c1ac97816c57422c17000000000000000c1c2c3d4c5e697f897c69614b4538596e8499aec3d9e5d0bba6907b66513b26110000000000000000000000000004182a3a53687d92a4b5c9d9cfbcab9f978c88878c959faabbcedfcfbeb09a85705a4835200b00000000000000000000000000000000000000000000121f334758647a8a9da6b6c2cdd6dfdfd6ccc9c6c5c7cacec3b6a49c9ca4b6caded5c0ab95806b56402b16000000000009192c3c495a637785939ea8b2b6c3c0c3c4c1c6b9b4ab9f968576889eb3b5b5b5b5a8937d68533e281300000000000000000000000000000000000b1b2d3e4e606e8399a5b7c8bbbbbbb9a89b8574604b402f1c09000000000c21364a5b636666666666666666666666666666666563616054554f4b433630261810030000000000000000000f243a4f647a8fa6b7c6d7e6f6ecdac9bcb5aaa9a9a9a9a9a9a9a9a9a9a9a9a9a5907b66503b2611000002101b22242727272727273b50667b90a5bbd0c6b19b86715c4631272727272727201c130800000000000000000000000000000000000210202d3e4a5c64798a9fb4cadfd9cbbbae9d927d68523d28130000000000000000000000000000000000000000000000000000000d22374c62778a9eb4c4d5dac9b8a79e897c706862606061666e7a869ba3b5c5d6ddc8b4a2917c66513a2a17040000142a3f54697f94a9bed4e9d4bfaa957f6a55402a1500000000000000000f1f2f404f616977665e4f433141576c8196acc1d6e7d2bda7927d68523d281300000000000000000000000000000c20354b6074869cabbccfd9c9bcb4aca69d9d9fabb4bbc8d8d1c1b2a08f7a654f3c2b1905000000000000000000000000000000000000000000000417293a4a5c647a889ca4b4b9c6cad3d5d8d9d7d8cec9beb2a59c87869cb1c7cacac0ab95806b56402b160000000000000e1e2c3c495962737e89959ca5a9abadafaca9a89e978c807473889e9f9f9f9f9f9f937d68533e28130000000000000000000000000000000000000f2031424c6176879daaa5a5a5a5a5a5a396806b5e4c38240f00000000071a2d3d4a4e505050505050505050505050505050504e4c4b43363a3530261c140800000000000000000000000c22374c6177889da8b9c8d9ebe3cfbcab9f959393939393939393939393939393907b66503b2611000010202d36393d3d3d3d3d3d3d50667b90a5bbd0c6b19b86715c463d3d3d3d3d3d3d35302518080000000000000000000000000000000009192737445560738298aabbcee2d2c1b5a39b8576614c37210c000000000000000000000000000000000000000000000000000005192b3c556a7f95a8b9cde3cfbcab9e8979665e534d4b4a4c515c6476859ba7b9cce0d1c0af9a85705847331f0a0000152a3f546a7f94a9bfd4e9d4bfa9947f6a543f2a15000000000000000001112232424f5962594c40322b41566b8096abc0d5e8d2bda8937d68533e28130000000000000000000000000000081d314455657b8d9fb4bcc9d5cfcac4b7b3b2b5bcc9ced8cec1b5a398826d5d4b371e0e0000000000000000000000000000000000000000000000000c1c2d3e4a5c647886949ea8b2b6c3c0c3c4c2c8bbb4aea0988777859bb0b5b5b5b5ab95806b56402b16000000000000000e1e2c3b485560697780878e9396989997949189827a6b6073898a8a8a8a8a8a8a8a7e68533e281300000000000000000000000000000000000001141f334658647a8b9090909090909090908c7b66513b261100000000000f1f2d36393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b393735302625201c1408010000000000000000000000000b1f344759647a8a9eaabbcee2dfcab59f8b807e7e7e7e7e7e7e7e7e7e7e7e7e7e7e78624d38220d00071b2d3e4a4f5252525252525252667b90a5bbd0c6b19b86715c52525252525252524a4336251300000000000000000000000000000009192737445560738298a0b2c8d9d2c1b5a39b8576615847331f0a00000000000000000000000000000000000000000000000000000b2035485a71869bb0c6d7dfcab59f8d7c665b4d40383535373e4a586278899eb3c8d8dfcab49f8b77614c37210c000014293e53697e93a8bed3e8d6c1ab96816c56412c17000000000000000000031424323b484d483b2f222d43586d8298adc2d7e7d1bca7927c67523d27120000000000000000000000000000011527374b5d687e939fabb7c4ccd5d5cbc8c7cacfdad0c7bdb1a39b8574604b3f2e1b000000000000000000000000000000000000000000000000000010202d3e4a5a62747f8a959ca5a9abadafadaaaa9f9990827770859b9f9f9f9f9f9f95806b56402b1600000000000000000e1d2b37444b59626a72797e808384827f7c766d645c4b6b73757575757575757568604e3a2611000000000000000000000000000000000000000417293a4b5c647a7b7b7b7b7b7b7b7b7b7b7a644f3a240f0000000000010f1a2124262626262626262626262626262626252422201c140f0b0801000000000000000000000000000004182a3b4a5c667c8c9fb4bccde3cfbcab9b85766969696969696969696969696969625a4835200b000d22364a5c646767676767676767677b90a5bbd0c6b19b8671676767676767676767605443301c070000000000000000000000000009192737445560738298a0b2becfd2c1b5a39b85766158473a2a170400000000000000000000000000000000000000000000000000000d22384d62788da3b5c9e4d6c5ae99836e5e4c3d30222020222d3a495a6a7f95aabbcee2cebbaa927d67523d2812000012283d52677d92a7bcd2e7d8c3ad98836e583c2b190500000000000000000006141d2b3437342b1d1a2d3d5a6f859aafc4daebd9c8a6907b66513b261100000000000000000000000000000009192e3f4e60697f8d9da6b3b8c5c6c8cccec9c7c4bfb3af9f97857762564532211000000000000000000000000000000000000000000000000000000210202d3c4956606a7780878e939698999795928a847b6d6170858a8a8a8a8a8a8a8a806b56402b160000000000000000000d1926313b484c555c64696b6e6f6c6a6761574f4a4c595e6060606060606060534e42311f0b00000000000000000000000000000000000000000c1c2e3e4b5c6466666666666666666666645c4a36220d00000000000000070c0e111111111111111111111111111111100e0c0b0801000000000000000000000000000000000000000c1d2d3e4c5e687e939eb0becfdac9b4a3998372605454545454545454545454544d483c2b1905000f24394f647a7d7c7c7c7c7c7c7c7d8096abc0d5c7b29d877d7c7c7c7c7c7c7c7c7d72604a35200b00000000000000000000000009192737445560738298a0b2becfd2c1b5a39b85766158473a2a1c0c00000000000000000000000000000000000000000000000000000013283d53687d92a8c1d2e0ccb9a78f7a654f402f1f120b0b0f1c2b3c4c61768b9fb4cadfd9c8ad98836d58432e18030010253a4f657a8fa4c3d4e6dbc6b19c86715a4835200b00000000000000000000000d18202220180d21364a5c73889db2c8dde2cebbaa8e78634e39230e00000000000000000000000000000000112131424f61697b88949ea7acb1b3b8bab4b2afa9a19a8f81746259473828160300000000000000000000000000000000000000000000000000000002101e2b38454b59626b72797e80838482807d766f665e4c677075757575757575756b62513d28140000000000000000000009141d2a34373e4a4f5456585a5754514b4639363c45494a4a4a4a4a4a4a4a3e3a3124140200000000000000000000000000000000000000000010202e3e4a4f505050505050505050504f4a3e2e1b0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010202f404e606b8096a0b2c0d1d1c1b2a196806b604f403e3e3e3e3e3e3e3e3e38352b1e0e0000162b41566b80929292929292929292969eb0c4d8cab7a59d9292929292929292928a73604b35200b000000000000000000000009192737445560738298a0b2becfd2c1b5a39b85766158473a2a1c0c00000000000000000000000000000000000000000000000000000000152b40556a8095aabfd5dec9b39e8974604b352011010000000e1f33475870859bb0c5dadac5af9a85705a45301b05000c22374c61778ca5b7cadfdec9b5a48d78624d382212000000000000000000000000050b0d0b051527374e64798ea6b7cbdfdfcab49f8a75604b36200b0000000000000000000000000000000003142432434f5d65757f8891979c9ea7a99f9d9a948e847a6c6056473b2a1a0a0000000000000000000000000000000000000000000000000000000000000e1a27313b484c565c64696b6e6f6d6a676158504c48555b606060606060606056514433210e0000000000000000000000010d181f222d36393e414344423f3c36322822293133353535353535353528261f1406000000000000000000000000000000000000000000000210202d36393b3b3b3b3b3b3b3b3b3b3a362e20100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002122231424a60728298a2b4c3d3cfbfb09e937e695e4c3e2d292929292929292220190e000000162b41566b8096a7a7a7a7a7a7a7a7abb0bccddfd4c3b7b2a7a7a7a7a7a7a7a7a08a75604b35200b0000000000000000000009192737445560738298a0b2becfd2c1b5a39b85766158473a2a1c0c0000000000000000000000000000000000000000000000000000000000172d42576c8297acc1d7dac5af9a85705544311d08000000000417293a576c8196acc1d6dcc7b29c87725d47321d08000a1f34475972879db2c7dde5d2c2a8937e685340301909000000000000000000000000000000081d3144556a7f94aac4d4e7dbc6b19b86715645311d090000000000000000000000000000000000061525323f4b57616a757c8186898b8b8a88847e796f645c4b45382a1d0d00000000000000000000000000000000000000000000000000000000000000000a151d2b34373e4a4e5456585a5855524c473a383842464a4a4a4a4a4a4a4a403d3326160400000000000000000000000000050b101b2224292b2e2f2d2a27211e160b161c1e202020202020202013110b0200000000000000000000000000000000000000000000000002101b22242626262626262626262624221b1002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004141c3043546074849ba4b6c5d5cdbcb49f8d7c665c4a3c2b1c14141414140d0b0500000000162b41566b8096abbcbcbcbcbcbcbcc0c4cddaeae1d4cac7bcbcbcbcbcbcbcb5a08a75604b35200b00000000000000000009192737445560738298a0b2bfcfd2c1b5a39b85766158473a2a1c0c0000000000000000000000000000000000000000000000000000000000001a2f44596f8499aec4d9d8c3ad98836e58372614010000000000152a3f556a7f94aabfd4dec9b49f89745f4a341f0a0004182a3a566c8196abc5d6e8dbc6b09b85715e4d3727150200000000000000000000000000031628394b6074879cb2c7dce6d4c3aa957f6a55382715020000000000000000000000000000000000000715212e39464b5760666c7173757675726f69635b4f4b3e32281a0d00000000000000000000000000000000000000000000000000000000000000000000020d1820222d36393e41434442403d37332923262e3035353535353535352b282116080000000000000000000000000000000000070d0f1416191a1715120c0903000207090b0b0b0b0b0b0b0b000000000000000000000000000000000000000000000000000000000000070d0f111111111111111111110f0d0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013253645566176869ca7b8c7d7cfbcab9f8a7a645a483a291a0a00000000000000000000162b41566b8096abc0d1d1d1d1d1d1d5d8dfeaf8f1e6dfddd1d1d1d1d1d1cab5a08a75604b35200b00000000000000000a192737445560738399a1b2bfcfd2c1b5a39b85766158473a2a1c0c000000000000000000000000000000000000000000000000000000000000001a2f44596f8499aec4d9d8c3ae98836e59372614010000000000152a3f556a7f94aabfd4dec9b49f89745f4a341f0a000010253b50657b90a7b8cce0ddc9b5a3917c665544311d1300000000000000000000000001141e324557687d92a4b6cadedfcab7a58e79644e39240f000000000000000000000000000000000000000003111b293339454b51575c56606160545a544e493d372e1d150a00000000000000000000000000000000000000000000000000000000000000000000000000050b101b2224292b2e2f2d2b28211f170c13191b202020202020202016140e0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000818283847586378899ea9bac9d9c9baa89d887862584638271502000000000000000000162b41566b8096abc0c4c4c4c4c4c4c6c9d2dff0e4d6cdc9c4c4c4c4c4c4c4b5a08a75604b35200b000000000000000a1a2737445560738399a1b2bfcfd2c1b5a39b85766158473a2a1c0c0000000000000000000000000000000000000000000000000000000000000000172d42576c8297acc1d7dac5af9a85705544311d080000000004172a3a576c8196acc1d6dcc7b29c87725d47321d0800000b20354b6074899eb3c9dae4d2c1b19c8674604b41311c130800000000000000000009141d32424b6075879db2c3d3e6d8c7b29d87725c4a36210d000000000000000000000000000000000000000000000b171e2832363c4238454b4c4a43363f39352c221b10020000000000000000000000000000000000000000000000000000000000000000000000000000000000070d0f1416191a1815120c0a04000004060b0b0b0b0b0b0b0b0100000000000000000000000000000000000000090e101e1e1e1e1e1e1a181208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a2a3a495a647a8b9fabbccfd7c6b8a69c8676615645311d15050000000000000000162b41566b8096abafafafafafafafb1b5c1d2e5d6c6b9b4afafafafafafafafa08a75604b35200b0000000000000a1a2738455560738399a1b2bfcfd2c1b5a39b85766158473a2a1c0c000000000000000000000000000000000000000000000000000000000000000000152b40556a8095aabfd5dec9b39e8974604b352012010000000c1f33475870859bb0c5dadac5af9a85705a45301b050000081d3144556d8298abbccfe3decab6a496816c5f4e41302518110a03000000040a11192631424f616d8298a6b7cbe1e2cebaa996816c563d2d1a070000000000000000000000000000000000000000000000030a161e21262c273136363530252923211a0f07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003111c23263333333333332f2d25190b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1c2c3c4b5c677d8d9fb5bdcdd5c4b6a49a8474604b443323130300000000000000162b41566b80969a9a9a9a9a9a9a9a9ba3b5c9decdb9a89e9a9a9a9a9a9a9a9a9a8a74604b35200b00000000000a1a2738455660738399a1b3bfcfd2c1b5a39b85766158473a2a1c0c0000000000000000000000000000000000000000000000000000000000000000000013283d53687d92a8c1d2e0ccb9a78f7a6550402f1f120b0b101c2c3c4c61768b9fb4cadfd9c8ad98836d58432e18030000011527374e64798c9fb5c7d7e5d3c2b19f927d685f4a43362e211e17161416171f212f37444b60697f93a0b2c4d4e6d6c6b49f8b78624d38230f000000000000000000000000000000000000000000000000000003090b1117151d2021201c13140e0c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111212f383b494949494949454137291908000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1e2e3e4d5f697f949fb0bfd0d3c2b4a298826d6250413121110100000000000013283e53687e848484848484848484859bb1c6dbc9b49e8a8484848484848484848474604b35200b000000000a1a2738455660748399a1b3bfcfd2c1b5a39b85766158473a2a1c0c00000000000000000000000000000000000000000000000000000000000000000000000d22384d62788da3b5c9ddd6c5ae99836e5e4c3d30232020222d3a495a6a7f95aabbcee2cebbaa927d67523d2812000000000921364a5c6d8298a9bacde2e0cebdb49f8c7d6b60544b3f3633292b292b293337404c55606c7e8c9fb4becfe2e1ccb9a896816c5a4935200c0000000000000000000000000000000000000000000000000000000000000002090b0c0b0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1f2f3f4c505e5e5e5e5e5e5a54473725120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000102030404f616c8196a1b3c1d2d1c0b2a095806a604e3f2f1f0f00000000000011263a4e60686f6f6f6f6f6f6f6f6f7b90a5bbd0c6b19b86716f6f6f6f6f6f6f6f6f605443301c080000000a1a2738455660748399a1b3bfcfd2c1b5a39b85766158473a2a1c0c0000000000000000000000000000000000000000000000000000000000000000000000000b2034485a71869bb0c6d7dbc7b3a1907c665b4d41383635373e4a586278899eb3c8d8dfcab49f8b76614c37210c00000000071a2d3d4d62788b9fb4c2d3e3e2cebbaa9f928072655d524c4639403f403a474c525e667381939faabbcedce2d2c1b39e8977614c3c2c190600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2d3d4c5d657373737373736f6554412d18030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b14141414142232434b60728399a3b5c3d4cfbeaf9e927e685d4c3d2d1d0d00000000000b1f31424e535a5a5a5a5a5a5a5a667b90a5bbd0c6b19b86715c5a5a5a5a5a5a5a5a4b4336261401000009192738455660748399a1b3bfc8c8c1b5a39b85766158473a2a1c0c0000000000000000000000000000000000000000000000000000000000000000000000000005192b3c556a7f95a8b9cde1d0bfb39e8979675f534d4b4b4c515c6476859ba8b9cce6d1c0af9a85705847331f0a00000000000f2035485a6b8196a4b6c5d6e6d8c8bbb49e95857b6f67615758565456585861676f7b86969fb4bbc8d9e5d4c4b5a3947f6a5847331e0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a2a3b4a5b657c888888888888846f5a452f1a0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131c20292929292929293043546075859ba5b7c5d6ccbcb49f8c7b655b4a3b2b1b0b00000000021424313a3e4545454545454550667b90a5bbd0c6b19b86715c46454545454545453530261808000001142637455660748399a1b3b3b3b3b3b3a39b85766158473a2a1c0c0000000000000000000000000000000000000000000000000000000000000000000000000000000d22374c62778a9eb4c4d5e0ccb8a79e8a7c706862606062666e7a869ba3b5c6d6dac9b4a2917c66513a2a1704000000000005192b3c4c6176869ca7b8c8d8e6d8cebcafa39b8f847c76706d6b696b6d70767d84909ca4b0bdced9e6d7c7b7a69b8574604b3a2a1800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000818283847596379899e9e9e9e9e8f7b65503a251000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008182530353e3e3e3e3e3e3e3e3645576277879da7b8c7d8cebbaa9e8a79635948392919090000000006141f26282f2f2f2f2f2f3b50667b90a5bbd0c6b19b86715c46312f2f2f2f2f2f201c1408000000081d314455607483999e9e9e9e9e9e9e9e9b85766158473a2a1c0c000000000000000000000000000000000000000000000000000000000000000000000000000000000b1f3448596a8095a6b8c8d9d5c5b8a89e91857d787575777c838d9ca4b5c1d2e3cfbcab9a84705e4c381c0c000000000000000e1e3346576378899eaabbcdd7e5e2ccc1b5b0a199928a8582807e8082858b929aa2b1b6c2cde2e4d6c9baa99d8877625645321c0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013253645566277879da7b3b3aa99836e5d4b37230e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000132536434a5454545454545454545454596379899ea9baced8c8b9a89d87776257463726140100000000020b11131a1a1a1a1a263b50667b90a5bbd0c6b19b86715c46311c1a1a1a1a1a0b0801000000000b20354b6075828988888888888888888885766158473a2a1c0c000000000000000000000000000000000000000000000000000000000000000000000000000000000005182a3b4b6175889daabbcee2d5c6b9b3a29a938d8a8a8c91989fabb6c2d2decfbeb59f8d7a644f402f1d000000000000000003172939495a657b8c9fb4bac7d4e2dfd2c9bfb3aea99f9a98959495989a9faaafb4c0c9d3e0e1d4c6b9ab9f8b7a6459483828160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003111c3043546074859ba5b7c5b49f8b79634e3f2e1c080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c3043546069696969696969696969696969697a8b9fb4c9dfd6c6b7a59b8575615544311d0800000000000000000505050511263b50667b90a5bbd0c6b19b86715c46311c070505050500000000000000081d314455606d73737373737373737373706158473a2a1c0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1e324657657b8c9fb4bcced8d6ccc0b4b0a8ab9f9faaa6adb5bcc9d3e1cec0b2a095806a5c4a3622120000000000000000000b1b2c3c4b5d687e929fa9b7c4d1dfe4ddd0c7c7bab4afadaba9abadb0b4bbc8c7d0dee5dfd1c3b6a89e8d7d675c4a3b2b1a0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001112131424a60728298a3b5c3b9a796816c5b493521110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354a60727e7e7e7e7e7e7e7e7e7e7e7e7e7e7e849aafc4dae4d4c3b5a3998373604b35200b00000000000000000000000011263b50667b90a5bbcac6b19b86715c46311c07000000000000000000000001142637444b585e5e5e5e5e5e5e5e5e5e5b4c473a2a1c0c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000031629394c5d697e939eb4bbc8d4e0d1c8c5c9bcb5b4bbc8c3cacfdad7cdbeb1a2988272604a3e2e1b04000000000000000000000e1e2f3f4e60687d8b9da6b4c1cad4e0e3dbd8cec9c5c2c0bec0c2c5caced8dce3e0d3cac0b4a59d8a7c675f4d3e2e1d0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1f2f3f4e606b8096a0b2c1c3b39e8977614c3d2c1a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60748a93939393939393939393939393939aa2b4c8dcf2e2d2c1b3a196806b56412b1601000000000000000000000011263b50667b90a5b5b5b5b19b86715c46311c07000000000000000000000000091926313542494949494949494949494637332a1c0c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1b2f3f4f606b80939faab7c4ccd6dfdadacfcacaced8d8dfd9cec7bab49f978475605443302010000000000000000000000000112131424e5f677a889ba3b2b7c3ccd6dee1e2dfdad7d5d3d5d7dadfe2e0ded5cbc3b6b2a29a8779665e4d41302010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1d2d3d4c5d687e939eb0bfcab7a5947f695847331f0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0a9a9a9a9a9a9a9a9a9a9a9a9a9afb4c0d1e3f7f0dfd0bfaf9a846f5a452f1a05000000000000000000000011263b50667b909f9f9f9f9f9b86715c46311c070000000000000000000000000009141d202d3333333333333333333330211f170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001121324251626b7e8c9da6b3b9c5cacfd9d6d8d9d7d5d3cac8bbb4a99f9382746057453625130200000000000000000000000003142431414d5c647785929da5b3b8c5c9cdd6dadddfe3ebe2dfddd9d6ccc9c4b8b3a59c918476635b4c40302313020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1a2a3b4a5b657b8c9fb4bccdc1b29d8775604b3a2a1801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0b5bebebebebebebebebebebebec4c8d1deeefffeedd9c4af9a846f5a452f1a05000000000000000000000011263b50667b8a8a8a8a8a8a8a85715c46311c07000000000000000000000000000001080b181e1e1e1e1e1e1e1e1e1e1b0c0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003142434445160687b88949ea7b0b4bcc9c1c3c4c2bfc2b6b1aa9f978a7e6d605645392818080000000000000000000000000000061423303e4a5962737d87949ea7aeb4b9c6c4c8cacfd9cecac7c4c5b9b3ada69e93877c6f61584a3d3022130500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008182838475963798a9eaabbcec9b5a3927d675645321c0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cad3d3d3d3d3d3d3d3d3d3d3dadce3dfdfdfdfdfd9c4af9a846f5a452f1a0500000000000000000000000f23384c5e6675757575757575716756432e1a050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006162634424e5d65757f89949b9fabaaacaeaeacaaa8a49c968b827769604b4538281b0a000000000000000000000000000000000513202d3b48546067757f8992989ea8acafb2b4bcb6bbb4b2afaba79e9891887e74675f4c473a2d1f12040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013253645566277879da8b9c8cfbfb09b8572604a3828160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0b5cacacacacacacacacacacacacacacacacacacacacac4af9a846f5a452f1a050000000000000000000000091c2f404c50606060606060605c5649392613000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081624313f4b57606a767f858b92949799999795938d8780796c62594f4232281a0a00000000000000000000000000000000000002101d2b36434b566069767d838990969a9d9faba1aa9f9d9a969089837c766960554d41332a1c0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071c3043546074859ba5b7c6b5b5b2a18f7a655443301a0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758aa0b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5af9a846f5a452f1a0500000000000000000000000011222f383b4a4a4a4a4a4a4a4643392b1b0a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000614212e39454b58616970777d7f81838482807d78726b635b4d483b321d150a0000000000000000000000000000000000000000000d18263038454b5861676e757b8185888a8b8c8b8a8884817b756e6761574b4437301f180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354a60728399a39f9f9f9f9faa99836e5d4b362513000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60758a9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a846f5a452f1a0500000000000000000000000003111c232635353535353535312e261b0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003111b28323a474c545961676a6c6e6f6d6a68635b564e493d342b1d1402000000000000000000000000000000000000000000000008141c28323a464c525660666c6f737576777675726f6c656055524b4639312719120400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000162b41566b808a8a8a8a8a8a8a8a8a8b78634d3f2e1808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b20354b60748a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a846f5a452f1a050000000000000000000000000000090f11202020202020201c1a130a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a161e2a33373b474c52555759595755534e493d38352c20180d0000000000000000000000000000000000000000000000000000010a161e29333638454b51575a5d57606160565d5a56504b44373632291d150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014293d51626b75757575757575757574635a493521100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081d314455707575757575757575757575757575757575757575757575757575756f6654412d18030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c171f212a34373d3f42444442403e38352c23211a0f050000000000000000000000000000000000000000000000000000000000020b171f212832363b414539454b4c4b453845413b363127211e160b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e21344451566060606060606060605f4d493c2c1903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001142637445e6060606060606060606060606060606060606060606060606060605a54473725120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0c181f22282a2c2e2f2d2b2823211a0e0c06000000000000000000000000000000000000000000000000000000000000000000040a0c151d20262c30283236373632282f2c26201d150c0a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041626343d414a4a4a4a4a4a4a4a4a4a38352c1e0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091926314a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4541372919080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b0c121517191a1815130e0c0600000000000000000000000000000000000000000000000000000000000000000000000000000002090b11171a161e2122211e161a17100b080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081621292b353535353535353535352320190e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141d353535353535353535353535353535353535353535353535353535352f2d25190b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020003090b0c0b09030001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e14162020202020202020201f0e0c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000108202020202020202020202020202020202020202020202020202020201a18120800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_StreamData: + offset: 0 + size: 0 + path: diff --git a/UI/Fonts/TMPro Fonts/EuclidCircularB-Semibold SDF.asset.meta b/UI/Fonts/TMPro Fonts/EuclidCircularB-Semibold SDF.asset.meta new file mode 100644 index 0000000..44486aa --- /dev/null +++ b/UI/Fonts/TMPro Fonts/EuclidCircularB-Semibold SDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 07eb140c74981ed4aab6d34ebb2e5737 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs.meta b/UI/Glyphs.meta new file mode 100644 index 0000000..9bee6d5 --- /dev/null +++ b/UI/Glyphs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aba523e577871a64fb1a41abe946a57b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/Action_Buttons_Background.asset b/UI/Glyphs/Action_Buttons_Background.asset new file mode 100644 index 0000000..eabecb6 --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Background.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: Action_Buttons_Background + m_EditorClassIdentifier: + glyph: 4 + color: 3 + PC: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + Xbox: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + Steamdeck: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + Playstation4: {fileID: 21300000, guid: 04ac989bccda5f643a7a8cfa7a47aa49, type: 3} + Playstation5: {fileID: 21300000, guid: 04ac989bccda5f643a7a8cfa7a47aa49, type: 3} + NintendoSwitch: {fileID: 21300000, guid: a0dc9fc60d1068c4095ab116e265f9d3, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: a0dc9fc60d1068c4095ab116e265f9d3, + type: 3} diff --git a/UI/Glyphs/Action_Buttons_Background.asset.meta b/UI/Glyphs/Action_Buttons_Background.asset.meta new file mode 100644 index 0000000..fbefbc5 --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Background.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f61575af3474946408f87595370cf4ad +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/Action_Buttons_Bottom.asset b/UI/Glyphs/Action_Buttons_Bottom.asset new file mode 100644 index 0000000..490b776 --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Bottom.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: Action_Buttons_Bottom + m_EditorClassIdentifier: + glyph: 0 + color: 0 + PC: {fileID: 21300000, guid: 254acc7aafd98ab4586b41fb9c0c1bee, type: 3} + Xbox: {fileID: 21300000, guid: 254acc7aafd98ab4586b41fb9c0c1bee, type: 3} + Steamdeck: {fileID: 21300000, guid: 254acc7aafd98ab4586b41fb9c0c1bee, type: 3} + Playstation4: {fileID: 21300000, guid: f5a3a955d59d997468d0bf0cca879ac4, type: 3} + Playstation5: {fileID: 21300000, guid: f5a3a955d59d997468d0bf0cca879ac4, type: 3} + NintendoSwitch: {fileID: 21300000, guid: d0b5481455ef1964e8d84f98de16d57a, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: 873ac33a9c3f53d4abbc853a5ccebc3b, + type: 3} diff --git a/UI/Glyphs/Action_Buttons_Bottom.asset.meta b/UI/Glyphs/Action_Buttons_Bottom.asset.meta new file mode 100644 index 0000000..5442178 --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Bottom.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 28c79f6171a406f4d8672f60f57401e3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/Action_Buttons_Left.asset b/UI/Glyphs/Action_Buttons_Left.asset new file mode 100644 index 0000000..55895d9 --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Left.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: Action_Buttons_Left + m_EditorClassIdentifier: + glyph: 1 + color: 0 + PC: {fileID: 21300000, guid: fddb9d650a68b3b46abb9f7e8316cef3, type: 3} + Xbox: {fileID: 21300000, guid: fddb9d650a68b3b46abb9f7e8316cef3, type: 3} + Steamdeck: {fileID: 21300000, guid: fddb9d650a68b3b46abb9f7e8316cef3, type: 3} + Playstation4: {fileID: 21300000, guid: 0f05610511199ea4fa3ce6a74df5de2e, type: 3} + Playstation5: {fileID: 21300000, guid: 0f05610511199ea4fa3ce6a74df5de2e, type: 3} + NintendoSwitch: {fileID: 21300000, guid: 58caff30b61350044b8ec636a2324515, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: b7949faaeb1287d48b7b4ec3ea79f7b6, + type: 3} diff --git a/UI/Glyphs/Action_Buttons_Left.asset.meta b/UI/Glyphs/Action_Buttons_Left.asset.meta new file mode 100644 index 0000000..299415b --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Left.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7d70f9fe2efe2f6419f680ba2604b7d7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/Action_Buttons_Right.asset b/UI/Glyphs/Action_Buttons_Right.asset new file mode 100644 index 0000000..d8cd5e3 --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Right.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: Action_Buttons_Right + m_EditorClassIdentifier: + glyph: 2 + color: 0 + PC: {fileID: 21300000, guid: 69eccaae2324bbd4a8f81efbcb5d38c1, type: 3} + Xbox: {fileID: 21300000, guid: 69eccaae2324bbd4a8f81efbcb5d38c1, type: 3} + Steamdeck: {fileID: 21300000, guid: 69eccaae2324bbd4a8f81efbcb5d38c1, type: 3} + Playstation4: {fileID: 21300000, guid: 8290702cec9758a418d6fb2506abc976, type: 3} + Playstation5: {fileID: 21300000, guid: 8290702cec9758a418d6fb2506abc976, type: 3} + NintendoSwitch: {fileID: 21300000, guid: c0ffba9b809557d439bd4bba2e349388, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: a79f67da14b06fe46a3ecdd881fa495e, + type: 3} diff --git a/UI/Glyphs/Action_Buttons_Right.asset.meta b/UI/Glyphs/Action_Buttons_Right.asset.meta new file mode 100644 index 0000000..56a51ac --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Right.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9385cd1af17a68a46804c228c01afe2e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/Action_Buttons_Top.asset b/UI/Glyphs/Action_Buttons_Top.asset new file mode 100644 index 0000000..ccfb33f --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Top.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: Action_Buttons_Top + m_EditorClassIdentifier: + glyph: 3 + color: 0 + PC: {fileID: 21300000, guid: b5e6f0530d906a24f9cc4124ecbdee6b, type: 3} + Xbox: {fileID: 21300000, guid: b5e6f0530d906a24f9cc4124ecbdee6b, type: 3} + Steamdeck: {fileID: 21300000, guid: b5e6f0530d906a24f9cc4124ecbdee6b, type: 3} + Playstation4: {fileID: 21300000, guid: b5370bc994cf60d47aaa50d83538d924, type: 3} + Playstation5: {fileID: 21300000, guid: b5370bc994cf60d47aaa50d83538d924, type: 3} + NintendoSwitch: {fileID: 21300000, guid: ba4b580110e82844298278a39c624854, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: ca26cbc95342d9a498be0d7f9a279cb0, + type: 3} diff --git a/UI/Glyphs/Action_Buttons_Top.asset.meta b/UI/Glyphs/Action_Buttons_Top.asset.meta new file mode 100644 index 0000000..0d5d998 --- /dev/null +++ b/UI/Glyphs/Action_Buttons_Top.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c0f94355830c579428077573555b77e2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/LB.asset b/UI/Glyphs/LB.asset new file mode 100644 index 0000000..bf42ae0 --- /dev/null +++ b/UI/Glyphs/LB.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: LB + m_EditorClassIdentifier: + glyph: 5 + color: 0 + PC: {fileID: 21300000, guid: 2c665852e658d7b4aa13b825d7cce91f, type: 3} + Xbox: {fileID: 21300000, guid: 2c665852e658d7b4aa13b825d7cce91f, type: 3} + Steamdeck: {fileID: 21300000, guid: 2c665852e658d7b4aa13b825d7cce91f, type: 3} + Playstation4: {fileID: 21300000, guid: 573ccc0e8874f3c48b53424f58a800b6, type: 3} + Playstation5: {fileID: 21300000, guid: 573ccc0e8874f3c48b53424f58a800b6, type: 3} + NintendoSwitch: {fileID: 21300000, guid: 4b49adeb9824832468f50e5a8b8816e1, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: 04bb1d891f9a5684db3e9d2ed70215ff, + type: 3} diff --git a/UI/Glyphs/LB.asset.meta b/UI/Glyphs/LB.asset.meta new file mode 100644 index 0000000..5e9f08f --- /dev/null +++ b/UI/Glyphs/LB.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3f84a33e80b94774e8161856c3780ae4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/LB_Background.asset b/UI/Glyphs/LB_Background.asset new file mode 100644 index 0000000..84994eb --- /dev/null +++ b/UI/Glyphs/LB_Background.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: LB_Background + m_EditorClassIdentifier: + glyph: 6 + color: 3 + PC: {fileID: 21300000, guid: d0321bfbd06fb2649aefe04056d3e620, type: 3} + Xbox: {fileID: 21300000, guid: d0321bfbd06fb2649aefe04056d3e620, type: 3} + Steamdeck: {fileID: 21300000, guid: d0321bfbd06fb2649aefe04056d3e620, type: 3} + Playstation4: {fileID: 21300000, guid: 2a63c9aa00027b3489362c0210111ade, type: 3} + Playstation5: {fileID: 21300000, guid: 2a63c9aa00027b3489362c0210111ade, type: 3} + NintendoSwitch: {fileID: 21300000, guid: 84aa435578f105d4da5b6fdaf7c35ea4, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: ab01a930971c22d4c8278d44c711c212, + type: 3} diff --git a/UI/Glyphs/LB_Background.asset.meta b/UI/Glyphs/LB_Background.asset.meta new file mode 100644 index 0000000..9a36535 --- /dev/null +++ b/UI/Glyphs/LB_Background.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42498adbd513e4f42b11d744efe971d4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/Menu.asset b/UI/Glyphs/Menu.asset new file mode 100644 index 0000000..ce948c9 --- /dev/null +++ b/UI/Glyphs/Menu.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: Menu + m_EditorClassIdentifier: + glyph: 13 + color: 0 + PC: {fileID: 21300000, guid: ea6c2bed6b5cad84aa3d9e515f40883f, type: 3} + Xbox: {fileID: 21300000, guid: ea6c2bed6b5cad84aa3d9e515f40883f, type: 3} + Steamdeck: {fileID: 21300000, guid: ea6c2bed6b5cad84aa3d9e515f40883f, type: 3} + Playstation4: {fileID: 21300000, guid: 29fadb9eb6d0f7941bad461200aa1cb5, type: 3} + Playstation5: {fileID: 21300000, guid: 29fadb9eb6d0f7941bad461200aa1cb5, type: 3} + NintendoSwitch: {fileID: 21300000, guid: 4e18ed919515e1f4e96bb57f52c67f25, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: 649fd52111778cd468e327c46300e1dd, + type: 3} diff --git a/UI/Glyphs/Menu.asset.meta b/UI/Glyphs/Menu.asset.meta new file mode 100644 index 0000000..b1d6d4e --- /dev/null +++ b/UI/Glyphs/Menu.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 39a46c89e1cfb8d4c91c13db830e3b5c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/Menu_Background.asset b/UI/Glyphs/Menu_Background.asset new file mode 100644 index 0000000..ebc412e --- /dev/null +++ b/UI/Glyphs/Menu_Background.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: Menu_Background + m_EditorClassIdentifier: + glyph: 14 + color: 3 + PC: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + Xbox: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + Steamdeck: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + Playstation4: {fileID: 21300000, guid: 04ac989bccda5f643a7a8cfa7a47aa49, type: 3} + Playstation5: {fileID: 21300000, guid: 04ac989bccda5f643a7a8cfa7a47aa49, type: 3} + NintendoSwitch: {fileID: 21300000, guid: a0dc9fc60d1068c4095ab116e265f9d3, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: a0dc9fc60d1068c4095ab116e265f9d3, + type: 3} diff --git a/UI/Glyphs/Menu_Background.asset.meta b/UI/Glyphs/Menu_Background.asset.meta new file mode 100644 index 0000000..37a9967 --- /dev/null +++ b/UI/Glyphs/Menu_Background.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0420b28badf13c4aacb5ff5743e5fdd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/RB.asset b/UI/Glyphs/RB.asset new file mode 100644 index 0000000..c6f35f3 --- /dev/null +++ b/UI/Glyphs/RB.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: RB + m_EditorClassIdentifier: + glyph: 7 + color: 0 + PC: {fileID: 21300000, guid: ae77b0e026d27cb44b367ea392e2c423, type: 3} + Xbox: {fileID: 21300000, guid: ae77b0e026d27cb44b367ea392e2c423, type: 3} + Steamdeck: {fileID: 21300000, guid: ae77b0e026d27cb44b367ea392e2c423, type: 3} + Playstation4: {fileID: 21300000, guid: 32285ee5d67b7f74a953ad855e31c903, type: 3} + Playstation5: {fileID: 21300000, guid: 32285ee5d67b7f74a953ad855e31c903, type: 3} + NintendoSwitch: {fileID: 21300000, guid: d24a16cc5ac53e6479d5828661ba1868, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: 8ceb81565a3ec824ca5aad1141d24248, + type: 3} diff --git a/UI/Glyphs/RB.asset.meta b/UI/Glyphs/RB.asset.meta new file mode 100644 index 0000000..63e1e08 --- /dev/null +++ b/UI/Glyphs/RB.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df1d1f97fb954fb43b6087dfe4e8301d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/RB_Background.asset b/UI/Glyphs/RB_Background.asset new file mode 100644 index 0000000..00cfe8f --- /dev/null +++ b/UI/Glyphs/RB_Background.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: RB_Background + m_EditorClassIdentifier: + glyph: 8 + color: 3 + PC: {fileID: 21300000, guid: 4a7e410ddf7779b4498501f99817db32, type: 3} + Xbox: {fileID: 21300000, guid: 4a7e410ddf7779b4498501f99817db32, type: 3} + Steamdeck: {fileID: 21300000, guid: 4a7e410ddf7779b4498501f99817db32, type: 3} + Playstation4: {fileID: 21300000, guid: 2a63c9aa00027b3489362c0210111ade, type: 3} + Playstation5: {fileID: 21300000, guid: 2a63c9aa00027b3489362c0210111ade, type: 3} + NintendoSwitch: {fileID: 21300000, guid: bb1949fc7a3625d4a995bd5bc419d616, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: ab01a930971c22d4c8278d44c711c212, + type: 3} diff --git a/UI/Glyphs/RB_Background.asset.meta b/UI/Glyphs/RB_Background.asset.meta new file mode 100644 index 0000000..a56ebef --- /dev/null +++ b/UI/Glyphs/RB_Background.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e57a7dbec9af7454fa759234deaa3042 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/RS.asset b/UI/Glyphs/RS.asset new file mode 100644 index 0000000..bffe7c9 --- /dev/null +++ b/UI/Glyphs/RS.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: RS + m_EditorClassIdentifier: + glyph: 15 + color: 0 + PC: {fileID: 21300000, guid: 1f5c03735f86c174ab7cf07e0de082f4, type: 3} + Xbox: {fileID: 21300000, guid: 1f5c03735f86c174ab7cf07e0de082f4, type: 3} + Steamdeck: {fileID: 21300000, guid: 1f5c03735f86c174ab7cf07e0de082f4, type: 3} + Playstation4: {fileID: 21300000, guid: 5b18d4362e72eb449a837a6382977c1e, type: 3} + Playstation5: {fileID: 21300000, guid: 5b18d4362e72eb449a837a6382977c1e, type: 3} + NintendoSwitch: {fileID: 21300000, guid: d24a16cc5ac53e6479d5828661ba1868, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: 5321d00f6e0e35442a526dd5cc6af230, + type: 3} diff --git a/UI/Glyphs/RS.asset.meta b/UI/Glyphs/RS.asset.meta new file mode 100644 index 0000000..a277e17 --- /dev/null +++ b/UI/Glyphs/RS.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b84b9b55d5fe5d34ab014b1eee895eb1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Glyphs/RS_Background.asset b/UI/Glyphs/RS_Background.asset new file mode 100644 index 0000000..cbcc04e --- /dev/null +++ b/UI/Glyphs/RS_Background.asset @@ -0,0 +1,24 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e14bacfe5e795ab49894c37ba2556411, type: 3} + m_Name: RS_Background + m_EditorClassIdentifier: + glyph: 16 + color: 3 + PC: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + Xbox: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + Steamdeck: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + Playstation4: {fileID: 21300000, guid: 04ac989bccda5f643a7a8cfa7a47aa49, type: 3} + Playstation5: {fileID: 21300000, guid: 04ac989bccda5f643a7a8cfa7a47aa49, type: 3} + NintendoSwitch: {fileID: 21300000, guid: a0dc9fc60d1068c4095ab116e265f9d3, type: 3} + NintendoSwitchSingleJoyCon: {fileID: 21300000, guid: a0dc9fc60d1068c4095ab116e265f9d3, + type: 3} diff --git a/UI/Glyphs/RS_Background.asset.meta b/UI/Glyphs/RS_Background.asset.meta new file mode 100644 index 0000000..7195656 --- /dev/null +++ b/UI/Glyphs/RS_Background.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 34d5a2682375b1b4cb4ed887d7f0c032 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems.meta b/UI/ListItems.meta new file mode 100644 index 0000000..3ab9baa --- /dev/null +++ b/UI/ListItems.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6532756766839bb4c94949b18efcdedb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/CollectionModListItem.cs b/UI/ListItems/CollectionModListItem.cs new file mode 100644 index 0000000..efe630e --- /dev/null +++ b/UI/ListItems/CollectionModListItem.cs @@ -0,0 +1,537 @@ +using System; +using System.Collections.Generic; +using ModIO; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using TMPro; +using ModIO.Util; + +namespace ModIOBrowser.Implementation +{ + ///

+ /// This is used with the CollectionModListItem prefabs to display the user's subscribed mods + /// from the collection view. + /// + internal class CollectionModListItem : ListItem, ISelectHandler, IDeselectHandler + { + CollectionProfile profile; + + [SerializeField] Button listItemButton; + [SerializeField] Image image; + [SerializeField] GameObject imageBackground; + [SerializeField] TMP_Text title; + [SerializeField] GameObject progressBar; + [SerializeField] Image progressBarFill; + [SerializeField] TMP_Text progressBarText; + [SerializeField] TMP_Text progressBarPercentageText; + [SerializeField] TMP_Text subscriptionStatus; + [SerializeField] TMP_Text installStatus; + [SerializeField] TMP_Text fileSize; + [SerializeField] Button unsubscribeButton; + [SerializeField] TMP_Text otherSubscribersText; + [SerializeField] Button moreOptionsButton; + [SerializeField] GameObject failedToLoadLogo; + [SerializeField] GameObject errorInstalling; + [SerializeField] TMP_Text errorInstallingText; + [SerializeField] Transform contextMenuPosition; + [SerializeField] MultiTargetToggle enabledOrDisabledToggle; + ViewportRestraint togglesViewportRestraint; + [SerializeField] GameObject disabledBlackOverlay; + public Action imageLoaded; + RectTransform rectTransform; + +#pragma warning disable 0649 //they are allocated + Translation subscriptionStatusTranslation = null; + Translation installStatusTranslation = null; + Translation progressBarTextTranslation = null; + Translation otherSubscribersTextTranslation = null; + Translation errorInstallingTextTranslation = null; +#pragma warning restore 0649 + + internal static Dictionary listItems = new Dictionary(); + +#region Monobehaviour + void OnEnable() + { + rectTransform = transform as RectTransform; + } + + void OnDestroy() + { + RemoveFromStaticDictionaryCache(); + } + + public void OnSelect(BaseEventData eventData) + { + Collection.Instance.currentSelectedCollectionListItem = this; + } + + public void OnDeselect(BaseEventData eventData) + { + if(Collection.Instance.currentSelectedCollectionListItem == this) + { + Collection.Instance.currentSelectedCollectionListItem = null; + } + } +#endregion + +#region Overrides + public override void PlaceholderSetup() + { + base.PlaceholderSetup(); + failedToLoadLogo.SetActive(false); + imageBackground.gameObject.SetActive(false); + title.text = string.Empty; + //downloads.text = string.Empty; + } + + public override void Select() + { + InputNavigation.Instance.Select(listItemButton); + } + + public override void SetViewportRestraint(RectTransform content, RectTransform viewport) + { + base.SetViewportRestraint(content, viewport); + + // We add a viewport restraint to the toggle as well + if(togglesViewportRestraint == null) + { + togglesViewportRestraint = enabledOrDisabledToggle.gameObject.AddComponent(); + } + togglesViewportRestraint.DefaultViewportContainer = content; + togglesViewportRestraint.Viewport = viewport; + + togglesViewportRestraint.PercentPaddingVertical = 0.35f; + viewportRestraint.PercentPaddingVertical = 0.35f; + } + + public override void Setup(CollectionProfile profile) + { + base.Setup(); + this.profile = profile; + + // Enabled or Disabled Toggle + SetupEnableDisableToggle(); + + // Subscribed or Number of subscribers text + SetupSubscribedStatusText(); + + // Installed / Downloading text + SetupInstallationStatusText(); + + // Set explicit navigation between toggle and the list item button itself + SetupNavigationBetweenToggleAndListItem(); + + // Deactivate button if not subscribed + unsubscribeButton.gameObject.SetActive(profile.subscribed); + + // Always set the progress bar to off by default + progressBar.SetActive(false); + + Hydrate(); + } + +#endregion + void SetupSubscribedStatusText() + { + if(profile.subscribed) + { + Translation.Get(subscriptionStatusTranslation, "Subscribed", subscriptionStatus); + subscriptionStatus.color = scheme.PositiveAccent; + } + else + { + Translation.Get(subscriptionStatusTranslation, "Installed", subscriptionStatus); + subscriptionStatus.color = scheme.Inactive1; + + Translation.Get(otherSubscribersTextTranslation, "{subcount} other users", otherSubscribersText, $"{profile.subscribers}"); + } + otherSubscribersText.transform.parent.gameObject.SetActive(!profile.subscribed); + } + + void SetupEnableDisableToggle() + { + if (profile.subscribed) + { + enabledOrDisabledToggle.onValueChanged.RemoveAllListeners(); + enabledOrDisabledToggle.isOn = profile.enabled; + enabledOrDisabledToggle.interactable = true; + enabledOrDisabledToggle.onValueChanged.AddListener(ToggleModEnabled); + } + else + { + enabledOrDisabledToggle.interactable = false; + } + enabledOrDisabledToggle.DoStateTransition(); + } + + void SetupNavigationBetweenToggleAndListItem() + { + Navigation navigation = listItemButton.navigation; + navigation.selectOnLeft = enabledOrDisabledToggle.interactable ? enabledOrDisabledToggle : null; + listItemButton.navigation = navigation; + + navigation = enabledOrDisabledToggle.navigation; + navigation.selectOnRight = listItemButton; + enabledOrDisabledToggle.navigation = navigation; + } + + void ToggleModEnabled(bool enabled) + { + if(enabled) + { + EnableMod(); + } + else + { + DisabledMod(); + } + + SetDisabledStateOverlay(); + enabledOrDisabledToggle.DoStateTransition(); + } + + /// + /// This should only be used for the very top item in the list to move onto the + /// 'Check for updates' button, for example + /// + /// the button above + public void SetNavigationAbove(Selectable above) + { + Navigation navigation = listItemButton.navigation; + navigation.selectOnUp = above; + listItemButton.navigation = navigation; + + navigation = enabledOrDisabledToggle.navigation; + navigation.selectOnUp = above; + enabledOrDisabledToggle.navigation = navigation; + } + + public void ConnectNavigationToItemBelow(CollectionModListItem below) + { + // Set navigation down to the item beneath this one + Navigation navigation = listItemButton.navigation; + navigation.selectOnDown = below.listItemButton; + listItemButton.navigation = navigation; + + navigation = enabledOrDisabledToggle.navigation; + navigation.selectOnDown = below.enabledOrDisabledToggle.interactable + ? (Selectable)below.enabledOrDisabledToggle : below.listItemButton; + enabledOrDisabledToggle.navigation = navigation; + + // Set navigation up for the item beneath this one + navigation = below.listItemButton.navigation; + navigation.selectOnUp = listItemButton; + below.listItemButton.navigation = navigation; + + navigation = below.enabledOrDisabledToggle.navigation; + navigation.selectOnUp = enabledOrDisabledToggle.interactable + ? (Selectable)enabledOrDisabledToggle : listItemButton; + below.enabledOrDisabledToggle.navigation = navigation; + } + + void EnableMod() + { + if(ModIOUnity.EnableMod(profile.modProfile.id)) + { + profile.enabled = true; + } + } + + void DisabledMod() + { + if(ModIOUnity.DisableMod(profile.modProfile.id)) + { + profile.enabled = false; + } + } + + void SetupInstallationStatusText() + { + // If not subscribed + if(!profile.subscribed) + { + Translation.Get(installStatusTranslation, "Installed", installStatus); + return; + } + + // If subscribed + if(profile.installationStatus == "Problem occurred") + { + installStatus.gameObject.SetActive(false); + errorInstalling.SetActive(true); + + if(Collection.Instance.notEnoughSpaceForTheseMods.Contains(profile.modProfile.id)) + { + Translation.Get(errorInstallingTextTranslation, "Full storage", errorInstallingText); + } + else + { + Translation.Get(errorInstallingTextTranslation, "Error", errorInstallingText); + } + } + else + { + installStatus.gameObject.SetActive(true); + errorInstalling.SetActive(false); + Translation.Get(installStatusTranslation, profile.installationStatus, installStatus); + } + } + + void AddToStaticDictionaryCache() + { + if(listItems.ContainsKey(profile.modProfile.id)) + { + listItems[profile.modProfile.id] = this; + } + else + { + listItems.Add(profile.modProfile.id, this); + } + } + + void Hydrate() + { + AddToStaticDictionaryCache(); + failedToLoadLogo.SetActive(false); + imageBackground.gameObject.SetActive(false); + title.text = profile.modProfile.name; + fileSize.text = Utility.GenerateHumanReadableStringForBytes(profile.modProfile.archiveFileSize); + ModIOUnity.DownloadTexture(profile.modProfile.logoImage_320x180, SetIcon); + gameObject.SetActive(true); + transform.SetAsLastSibling(); + SetDisabledStateOverlay(); + RedrawRectTransform(); + } + + public void OpenModDetailsForThisProfile() + { + if(isPlaceholder) + { + return; + } + Details.Instance.Open(profile.modProfile, Collection.Instance.Open); + } + + void RemoveFromStaticDictionaryCache() + { + if(listItems.ContainsKey(profile.modProfile.id)) + { + listItems.Remove(profile.modProfile.id); + } + } + + void SetIcon(ResultAnd textureAnd) + { + if(textureAnd.result.Succeeded() && textureAnd.value != null) + { + QueueRunner.Instance.AddSpriteCreation(textureAnd.value, sprite => + { + imageBackground.gameObject.SetActive(true); + image.sprite = sprite; + }); + } + else + { + failedToLoadLogo.SetActive(true); + } + imageLoaded?.Invoke(); + } + + /// + /// Turns the black overlay on or off depending on the state + /// + void SetDisabledStateOverlay() => disabledBlackOverlay.SetActive(profile.subscribed && !profile.enabled); + + + public void ShowMoreOptions() + { + List options = new List(); + + //TODO If not subscribed add force uninstall and subscribe options + + // Add Vote up option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Vote up", + action = delegate + { + ModIOUnity.RateMod(profile.modProfile.id, ModRating.Positive, delegate { }); + ModioContextMenu.Instance.Close(); + } + }); + + // Add Vote up option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Vote down", + action = delegate + { + ModIOUnity.RateMod(profile.modProfile.id, ModRating.Negative, delegate { }); + ModioContextMenu.Instance.Close(); + } + }); + + // Add Report option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Report", + action = delegate + { + ModioContextMenu.Instance.Close(); + Reporting.Instance.Open(profile.modProfile, selectable); + } + }); + + if (!profile.subscribed) + { + // Add Uninstall option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Uninstall", + action = delegate + { + ModioContextMenu.Instance.Close(); + ForceUninstall(); + } + }); + } + + // Open context menu + ModioContextMenu.Instance.Open(contextMenuPosition, options, listItemButton); + } + + void ForceUninstall() + { + Result result = ModIOUnity.ForceUninstallMod(profile.modProfile.id); + if(result.Succeeded()) + { + Notifications.Instance.AddNotificationToQueue(new Notifications.QueuedNotice + { + title = "Uninstalled", + description = $"Uninstalled the mod '{profile.modProfile.name}'", + positiveAccent = true + }); + gameObject.SetActive(false); + } + else + { + Notifications.Instance.AddNotificationToQueue(new Notifications.QueuedNotice + { + title = "Failed to uninstall", + description = $"Failed to uninstall the mod '{profile.modProfile.name}'", + positiveAccent = false + }); + } + } + + public void UnsubscribeButton() + { + // TODO add 'subscribe' alternate for installed mods + Collection.Instance.OpenUninstallConfirmation(profile.modProfile); + } + + internal void UpdateStatus(ModManagementEventType updatedStatus) + { + // Always turn this off when state changes. It will auto get turned back on if needed + progressBar.SetActive(false); + errorInstalling.SetActive(false); + installStatus.gameObject.SetActive(true); + + switch(updatedStatus) + { + case ModManagementEventType.InstallStarted: + Translation.Get(installStatusTranslation, "Installing", installStatus); + break; + case ModManagementEventType.Installed: + Translation.Get(installStatusTranslation, "Installed", installStatus); + break; + case ModManagementEventType.InstallFailed: + installStatus.gameObject.SetActive(false); + errorInstalling.SetActive(true); + break; + case ModManagementEventType.DownloadStarted: + Translation.Get(installStatusTranslation, "Downloading", installStatus); + break; + case ModManagementEventType.Downloaded: + Translation.Get(installStatusTranslation, "Ready to install", installStatus); + break; + case ModManagementEventType.DownloadFailed: + installStatus.gameObject.SetActive(false); + errorInstalling.SetActive(true); + break; + case ModManagementEventType.UninstallStarted: + Translation.Get(installStatusTranslation, "Uninstalling", installStatus); + break; + case ModManagementEventType.Uninstalled: + Translation.Get(installStatusTranslation, "Uninstalled", installStatus); + break; + case ModManagementEventType.UninstallFailed: + installStatus.gameObject.SetActive(false); + errorInstalling.SetActive(true); + break; + case ModManagementEventType.UpdateStarted: + Translation.Get(installStatusTranslation, "Updating", installStatus); + break; + case ModManagementEventType.Updated: + Translation.Get(installStatusTranslation, "Updated", installStatus); + break; + case ModManagementEventType.UpdateFailed: + installStatus.gameObject.SetActive(false); + errorInstalling.SetActive(true); + break; + } + } + + internal void UpdateProgressState(ProgressHandle handle) + { + if(handle == null || handle.Completed) + { + progressBar.SetActive(false); + return; + } + + progressBarFill.fillAmount = handle.Progress; + + switch(handle.OperationType) + { + case ModManagementOperationType.None_AlreadyInstalled: + progressBar.SetActive(false); + installStatus.gameObject.SetActive(true); + Translation.Get(installStatusTranslation, "Installed", installStatus); + break; + case ModManagementOperationType.None_ErrorOcurred: + progressBar.SetActive(false); + installStatus.gameObject.SetActive(false); + errorInstalling.SetActive(true); + break; + case ModManagementOperationType.Install: + progressBar.SetActive(true); + installStatus.gameObject.SetActive(false); + + progressBarPercentageText.text = $"{(int)(handle.Progress * 100)}%"; + Translation.Get(progressBarTextTranslation, "Installing...", progressBarText); + break; + case ModManagementOperationType.Download: + progressBar.SetActive(true); + installStatus.gameObject.SetActive(false); + progressBarPercentageText.text = $"{(int)(handle.Progress * 100)}%"; + Translation.Get(progressBarTextTranslation, "Downloading...", progressBarText); + break; + case ModManagementOperationType.Uninstall: + progressBar.SetActive(false); + installStatus.gameObject.SetActive(true); + Translation.Get(progressBarTextTranslation, "Uninstalling", progressBarText); + break; + case ModManagementOperationType.Update: + progressBar.SetActive(true); + installStatus.gameObject.SetActive(false); + progressBarPercentageText.text = $"{(int)(handle.Progress * 100)}%"; + Translation.Get(progressBarTextTranslation, "Updating...", progressBarText); + break; + } + } + } +} diff --git a/UI/ListItems/CollectionModListItem.cs.meta b/UI/ListItems/CollectionModListItem.cs.meta new file mode 100644 index 0000000..c2157ac --- /dev/null +++ b/UI/ListItems/CollectionModListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d000201382bceab4ca2b89a8e3ae59b6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/ContextMenuListItem.cs b/UI/ListItems/ContextMenuListItem.cs new file mode 100644 index 0000000..5b3ae28 --- /dev/null +++ b/UI/ListItems/ContextMenuListItem.cs @@ -0,0 +1,30 @@ +using System; +using TMPro; +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + /// + /// This is used for each button added to the context menu when it is opened. + /// + internal class ContextMenuListItem : ListItem + { + [SerializeField] TMP_Text optionText; + [SerializeField] MultiTargetButton optionButton; + + public override void Select() + { + InputNavigation.Instance.Select(optionButton); + } + + public override void Setup(string title, Action onClick) + { + base.Setup(title); + optionText.text = title; + optionButton.onClick.RemoveAllListeners(); + optionButton.onClick.AddListener(delegate { onClick(); }); + gameObject.SetActive(true); + optionButton.enabled = true; + } + } +} diff --git a/UI/ListItems/ContextMenuListItem.cs.meta b/UI/ListItems/ContextMenuListItem.cs.meta new file mode 100644 index 0000000..8254ee5 --- /dev/null +++ b/UI/ListItems/ContextMenuListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e98b098421750744ab8cb9b0d50f6cfc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/DownloadQueueListItem.cs b/UI/ListItems/DownloadQueueListItem.cs new file mode 100644 index 0000000..6f69ef3 --- /dev/null +++ b/UI/ListItems/DownloadQueueListItem.cs @@ -0,0 +1,91 @@ +using ModIO; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using TMPro; +using ModIO.Util; + +namespace ModIOBrowser.Implementation +{ + /// + /// This is used for the queued mods that haven't yet started downloading, displayed in the list + /// in the download queue panel. + /// + internal class DownloadQueueListItem : ListItem, IDeselectHandler, ISelectHandler + { + [SerializeField] TMP_Text modName; + [SerializeField] TMP_Text fileSize; + [SerializeField] Image modLogo; + [SerializeField] GameObject loadingIcon; + [SerializeField] GameObject failedToLoadIcon; + [SerializeField] GameObject failedToLoadMod; + public ModProfile profile; + + public static DownloadQueueListItem currentDownloadQueueListItem; + + // TODO @Steve this may have to be hooked up for mouse & keyboard support + public void OpenModDetailsForThisProfile() + { + Details.Instance.Open(profile, delegate { DownloadQueue.Instance.OpenDownloadQueuePanel(); }); + } + +#region Overrides + public override void SetViewportRestraint(RectTransform content, RectTransform viewport) + { + base.SetViewportRestraint(content, viewport); + } + + public override void Setup(SubscribedMod mod) + { + base.Setup(); + this.profile = mod.modProfile; + modName.text = mod.modProfile.name; + fileSize.text = Utility.GenerateHumanReadableStringForBytes(mod.modProfile.archiveFileSize); + failedToLoadMod.SetActive(mod.status == SubscribedModStatus.ProblemOccurred); + modLogo.color = Color.clear; + gameObject.SetActive(true); + failedToLoadIcon.SetActive(false); + loadingIcon.SetActive(true); + ModIOUnity.DownloadTexture(mod.modProfile.logoImage_320x180, SetIcon); + + LayoutRebuilder.ForceRebuildLayoutImmediate(modName.transform.parent as RectTransform); + } +#endregion // Overrides + + void SetIcon(ResultAnd textureAnd) + { + if(textureAnd.result.Succeeded() && textureAnd.value != null) + { + QueueRunner.Instance.AddSpriteCreation(textureAnd.value, sprite => + { + modLogo.color = Color.white; + modLogo.sprite = sprite; + }); + } + else + { + failedToLoadIcon.SetActive(true); + } + loadingIcon.SetActive(false); + } + + public void Unsubscribe() + { + Mods.UnsubscribeFromEvent(profile); + DownloadQueue.Instance.RefreshDownloadHistoryPanel(); + } + + public void OnDeselect(BaseEventData eventData) + { + if(currentDownloadQueueListItem == this) + { + currentDownloadQueueListItem = null; + } + } + + public void OnSelect(BaseEventData eventData) + { + currentDownloadQueueListItem = this; + } + } +} diff --git a/UI/ListItems/DownloadQueueListItem.cs.meta b/UI/ListItems/DownloadQueueListItem.cs.meta new file mode 100644 index 0000000..f9c13d7 --- /dev/null +++ b/UI/ListItems/DownloadQueueListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f59b6814c7f0cd43b28a2f34a98cbbf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/FeaturedModListItem.cs b/UI/ListItems/FeaturedModListItem.cs new file mode 100644 index 0000000..be3363b --- /dev/null +++ b/UI/ListItems/FeaturedModListItem.cs @@ -0,0 +1,144 @@ +using System.Collections; +using ModIO; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + /// + /// This is used for the slots that move in the home view carousel for showing featured mods. + /// These are never instantiated but a set amount of them are fixed on the carousel and are + /// hydrated according to the carousel position. + /// + internal class FeaturedModListItem : ListItem + { + [SerializeField] Image image; + [SerializeField] GameObject background; + [SerializeField] GameObject failedToLoad; + public SubscribedProgressTab progressTab; + + public int rowIndex; + public int profileIndex; + + static float transitionTime = 0.5f; + public AnimationCurve animationCurve = new AnimationCurve( + new Keyframe(0, 0, 0, 2f), new Keyframe(1f, 1f)); + + IEnumerator transition; + internal static int transitionCount = 0; + +#region Overrides + public override void PlaceholderSetup() + { + base.PlaceholderSetup(); + image.color = Color.clear; + background.SetActive(false); + failedToLoad.SetActive(false); + } + + public override void Setup(ModProfile profile) + { + base.Setup(); + progressTab.Setup(profile); + image.color = Color.clear; + background.SetActive(false); + failedToLoad.SetActive(false); + ModIOUnity.DownloadTexture(profile.logoImage_640x360, SetIcon); + } +#endregion // Overrides + + // TODO Move the following two methods somewhere more generic like a utilities class + void SetIcon(ResultAnd resultAndTexture) + { + if(resultAndTexture.result.Succeeded() && resultAndTexture != null) + { + QueueRunner.Instance.AddSpriteCreation(resultAndTexture.value, sprite => + { + image.sprite = sprite; + image.color = Color.white; + background.SetActive(true); + }); + } + else + { + failedToLoad.SetActive(true); + } + } + + public void Transition(RectTransform start, RectTransform end) + { + if(transition != null) + { + // stop existing coroutine + StopCoroutine(transition); + + // begin new coroutine but use current position/size as starting point if our + // current position takes us in the same direction (so we dont break pattern and + // potentially transition back across the face of the featured view) + bool isDirectionLeft = start.position.x > end.position.x; + bool isDirectionFromCurrentPositionLeft = transform.position.x > end.position.x; + + if(isDirectionLeft != isDirectionFromCurrentPositionLeft) + { + transition = Transition(start.position, end); + } + else + { + transition = Transition(transform.position, end); + } + StartCoroutine(transition); + } + else + { + // cache for efficiency + Transform t = transform; + Vector2 position = start.position; + + // set starting position and size + t.position = position; + RectTransform rectTransform = (RectTransform)t; + rectTransform.sizeDelta = start.sizeDelta; + + // begin coroutine transition + transition = Transition(position, end); + StartCoroutine(transition); + } + } + + IEnumerator Transition(Vector2 start, RectTransform end) + { + Home.Instance.HideFeaturedHighlight(); + transitionCount++; + RectTransform rectTransform = (RectTransform)transform; + Vector2 startingSize = rectTransform.sizeDelta; + Vector2 distance = (Vector2)end.position - start; + Vector2 growth = end.sizeDelta - startingSize; + float timePassed = 0f; + + while(timePassed <= transitionTime) + { + timePassed += Time.fixedDeltaTime; + + float delta = animationCurve.Evaluate(timePassed / transitionTime); + + Vector3 positionNow = start + distance * delta; + + //preserve the Y position, we are only swiping horizontally + positionNow.y = transform.position.y; + + transform.position = positionNow; + rectTransform.sizeDelta = startingSize + growth * delta; + + yield return new WaitForSecondsRealtime(0.01f); + } + yield return new WaitForSecondsRealtime(0.01f); + + transitionCount--; + if(transitionCount == 0) + { + Home.Instance.ShowFeaturedHighlight(); + } + } + + } +} diff --git a/UI/ListItems/FeaturedModListItem.cs.meta b/UI/ListItems/FeaturedModListItem.cs.meta new file mode 100644 index 0000000..bb8ce24 --- /dev/null +++ b/UI/ListItems/FeaturedModListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a89e843efc4975840844b6f3376f59fc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/GalleryImageButtonListItem.cs b/UI/ListItems/GalleryImageButtonListItem.cs new file mode 100644 index 0000000..df4f586 --- /dev/null +++ b/UI/ListItems/GalleryImageButtonListItem.cs @@ -0,0 +1,48 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + /// + /// This is for the little pips on the bottom of the gallery image slide. Each pip represents a + /// different gallery image you can select and view. + /// + internal class GalleryImageButtonListItem : ListItem + { + [SerializeField] Button button; + private Color _normalColorDefault; + + protected override void Awake() + { + base.Awake(); + this._normalColorDefault = this.button.colors.normalColor; + } + + public override void Setup(Action clicked) + { + base.Setup(); + button.onClick.RemoveAllListeners(); + button.onClick.AddListener(() => clicked()); + gameObject.SetActive(true); + } + + //Uses the selected button colors as the normal color. + //This allows the button to appear to be "Selected" + public override void Select() + { + ColorBlock colorVar = button.colors; + colorVar.normalColor = button.colors.selectedColor; + button.colors = colorVar; + } + + //Returns the normal button colors to it's default + //This removes the "Selected" button appearance + public override void DeSelect() + { + ColorBlock colorVar = button.colors; + colorVar.normalColor = this._normalColorDefault; + button.colors = colorVar; + } + } +} diff --git a/UI/ListItems/GalleryImageButtonListItem.cs.meta b/UI/ListItems/GalleryImageButtonListItem.cs.meta new file mode 100644 index 0000000..0cec538 --- /dev/null +++ b/UI/ListItems/GalleryImageButtonListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 459ab804e2a5892468991873ccf21071 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/HomeModListItem.cs b/UI/ListItems/HomeModListItem.cs new file mode 100644 index 0000000..1cd06eb --- /dev/null +++ b/UI/ListItems/HomeModListItem.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections.Generic; +using ModIO; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using TMPro; + +namespace ModIOBrowser.Implementation +{ + /// + /// This is used for the BrowserModListItem prefab for the home view rows, such as + /// recently added, highest rated, etc + /// + /// + /// This is nearly identical to SearchResultListItem.cs due to the potential of any future + /// design changes if we ever want them to be more distinguished. + /// + internal class HomeModListItem : ListItem, IDeselectHandler, ISelectHandler, IPointerEnterHandler + { + public Image image; + public TMP_Text title; + public GameObject loadingIcon; + public GameObject failedToLoadIcon; + public Action imageLoaded; + public ModProfile profile; + public SubscribedProgressTab progressTab; + + internal static Dictionary listItems = new Dictionary(); + + // TODO This may need to be implemented with mouse & keyboard support + public void OpenModDetailsForThisProfile() + { + if(isPlaceholder) + { + return; + } + Details.Instance.Open(profile, Home.Instance.Open); + } + + void AddToStaticDictionaryCache() + { + if(listItems.ContainsKey(profile.id)) + { + listItems[profile.id] = this; + } + else + { + listItems.Add(profile.id, this); + } + } + + void RemoveFromStaticDictionaryCache() + { + if(listItems.ContainsKey(profile.id)) + { + listItems.Remove(profile.id); + } + } + +#region MonoBehaviour + void OnDestroy() + { + RemoveFromStaticDictionaryCache(); + } + + public void OnSelect(BaseEventData eventData) + { + SelectionOverlayHandler.Instance.MoveSelection(this); + } + + public void OnDeselect(BaseEventData eventData) + { + SelectionOverlayHandler.Instance.Deselect(this); + } + + public void OnPointerEnter(PointerEventData eventData) + { + // When using mouse we want to disable the viewport restraint from moving the screen + InputNavigation.Instance.mouseNavigation = true; + + EventSystem.current.SetSelectedGameObject(null); + InputNavigation.Instance.Select(selectable, true); + } +#endregion // MonoBehaviour + +#region Overrides + + public override void PlaceholderSetup() + { + base.PlaceholderSetup(); + image.color = Color.clear; + loadingIcon.SetActive(true); + failedToLoadIcon.SetActive(false); + title.text = string.Empty; + //downloads.text = string.Empty; + } + + public override void Setup(ModProfile profile) + { + base.Setup(); + this.profile = profile; + image.color = Color.clear; + loadingIcon.SetActive(true); + failedToLoadIcon.SetActive(false); + title.text = profile.name; + //downloads.text = GenerateHumanReadableString(profile.stats.downloadsTotal); + ModIOUnity.DownloadTexture(profile.logoImage_320x180, SetIcon); + gameObject.SetActive(true); + + progressTab.Setup(profile); + + AddToStaticDictionaryCache(); + } + + public override void SetViewportRestraint(RectTransform content, RectTransform viewport) + { + base.SetViewportRestraint(content, viewport); + + viewportRestraint.adjustVertically = false; + viewportRestraint.adjustHorizontally = true; + viewportRestraint.PercentPaddingHorizontal = 0.025f; + } + +#endregion // Overrides + + void SetIcon(ResultAnd resultAndTexture) + { + if(resultAndTexture.result.Succeeded() && resultAndTexture != null) + { + QueueRunner.Instance.AddSpriteCreation(resultAndTexture.value, sprite => + { + image.sprite = sprite; + image.color = Color.white; + loadingIcon.SetActive(false); + }); + } + else + { + failedToLoadIcon.SetActive(true); + loadingIcon.SetActive(false); + } + imageLoaded?.Invoke(); + } + + internal void UpdateProgressBar(ProgressHandle handle) + { + progressTab.UpdateProgress(handle); + } + + internal void UpdateStatus(ModManagementEventType updatedStatus, ModId id) + { + progressTab.UpdateStatus(updatedStatus, id); + } + } +} diff --git a/UI/ListItems/HomeModListItem.cs.meta b/UI/ListItems/HomeModListItem.cs.meta new file mode 100644 index 0000000..fbfa512 --- /dev/null +++ b/UI/ListItems/HomeModListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e76d7608ce556a4489e6614bee09f81d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/ListItem.cs b/UI/ListItems/ListItem.cs new file mode 100644 index 0000000..fe70f07 --- /dev/null +++ b/UI/ListItems/ListItem.cs @@ -0,0 +1,226 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using ModIO; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + /// + /// This class is intended to be inherited by container classes for list item type UI objects + /// such as mod profiles, mod collections, mod search results, tags, etc + /// + internal class ListItem : MonoBehaviour + { + static Dictionary> ListItems = new Dictionary>(); + + static ListItem LastCreatedListItem; + + public ViewportRestraint viewportRestraint; + + public Selectable selectable; + + public bool isPlaceholder; + + public List colorSetters = new List(); + public List buttons = new List(); + public List dropdowns = new List(); + public List toggles = new List(); + + public ColorScheme scheme; + + protected virtual void Awake() + { + LastCreatedListItem = this; + } + + void Reset() + { + GetColorSchemeComponents(); + } + + [ContextMenu("Get Color Setters")] + public void GetColorSchemeComponents() + { + colorSetters = new List(GetComponentsInChildren()); + buttons = new List(GetComponentsInChildren()); + dropdowns = new List(GetComponentsInChildren()); + toggles = new List(GetComponentsInChildren()); + } + + public void SetColorScheme(ColorScheme scheme) + { + this.scheme = scheme; + foreach(var setter in colorSetters) + { + setter.Refresh(scheme); + } + foreach(var button in buttons) + { + button.scheme = scheme; + } + foreach(var dropdown in dropdowns) + { + dropdown.scheme = scheme; + } + foreach(var toggle in toggles) + { + toggle.scheme = scheme; + } + } + + /// + /// Sets the viewport restraint for this item. eg when this list item becomes selected it + /// will automatically check if it is within the screen space, if not it will trigger a + /// transition to bring it into the screen space. + /// + /// the content to scroll/move when needed + /// the viewport to check (uses screen by default) + public virtual void SetViewportRestraint(RectTransform content, RectTransform viewport) + { + if(viewportRestraint == null) + { + viewportRestraint = gameObject.AddComponent(); + } + viewportRestraint.DefaultViewportContainer = content; + viewportRestraint.Viewport = viewport; + } + + public virtual void Select() { } + public virtual void DeSelect() { } + public virtual void PlaceholderSetup() { isPlaceholder = true; } + public virtual void Setup() { isPlaceholder = false; } + public virtual void Setup(string title) { isPlaceholder = false; } + public virtual void Setup(string tagName, string tagCategory) { isPlaceholder = false; } + public virtual void Setup(ModProfile profile) { isPlaceholder = false; } + public virtual void Setup(SubscribedMod mod) { isPlaceholder = false; } + public virtual void Setup(InstalledMod profile) { isPlaceholder = false; } + public virtual void Setup(CollectionProfile profile) { isPlaceholder = false; } + public virtual void Setup(ModProfile profile, bool subscriptionStatus, string progressStatus) { isPlaceholder = false; } + public virtual void Setup(Action onClick) { isPlaceholder = false; } + public virtual void Setup(string title, Action onClick) { isPlaceholder = false; } + + public void RedrawRectTransform() + { + LayoutRebuilder.ForceRebuildLayoutImmediate(transform as RectTransform); + } + + /// + /// Use this to either instantiate a new list item or check for an existing one that isn't + /// already in use that we can recycle. + /// + /// the prefab to instantiate + /// the parent to assign this list item to + /// the color scheme pattern to force onto this list item + /// whether or not to get placeholder items instead + /// the class type of the list item we're using. eg CollectionModListItem.cs + /// + public static ListItem GetListItem(GameObject prefab, Transform parent, ColorScheme scheme, bool getPlaceholders = false) + { + Type type = typeof(T); + + // make sure we have an instance reference for this type of prefab/type + if(!ListItems.ContainsKey(type)) + { + ListItems.Add(type, new List()); + } + + // Try to find an unused list item of this type to recycle + foreach(ListItem li in ListItems[type]) + { + if(li == null) + { + continue; + } + if(!li.gameObject.activeSelf || (li.isPlaceholder && !getPlaceholders)) + { + li.SetColorScheme(scheme); + li.transform.SetParent(parent); + return li; + } + } + + // if no list item was found create a new one + Instantiate(prefab, parent); + ListItems[type].Add(LastCreatedListItem); + + LastCreatedListItem.SetColorScheme(scheme); + return LastCreatedListItem; + } + + /// + /// Use this to hide all of the list items that exist of a specific type. + /// Eg CollectionModListItem + /// + /// whether or not to only remove unused placeholders + /// the type of list item + public static void HideListItems(bool placeholdersOnly = false) + { + Type type = typeof(T); + bool needToCleanupOldReferences = false; + + if(ListItems.ContainsKey(type)) + { + foreach(ListItem li in ListItems[type]) + { + // make sure the list item isnt null + if(li == null) + { + needToCleanupOldReferences = true; + continue; + } + if(placeholdersOnly && !li.isPlaceholder) + { + continue; + } + // deactivate the list item + li.gameObject.SetActive(false); + } + } + + if(needToCleanupOldReferences) + { + CleanupMissingReferencesInListItemGroup(); + } + } + + public static void CleanupMissingReferencesInListItemGroup() + { + List validItems = new List(); + + Type type = typeof(T); + + if(ListItems.ContainsKey(type)) + { + foreach(ListItem li in ListItems[type]) + { + if(li != null) + { + validItems.Add(li); + } + } + + ListItems[type] = validItems; + } + } + + /// + /// Where wrapper for use with the ListItem + /// + /// the type of list item + /// Predicate for selecting objects + /// IEnumerable of type T + public static IEnumerable Where(Func predicate) where T : ListItem + { + Type type = typeof(T); + + if(!ListItems.ContainsKey(type)) + { + ListItems.Add(type, new List()); + } + + return ListItems[type].Where(x => predicate(x as T)).OfType(); + } + } +} diff --git a/UI/ListItems/ListItem.cs.meta b/UI/ListItems/ListItem.cs.meta new file mode 100644 index 0000000..69102ab --- /dev/null +++ b/UI/ListItems/ListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 04e52dfdba5f4bb4d946f6b8ce4a0ee8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/SearchResultListItem.cs b/UI/ListItems/SearchResultListItem.cs new file mode 100644 index 0000000..935e785 --- /dev/null +++ b/UI/ListItems/SearchResultListItem.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; +using ModIO; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using TMPro; + +namespace ModIOBrowser.Implementation +{ + /// + /// This is used for the SearchResultListItem prefab for the home view rows, such as + /// recently added, highest rated, etc + /// + /// + /// This is nearly identical to BrowserModListItem.cs due to the potential of any future + /// design changes if we ever want them to be more distinguished. + /// + internal class SearchResultListItem : ListItem, IDeselectHandler, ISelectHandler, IPointerEnterHandler + { + public Image image; + public TMP_Text title; + public GameObject loadingIcon; + public GameObject failedToLoadIcon; + public Action imageLoaded; + public ModProfile profile; + public SubscribedProgressTab progressTab; + + internal static Dictionary listItems = new Dictionary(); + + // TODO This may need to be implemented with mouse & keyboard support + public void OpenModDetailsForThisProfile() + { + if(isPlaceholder) + { + return; + } + Details.Instance.Open(profile, SearchResults.Instance.OpenWithoutRefreshing); + } + + void AddToStaticDictionaryCache() + { + if(listItems.ContainsKey(profile.id)) + { + listItems[profile.id] = this; + } + else + { + listItems.Add(profile.id, this); + } + } + + void RemoveFromStaticDictionaryCache() + { + if(listItems.ContainsKey(profile.id)) + { + listItems.Remove(profile.id); + } + } + +#region MonoBehaviour + void OnDestroy() + { + RemoveFromStaticDictionaryCache(); + } + + public void OnSelect(BaseEventData eventData) + { + SelectionOverlayHandler.Instance.MoveSelection(this); + } + + public void OnDeselect(BaseEventData eventData) + { + SelectionOverlayHandler.Instance.Deselect(this); + } + + public void OnPointerEnter(PointerEventData eventData) + { + // When using mouse we want to disable the viewport restraint from moving the screen + InputNavigation.Instance.mouseNavigation = true; + + EventSystem.current.SetSelectedGameObject(null); + InputNavigation.Instance.Select(selectable, true); + } +#endregion // MonoBehaviour + +#region Overrides + + public override void PlaceholderSetup() + { + base.PlaceholderSetup(); + image.color = Color.clear; + loadingIcon.SetActive(true); + failedToLoadIcon.SetActive(false); + title.text = string.Empty; + gameObject.SetActive(true); + } + + public override void Setup(ModProfile profile) + { + base.Setup(); + this.profile = profile; + image.color = Color.clear; + loadingIcon.SetActive(true); + failedToLoadIcon.SetActive(false); + title.text = profile.name; + //downloads.text = GenerateHumanReadableString(profile.stats.downloadsTotal); + ModIOUnity.DownloadTexture(profile.logoImage_320x180, SetIcon); + gameObject.SetActive(true); + + progressTab.Setup(profile); + + AddToStaticDictionaryCache(); + } + + public override void SetViewportRestraint(RectTransform content, RectTransform viewport) + { + base.SetViewportRestraint(content, viewport); + + viewportRestraint.PercentPaddingVertical = 0.3f; + } + +#endregion // Overrides + + public void SetAsLastRowItem() + { + viewportRestraint.PercentPaddingVertical = 0.375f; + } + + void SetIcon(ResultAnd textureAnd) + { + if(textureAnd.result.Succeeded() && textureAnd.value != null) + { + QueueRunner.Instance.AddSpriteCreation(textureAnd.value, sprite => + { + image.sprite = sprite; + image.color = Color.white; + loadingIcon.SetActive(false); + }); + } + else + { + failedToLoadIcon.SetActive(true); + loadingIcon.SetActive(false); + } + imageLoaded?.Invoke(); + } + + internal void UpdateProgressBar(ProgressHandle handle) + { + progressTab.UpdateProgress(handle); + } + + internal void UpdateStatus(ModManagementEventType updatedStatus, ModId id) + { + progressTab.UpdateStatus(updatedStatus, id); + } + } +} diff --git a/UI/ListItems/SearchResultListItem.cs.meta b/UI/ListItems/SearchResultListItem.cs.meta new file mode 100644 index 0000000..e189e22 --- /dev/null +++ b/UI/ListItems/SearchResultListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 20f9a16d5e58880448e8a5839594229e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/TagCategoryListItem.cs b/UI/ListItems/TagCategoryListItem.cs new file mode 100644 index 0000000..ea4561f --- /dev/null +++ b/UI/ListItems/TagCategoryListItem.cs @@ -0,0 +1,21 @@ +using UnityEngine; +using TMPro; + +namespace ModIOBrowser.Implementation +{ + /// + /// These are titles placed between the different TagListItems to show their category groupings + /// + internal class TagCategoryListItem : ListItem + { + [SerializeField] TMP_Text title; + + public override void Setup(string tagName) + { + base.Setup(); + title.text = tagName; + transform.SetAsLastSibling(); + gameObject.SetActive(true); + } + } +} diff --git a/UI/ListItems/TagCategoryListItem.cs.meta b/UI/ListItems/TagCategoryListItem.cs.meta new file mode 100644 index 0000000..dbb1557 --- /dev/null +++ b/UI/ListItems/TagCategoryListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0434828020d9ad945b122a6880645c25 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/ListItems/TagListItem.cs b/UI/ListItems/TagListItem.cs new file mode 100644 index 0000000..b573e78 --- /dev/null +++ b/UI/ListItems/TagListItem.cs @@ -0,0 +1,100 @@ +using ModIO; +using UnityEngine; +using UnityEngine.UI; +using TMPro; + +namespace ModIOBrowser.Implementation +{ + /// + /// This is used for the TagListItem that is populated when opening the search panel + /// + internal class TagListItem : ListItem + { + [SerializeField] TMP_Text title; + [SerializeField] Toggle toggle; + TagJumpToSelection jumpToComponent; + public RectTransform rectTransform; + + public string tagName; + public string tagCategory; + + void OnEnable() + { + rectTransform = transform as RectTransform; + } + +#region Overrides + public override void SetViewportRestraint(RectTransform content, RectTransform viewport) + { + base.SetViewportRestraint(content, viewport); + + viewportRestraint.PercentPaddingVertical = 0.15f; + } + + public override void Setup(string tagName, string tagCategory) + { + base.Setup(); + + this.tagName = tagName; + this.tagCategory = tagCategory; + + title.text = tagName; + transform.SetAsLastSibling(); + gameObject.SetActive(true); + + toggle.onValueChanged.RemoveAllListeners(); + + toggle.isOn = IsTagSelected(tagName); + + toggle.onValueChanged.AddListener(Toggled); + + if(jumpToComponent != null) + { + Destroy(jumpToComponent); + } + } + + /// + /// Use this for setting up the JumpTo component on selection + /// + public override void Setup() + { + jumpToComponent = gameObject.AddComponent(); + jumpToComponent.selection = selectable; + jumpToComponent.Setup(); + } +#endregion // Overrides + + public void Toggled(bool isOn) + { + Tag tag = new Tag(tagCategory, tagName); + + if(isOn) + { + if (!SearchPanel.searchFilterTags.Contains(tag)) + { + SearchPanel.searchFilterTags.Add(tag); + } + } + else + { + if (SearchPanel.searchFilterTags.Contains(tag)) + { + SearchPanel.searchFilterTags.Remove(tag); + } + } + } + + bool IsTagSelected(string tagName) + { + foreach(Tag tag in SearchPanel.searchFilterTags) + { + if(tag.name == tagName) + { + return true; + } + } + return false; + } + } +} diff --git a/UI/ListItems/TagListItem.cs.meta b/UI/ListItems/TagListItem.cs.meta new file mode 100644 index 0000000..96ed0e5 --- /dev/null +++ b/UI/ListItems/TagListItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eef8381d41592e94493a1977360ee05c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Overlays.meta b/UI/Overlays.meta new file mode 100644 index 0000000..50b4ee5 --- /dev/null +++ b/UI/Overlays.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9cb3680ae4bf7174fa7237cfe8aa1147 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Overlays/HomeModListItem_Overlay.cs b/UI/Overlays/HomeModListItem_Overlay.cs new file mode 100644 index 0000000..44e055a --- /dev/null +++ b/UI/Overlays/HomeModListItem_Overlay.cs @@ -0,0 +1,171 @@ +using System.Collections.Generic; +using ModIO; +using TMPro; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + internal class HomeModListItem_Overlay : MonoBehaviour, IPointerExitHandler + { + [SerializeField] Animator animator; + [SerializeField] Image image; + [SerializeField] GameObject failedToLoadIcon; + [SerializeField] GameObject loadingIcon; + [SerializeField] TMP_Text title; + [SerializeField] TMP_Text subscribeButtonText; + [SerializeField] Transform contextMenuPosition; + + public HomeModListItem listItemToReplicate; + public HomeModListItem lastListItemToReplicate; + + [SerializeField] SubscribedProgressTab progressTab; + + void LateUpdate() + { + if(gameObject.activeSelf) + { + MimicProgressBar(); + } + } + + // Mimics the look of a BrowserModListItem + public void Setup(HomeModListItem listItem) + { + // If we are already displaying this list item in the overlay, bail + lastListItemToReplicate = listItemToReplicate; + listItemToReplicate = listItem; + + Transform t = transform; + t.SetParent(listItem.transform.parent); + t.SetAsLastSibling(); + t.position = listItem.transform.position; + gameObject.SetActive(true); + failedToLoadIcon.SetActive(listItemToReplicate.failedToLoadIcon.activeSelf); + loadingIcon.SetActive(listItemToReplicate.loadingIcon.activeSelf); + animator.Play("Inflate"); + SetSubscribeButtonText(); + + MimicProgressBar(); + + // Set if the list item is still waiting for the image to download. The action will + // get invoked when the download finishes. + listItemToReplicate.imageLoaded = ReloadImage; + + image.sprite = listItemToReplicate.image.sprite; + title.text = listItemToReplicate.title.text; + } + + void MimicProgressBar() + { + if (listItemToReplicate != null) + { + progressTab?.MimicOtherProgressTab(listItemToReplicate?.progressTab); + } + } + + public void SubscribeButton() + { + if(Collection.Instance.IsSubscribed(listItemToReplicate.profile.id)) + { + // We are pre-emptively changing the text here to make the UI feel more responsive + subscribeButtonText.text = "Subscribe"; + Mods.UnsubscribeFromEvent(listItemToReplicate.profile, UpdateSubscribeButton); + } + else + { + // We are pre-emptively changing the text here to make the UI feel more responsive + subscribeButtonText.text = "Unsubscribe"; + Mods.SubscribeToEvent(listItemToReplicate.profile, UpdateSubscribeButton); + } + + LayoutRebuilder.ForceRebuildLayoutImmediate(subscribeButtonText.transform.parent as RectTransform); + } + + public void OpenModDetailsForThisModProfile() + { + listItemToReplicate?.OpenModDetailsForThisProfile(); + } + + public void ShowMoreOptions() + { + List options = new List(); + + //TODO If not subscribed add force uninstall and subscribe options + + // Add Vote up option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Vote up", + action = delegate + { + ModIOUnity.RateMod(listItemToReplicate.profile.id, ModRating.Positive, delegate { }); + ModioContextMenu.Instance.Close(); + } + }); + + // Add Vote up option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Vote down", + action = delegate + { + ModIOUnity.RateMod(listItemToReplicate.profile.id, ModRating.Negative, delegate { }); + ModioContextMenu.Instance.Close(); + } + }); + + // Add Report option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Report", + action = delegate + { + // TODO open report menu + ModioContextMenu.Instance.Close(); + Reporting.Instance.Open(listItemToReplicate.profile, listItemToReplicate.selectable); + } + }); + + // Open context menu + ModioContextMenu.Instance.Open(contextMenuPosition, options, listItemToReplicate.selectable); + } + + public void UpdateSubscribeButton() + { + SetSubscribeButtonText(); + } + + public void SetSubscribeButtonText() + { + listItemToReplicate?.progressTab?.Setup(listItemToReplicate.profile); + + if(Collection.Instance.IsSubscribed(listItemToReplicate.profile.id)) + { + subscribeButtonText.text = "Unsubscribe"; + } + else + { + subscribeButtonText.text = "Subscribe"; + } + LayoutRebuilder.ForceRebuildLayoutImmediate(subscribeButtonText.transform.parent as RectTransform); + } + + void ReloadImage() + { + image.sprite = listItemToReplicate.image.sprite; + failedToLoadIcon.SetActive(listItemToReplicate.failedToLoadIcon.activeSelf); + loadingIcon.SetActive(listItemToReplicate.loadingIcon.activeSelf); + } + + public void OnPointerExit(PointerEventData eventData) + { + if (!ModioContextMenu.Instance.gameObject.activeSelf) + { + InputNavigation.Instance.DeselectUiGameObject(); + gameObject.SetActive(false); + } + } + } +} diff --git a/UI/Overlays/HomeModListItem_Overlay.cs.meta b/UI/Overlays/HomeModListItem_Overlay.cs.meta new file mode 100644 index 0000000..2535fb9 --- /dev/null +++ b/UI/Overlays/HomeModListItem_Overlay.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 811030f917147504589eb74c563a0d3a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Overlays/SearchResultListItem_Overlay.cs b/UI/Overlays/SearchResultListItem_Overlay.cs new file mode 100644 index 0000000..b81ee66 --- /dev/null +++ b/UI/Overlays/SearchResultListItem_Overlay.cs @@ -0,0 +1,178 @@ +using System.Collections.Generic; +using ModIO; +using UnityEngine; +using UnityEngine.UI; +using TMPro; +using UnityEngine.EventSystems; + +namespace ModIOBrowser.Implementation +{ + internal class SearchResultListItem_Overlay : MonoBehaviour, IPointerExitHandler + { + [SerializeField] Animator animator; + [SerializeField] Image image; + [SerializeField] GameObject failedToLoadIcon; + [SerializeField] GameObject loadingIcon; + [SerializeField] TMP_Text title; + [SerializeField] TMP_Text subscribeButtonText; + [SerializeField] Transform contextMenuPosition; + + public SearchResultListItem listItemToReplicate; + public SearchResultListItem lastListItemToReplicate; + +#pragma warning disable 0649 //it is allocated + private Translation subscribeButtonTextTranslation; +#pragma warning restore 0649 + + [SerializeField] SubscribedProgressTab progressTab; + + void LateUpdate() + { + if(gameObject.activeSelf) + { + MimicProgressBar(); + } + } + + // Mimics the look of a SearchResultListItem + public void Setup(SearchResultListItem listItem) + { + // If we are already displaying this list item in the overlay, bail + // if(listItem == listItemToReplicate && gameObject.activeSelf) + // { + // return; + // } + lastListItemToReplicate = listItemToReplicate; + listItemToReplicate = listItem; + + Transform t = transform; + t.SetParent(listItem.transform.parent); + t.SetAsLastSibling(); + t.position = listItem.transform.position; + gameObject.SetActive(true); + failedToLoadIcon.SetActive(listItemToReplicate.failedToLoadIcon.activeSelf); + loadingIcon.SetActive(listItemToReplicate.loadingIcon.activeSelf); + animator.Play("Inflate"); + SetSubscribeButtonText(); + + MimicProgressBar(); + + // Set if the list item is still waiting for the image to download. The action will + // get invoked when the download finishes. + listItemToReplicate.imageLoaded = ReloadImage; + + image.sprite = listItemToReplicate.image.sprite; + title.text = listItemToReplicate.title.text; + } + + void MimicProgressBar() + { + if (listItemToReplicate != null) + { + progressTab?.MimicOtherProgressTab(listItemToReplicate?.progressTab); + } + } + + public void SubscribeButton() + { + if(Collection.Instance.IsSubscribed(listItemToReplicate.profile.id)) + { + // We are pre-emptively changing the text here to make the UI feel more responsive + Translation.Get(subscribeButtonTextTranslation, "Subscribe", subscribeButtonText); + Mods.UnsubscribeFromEvent(listItemToReplicate.profile, UpdateSubscribeButton); + } + else + { + // We are pre-emptively changing the text here to make the UI feel more responsive + Translation.Get(subscribeButtonTextTranslation, "Unsubscribe", subscribeButtonText); + Mods.SubscribeToEvent(listItemToReplicate.profile, UpdateSubscribeButton); + } + + LayoutRebuilder.ForceRebuildLayoutImmediate(subscribeButtonText.transform.parent as RectTransform); + } + + public void OpenModDetailsForThisModProfile() + { + listItemToReplicate?.OpenModDetailsForThisProfile(); + } + + public void ShowMoreOptions() + { + List options = new List(); + + //TODO If not subscribed add force uninstall and subscribe options + + // Add Vote up option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Vote up", + action = delegate + { + ModIOUnity.RateMod(listItemToReplicate.profile.id, ModRating.Positive, delegate { }); + ModioContextMenu.Instance.Close(); + } + }); + + // Add Vote up option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Vote down", + action = delegate + { + ModIOUnity.RateMod(listItemToReplicate.profile.id, ModRating.Negative, delegate { }); + ModioContextMenu.Instance.Close(); + } + }); + + // Add Report option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Report", + action = delegate + { + // TODO open report menu + ModioContextMenu.Instance.Close(); + Reporting.Instance.Open(listItemToReplicate.profile, listItemToReplicate.selectable); + } + }); + + // Open context menu + ModioContextMenu.Instance.Open(contextMenuPosition, options, listItemToReplicate.selectable); + } + + public void UpdateSubscribeButton() + { + SetSubscribeButtonText(); + } + + public void SetSubscribeButtonText() + { + listItemToReplicate?.progressTab?.Setup(listItemToReplicate.profile); + + if(Collection.Instance.IsSubscribed(listItemToReplicate.profile.id)) + { + Translation.Get(subscribeButtonTextTranslation, "Unsubscribe", subscribeButtonText); + } + else + { + Translation.Get(subscribeButtonTextTranslation, "Subscribe", subscribeButtonText); + } + } + + void ReloadImage() + { + image.sprite = listItemToReplicate.image.sprite; + failedToLoadIcon.SetActive(listItemToReplicate.failedToLoadIcon.activeSelf); + loadingIcon.SetActive(listItemToReplicate.loadingIcon.activeSelf); + } + + public void OnPointerExit(PointerEventData eventData) + { + if (!ModioContextMenu.Instance.ContextMenu.activeSelf) + { + InputNavigation.Instance.DeselectUiGameObject(); + gameObject.SetActive(false); + } + } + } +} diff --git a/UI/Overlays/SearchResultListItem_Overlay.cs.meta b/UI/Overlays/SearchResultListItem_Overlay.cs.meta new file mode 100644 index 0000000..2ee856f --- /dev/null +++ b/UI/Overlays/SearchResultListItem_Overlay.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b55ab1eaffd41c24da914363d6dc169b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Overlays/SelectionOverlayHandler.cs b/UI/Overlays/SelectionOverlayHandler.cs new file mode 100644 index 0000000..7755f4a --- /dev/null +++ b/UI/Overlays/SelectionOverlayHandler.cs @@ -0,0 +1,100 @@ +using ModIO; +using ModIO.Util; +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + internal class SelectionOverlayHandler : SelfInstancingMonoSingleton + { + [Header("Selection Overlay Objects")] + [SerializeField] HomeModListItem_Overlay homeModListItemOverlay; + public SearchResultListItem_Overlay SearchResultListItemOverlay; + [SerializeField] GameObject CollectionListItemOverlay; + [SerializeField] GameObject SearchModListItemOverlay; + + public void SetBrowserModListItemOverlayActive(bool state) + { + homeModListItemOverlay?.gameObject.SetActive(state); + } + + public static bool TryToOpenMoreOptionsForBrowserOverlayObject() + { + if(Instance.homeModListItemOverlay.gameObject.activeSelf) + { + Instance.homeModListItemOverlay.ShowMoreOptions(); + return true; + } + return false; + } + + public static bool TryToOpenMoreOptionsForSearchResultsOverlayObject() + { + if(Instance.SearchResultListItemOverlay.gameObject.activeSelf) + { + Instance.SearchResultListItemOverlay.ShowMoreOptions(); + return true; + } + return false; + } + + public static bool TryAlternateForBrowserOverlayObject() + { + if(Instance.homeModListItemOverlay.gameObject.activeSelf) + { + Instance.homeModListItemOverlay.SubscribeButton(); + return true; + } + return false; + } + + public static bool TryAlternateForSearchResultsOverlayObject() + { + if(Instance.SearchResultListItemOverlay.gameObject.activeSelf) + { + Instance.SearchResultListItemOverlay.SubscribeButton(); + return true; + } + return false; + } + + public void MoveSelection(HomeModListItem listItem) + { + homeModListItemOverlay.Setup(listItem); + } + + public void MoveSelection(SearchResultListItem listItem) + { + SearchResultListItemOverlay.Setup(listItem); + } + + public void Deselect(HomeModListItem listItem) + { + // If the context menu is open, dont hide the overlay + if(ModioContextMenu.Instance.ContextMenu.activeSelf) + { + return; + } + if(homeModListItemOverlay != null + && homeModListItemOverlay.listItemToReplicate == listItem + && !InputNavigation.Instance.mouseNavigation) + { + homeModListItemOverlay?.gameObject.SetActive(false); + } + } + + public void Deselect(SearchResultListItem listItem) + { + // If the context menu is open, dont hide the overlay + if(ModioContextMenu.Instance.ContextMenu.activeSelf) + { + return; + } + if(SearchResultListItemOverlay != null + && SearchResultListItemOverlay.listItemToReplicate == listItem + && !InputNavigation.Instance.mouseNavigation) + { + SearchResultListItemOverlay?.gameObject.SetActive(false); + } + } + } +} diff --git a/UI/Overlays/SelectionOverlayHandler.cs.meta b/UI/Overlays/SelectionOverlayHandler.cs.meta new file mode 100644 index 0000000..8f4df58 --- /dev/null +++ b/UI/Overlays/SelectionOverlayHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: af298186a46e11d4fa4636adad7e3e50 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs.meta b/UI/Prefabs.meta new file mode 100644 index 0000000..726571e --- /dev/null +++ b/UI/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa73837be65acd94b8e3b134df19a5a3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/5DigitInputPopup.meta b/UI/Prefabs/5DigitInputPopup.meta new file mode 100644 index 0000000..2d5667c --- /dev/null +++ b/UI/Prefabs/5DigitInputPopup.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 558e43424002e7444a540e213a25b8b0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/5DigitInputPopup/5DigitInput.prefab b/UI/Prefabs/5DigitInputPopup/5DigitInput.prefab new file mode 100644 index 0000000..4b6379e --- /dev/null +++ b/UI/Prefabs/5DigitInputPopup/5DigitInput.prefab @@ -0,0 +1,4136 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &627632687735911377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9090545677793969305} + - component: {fileID: 8442142036778439867} + - component: {fileID: 278573619633673813} + - component: {fileID: 1985316966655978245} + - component: {fileID: 6498642400746051643} + m_Layer: 5 + m_Name: Selector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9090545677793969305 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627632687735911377} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5917930449917551335} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &8442142036778439867 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627632687735911377} + m_CullTransparentMesh: 0 +--- !u!114 &278573619633673813 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627632687735911377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1985316966655978245 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627632687735911377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &6498642400746051643 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627632687735911377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 278573619633673813} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5662042383669831732} + m_MethodName: SetIndex + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &831549790418477464 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9148328146326990138} + - component: {fileID: 8342321309524128649} + - component: {fileID: 5000166340076053408} + - component: {fileID: 758933274344339497} + - component: {fileID: 1588534651168608881} + m_Layer: 5 + m_Name: Indicator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9148328146326990138 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831549790418477464} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2896239444923967562} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 244, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &8342321309524128649 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831549790418477464} + m_CullTransparentMesh: 0 +--- !u!114 &5000166340076053408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831549790418477464} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &758933274344339497 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831549790418477464} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &1588534651168608881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 831549790418477464} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 5000166340076053408} +--- !u!1 &1225727189482073148 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3688117929444910183} + - component: {fileID: 7392045224098151701} + - component: {fileID: 3785534930060612124} + - component: {fileID: 2254873367978732296} + m_Layer: 5 + m_Name: Text 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3688117929444910183 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1225727189482073148} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3099736032417585718} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 33} + m_SizeDelta: {x: -20, y: 46} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7392045224098151701 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1225727189482073148} + m_CullTransparentMesh: 0 +--- !u!114 &3785534930060612124 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1225727189482073148} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "F\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2254873367978732296 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1225727189482073148} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &1543643189682902377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2111301693333669497} + - component: {fileID: 4735079645755510747} + - component: {fileID: 6307962634401796190} + - component: {fileID: 4413185480902350587} + m_Layer: 5 + m_Name: Text 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2111301693333669497 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543643189682902377} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3099736033115831656} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 33} + m_SizeDelta: {x: -20, y: 46} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4735079645755510747 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543643189682902377} + m_CullTransparentMesh: 0 +--- !u!114 &6307962634401796190 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543643189682902377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "4\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4413185480902350587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1543643189682902377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &1548104915515365530 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1354101322871407396} + - component: {fileID: 6475017542498119951} + m_Layer: 5 + m_Name: KeyInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1354101322871407396 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548104915515365530} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3099736033961590444} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6475017542498119951 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1548104915515365530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2f4fa286f8f64f14a9025c7d4b595986, type: 3} + m_Name: + m_EditorClassIdentifier: + copyPasteMode: 0 + debug: 0 + currentInputString: + index: 0 +--- !u!1 &1670643912612237620 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6325017470372198376} + - component: {fileID: 5971800376538661332} + - component: {fileID: 1281414733949405647} + - component: {fileID: 1834607797701434313} + - component: {fileID: 3945953253946720117} + m_Layer: 5 + m_Name: Selector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6325017470372198376 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1670643912612237620} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5917930449917551335} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 188, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5971800376538661332 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1670643912612237620} + m_CullTransparentMesh: 0 +--- !u!114 &1281414733949405647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1670643912612237620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1834607797701434313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1670643912612237620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &3945953253946720117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1670643912612237620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1281414733949405647} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5662042383669831732} + m_MethodName: SetIndex + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 3 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &2937754612474662483 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3919035193316366466} + - component: {fileID: 1128017806032368198} + - component: {fileID: 8880785819314917387} + - component: {fileID: 4986108006284702194} + - component: {fileID: 4759721665712038363} + m_Layer: 5 + m_Name: Indicator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3919035193316366466 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2937754612474662483} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2896239444923967562} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 76, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &1128017806032368198 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2937754612474662483} + m_CullTransparentMesh: 0 +--- !u!114 &8880785819314917387 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2937754612474662483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4986108006284702194 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2937754612474662483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &4759721665712038363 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2937754612474662483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 8880785819314917387} +--- !u!1 &3099736032345854818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736032345854819} + m_Layer: 5 + m_Name: Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736032345854819 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032345854818} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2896239444923967562} + - {fileID: 3099736033359999762} + - {fileID: 5917930449917551335} + m_Father: {fileID: 3099736033603993175} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 264, y: 64} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &3099736032417585717 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736032417585718} + - component: {fileID: 3099736032417585673} + - component: {fileID: 3099736032417585672} + - component: {fileID: 3099736032417585719} + - component: {fileID: 866081514178241485} + - component: {fileID: 1066838673867394293} + m_Layer: 5 + m_Name: pinline (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736032417585718 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032417585717} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3688117929444910183} + m_Father: {fileID: 3099736033359999762} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 132, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3099736032417585673 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032417585717} + m_CullTransparentMesh: 0 +--- !u!114 &3099736032417585672 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032417585717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3099736032417585719 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032417585717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &866081514178241485 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032417585717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 3099736032417585672} +--- !u!114 &1066838673867394293 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032417585717} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 0 + colorScheme: {fileID: 0} + image: {fileID: 3099736032417585672} +--- !u!1 &3099736032734938398 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736032734938399} + - component: {fileID: 3099736032734938386} + - component: {fileID: 3099736032734938385} + - component: {fileID: 3099736032734938384} + - component: {fileID: 8296604214472948407} + - component: {fileID: 7574160661970536612} + m_Layer: 5 + m_Name: pinline (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736032734938399 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032734938398} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4015784602579916549} + m_Father: {fileID: 3099736033359999762} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 188, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3099736032734938386 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032734938398} + m_CullTransparentMesh: 0 +--- !u!114 &3099736032734938385 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032734938398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3099736032734938384 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032734938398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &8296604214472948407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032734938398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 3099736032734938385} +--- !u!114 &7574160661970536612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032734938398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 0 + colorScheme: {fileID: 0} + image: {fileID: 3099736032734938385} +--- !u!1 &3099736032738202513 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736032738202514} + - component: {fileID: 3099736032738202516} + - component: {fileID: 3099736032738202515} + m_Layer: 5 + m_Name: Title and Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736032738202514 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032738202513} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3099736033898908252} + m_Father: {fileID: 5619593777148905370} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 440, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3099736032738202516 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032738202513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &3099736032738202515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736032738202513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &3099736033115831575 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736033115831656} + - component: {fileID: 3099736033115831659} + - component: {fileID: 3099736033115831658} + - component: {fileID: 3099736033115831657} + - component: {fileID: 7295326959538943759} + - component: {fileID: 6761336721249906662} + m_Layer: 5 + m_Name: pinline (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736033115831656 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033115831575} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2111301693333669497} + m_Father: {fileID: 3099736033359999762} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 76, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3099736033115831659 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033115831575} + m_CullTransparentMesh: 0 +--- !u!114 &3099736033115831658 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033115831575} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3099736033115831657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033115831575} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &7295326959538943759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033115831575} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 3099736033115831658} +--- !u!114 &6761336721249906662 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033115831575} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 0 + colorScheme: {fileID: 0} + image: {fileID: 3099736033115831658} +--- !u!1 &3099736033359999761 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736033359999762} + m_Layer: 5 + m_Name: Pinlines + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736033359999762 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033359999761} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5619593777151849184} + - {fileID: 3099736033115831656} + - {fileID: 3099736032417585718} + - {fileID: 3099736032734938399} + - {fileID: 3099736033737138714} + m_Father: {fileID: 3099736032345854819} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &3099736033603993174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736033603993175} + - component: {fileID: 3099736033603993512} + m_Layer: 5 + m_Name: Code field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736033603993175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033603993174} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3099736032345854819} + m_Father: {fileID: 5619593777148905370} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 720, y: 64} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3099736033603993512 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033603993174} + m_CullTransparentMesh: 0 +--- !u!1 &3099736033737138713 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736033737138714} + - component: {fileID: 3099736033737138717} + - component: {fileID: 3099736033737138716} + - component: {fileID: 3099736033737138715} + - component: {fileID: 5620534245959801368} + - component: {fileID: 8047000562401164548} + m_Layer: 5 + m_Name: pinline (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736033737138714 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033737138713} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8005305063990137365} + m_Father: {fileID: 3099736033359999762} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 244, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3099736033737138717 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033737138713} + m_CullTransparentMesh: 0 +--- !u!114 &3099736033737138716 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033737138713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3099736033737138715 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033737138713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &5620534245959801368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033737138713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 3099736033737138716} +--- !u!114 &8047000562401164548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033737138713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 0 + colorScheme: {fileID: 0} + image: {fileID: 3099736033737138716} +--- !u!1 &3099736033898908251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736033898908252} + - component: {fileID: 3099736033898908255} + - component: {fileID: 3099736033898908254} + - component: {fileID: 3099736033898908253} + - component: {fileID: 1656826842671671492} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736033898908252 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033898908251} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3099736032738202514} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 720, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3099736033898908255 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033898908251} + m_CullTransparentMesh: 0 +--- !u!114 &3099736033898908254 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033898908251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Email authentication + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3099736033898908253 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033898908251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &1656826842671671492 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033898908251} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Email authentication + text: {fileID: 3099736033898908254} +--- !u!1 &3099736033961590443 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3099736033961590444} + - component: {fileID: 5662042383669831732} + m_Layer: 5 + m_Name: 5DigitInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3099736033961590444 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033961590443} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1354101322871407396} + - {fileID: 5619593777788896740} + - {fileID: 5619593777148905370} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5662042383669831732 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3099736033961590443} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3261082e64b114043b4bc3643e221a44, type: 3} + m_Name: + m_EditorClassIdentifier: + keyInput5Digits: {fileID: 6475017542498119951} + texts: + - {fileID: 5096917389148464133} + - {fileID: 6307962634401796190} + - {fileID: 3785534930060612124} + - {fileID: 7423660305695488557} + - {fileID: 3475224695299314266} + indicators: + - {fileID: 7986173399682940461} + - {fileID: 2937754612474662483} + - {fileID: 7096349534278033345} + - {fileID: 8275710328620099221} + - {fileID: 831549790418477464} + instructionText: {fileID: 5619593777038678712} +--- !u!114 &5314293736139713970 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3534971313961570194} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Back + text: {fileID: 4270668820921917304} +--- !u!1 &3710923771882365936 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2896239444923967562} + m_Layer: 5 + m_Name: Indicators + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2896239444923967562 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3710923771882365936} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6827652652245744323} + - {fileID: 3919035193316366466} + - {fileID: 9004587586997865982} + - {fileID: 4909610747013652687} + - {fileID: 9148328146326990138} + m_Father: {fileID: 3099736032345854819} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &4510897143070955791 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 195387101089901409} + - component: {fileID: 8297969916673947943} + - component: {fileID: 793622887796036333} + - component: {fileID: 8779681129990921252} + - component: {fileID: 379965216076031654} + m_Layer: 5 + m_Name: Selector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &195387101089901409 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4510897143070955791} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5917930449917551335} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 132, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &8297969916673947943 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4510897143070955791} + m_CullTransparentMesh: 0 +--- !u!114 &793622887796036333 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4510897143070955791} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8779681129990921252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4510897143070955791} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &379965216076031654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4510897143070955791} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 793622887796036333} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5662042383669831732} + m_MethodName: SetIndex + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 2 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &4869774283233285989 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8005305063990137365} + - component: {fileID: 6159787861693291353} + - component: {fileID: 3475224695299314266} + - component: {fileID: 3402847887286827442} + m_Layer: 5 + m_Name: Text 5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8005305063990137365 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4869774283233285989} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3099736033737138714} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 33} + m_SizeDelta: {x: -20, y: 46} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6159787861693291353 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4869774283233285989} + m_CullTransparentMesh: 0 +--- !u!114 &3475224695299314266 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4869774283233285989} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "2\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3402847887286827442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4869774283233285989} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5096071571548373141 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4379102793849783280} + - component: {fileID: 2269754840171212370} + - component: {fileID: 5648169853191178097} + - component: {fileID: 272800840815968958} + - component: {fileID: 529572615199230121} + m_Layer: 5 + m_Name: Selector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4379102793849783280 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5096071571548373141} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5917930449917551335} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 244, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &2269754840171212370 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5096071571548373141} + m_CullTransparentMesh: 0 +--- !u!114 &5648169853191178097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5096071571548373141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &272800840815968958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5096071571548373141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &529572615199230121 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5096071571548373141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5648169853191178097} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5662042383669831732} + m_MethodName: SetIndex + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 4 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &5619593777038678716 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5619593777038678719} + - component: {fileID: 5619593777038678715} + - component: {fileID: 5619593777038678712} + - component: {fileID: 5619593777038678713} + - component: {fileID: 5619593777038678718} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5619593777038678719 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777038678716} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5619593777148905370} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 440, y: 0} + m_SizeDelta: {x: 720, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5619593777038678715 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777038678716} + m_CullTransparentMesh: 0 +--- !u!114 &5619593777038678712 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777038678716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Please check your email mattias@mod.io for your 5 digit code to verify + it below. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5619593777038678713 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777038678716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5619593777038678718 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777038678716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &5619593777148905371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5619593777148905370} + - component: {fileID: 5619593777148905364} + - component: {fileID: 5619593777148905365} + - component: {fileID: 5619593777148905367} + - component: {fileID: 5619593777148905361} + - component: {fileID: 5619593777148905366} + m_Layer: 5 + m_Name: Main Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5619593777148905370 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777148905371} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3099736032738202514} + - {fileID: 5619593777038678719} + - {fileID: 3099736033603993175} + - {fileID: 5619593778049157054} + m_Father: {fileID: 3099736033961590444} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 880, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5619593777148905364 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777148905371} + m_CullTransparentMesh: 0 +--- !u!114 &5619593777148905365 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777148905371} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f12eeb8dd0927a249aeec61fdfc3eba7, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5619593777148905367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777148905371} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &5619593777148905361 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777148905371} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &5619593777148905366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777148905371} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 40 + m_Bottom: 40 + m_ChildAlignment: 1 + m_Spacing: 40 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &5619593777151849185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5619593777151849184} + - component: {fileID: 5619593777151848989} + - component: {fileID: 5619593777151849186} + - component: {fileID: 5619593777151849187} + - component: {fileID: 5664598888811019548} + - component: {fileID: 6224977565475133069} + m_Layer: 5 + m_Name: pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5619593777151849184 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777151849185} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3110847917427974981} + m_Father: {fileID: 3099736033359999762} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5619593777151848989 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777151849185} + m_CullTransparentMesh: 0 +--- !u!114 &5619593777151849186 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777151849185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5619593777151849187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777151849185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &5664598888811019548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777151849185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 5619593777151849186} +--- !u!114 &6224977565475133069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777151849185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 0 + colorScheme: {fileID: 0} + image: {fileID: 5619593777151849186} +--- !u!1 &5619593777788896741 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5619593777788896740} + - component: {fileID: 5619593777788896742} + - component: {fileID: 5619593777788896743} + - component: {fileID: 5619593777788896737} + - component: {fileID: 5619593777788896736} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5619593777788896740 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777788896741} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3099736033961590444} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5619593777788896742 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777788896741} + m_CullTransparentMesh: 0 +--- !u!114 &5619593777788896743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777788896741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.78431374} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5619593777788896737 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777788896741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5619593777788896736 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593777788896741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5619593777788896743} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: Close + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &5619593778049157055 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5619593778049157054} + - component: {fileID: 5619593778049157049} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5619593778049157054 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593778049157055} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5617591734082306831} + - {fileID: 3102142662625400020} + m_Father: {fileID: 5619593777148905370} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 800, y: 48} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &5619593778049157049 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5619593778049157055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 24 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &5331078157888015837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6338264613844064329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Submit + text: {fileID: 6754485822241212579} +--- !u!1 &7096349534278033345 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9004587586997865982} + - component: {fileID: 1100961246137788629} + - component: {fileID: 6519427988737857082} + - component: {fileID: 7725300094391426866} + - component: {fileID: 4252682109629609902} + m_Layer: 5 + m_Name: Indicator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9004587586997865982 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7096349534278033345} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2896239444923967562} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 132, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &1100961246137788629 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7096349534278033345} + m_CullTransparentMesh: 0 +--- !u!114 &6519427988737857082 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7096349534278033345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7725300094391426866 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7096349534278033345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &4252682109629609902 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7096349534278033345} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 6519427988737857082} +--- !u!1 &7351517962169933403 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5917930449917551335} + m_Layer: 5 + m_Name: Index Selectors + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5917930449917551335 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7351517962169933403} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 9090545677793969305} + - {fileID: 4971720458222326414} + - {fileID: 195387101089901409} + - {fileID: 6325017470372198376} + - {fileID: 4379102793849783280} + m_Father: {fileID: 3099736032345854819} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &7852294639177630639 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4015784602579916549} + - component: {fileID: 6967930879157639669} + - component: {fileID: 7423660305695488557} + - component: {fileID: 5111347490206608239} + m_Layer: 5 + m_Name: Text 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4015784602579916549 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7852294639177630639} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3099736032734938399} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 33} + m_SizeDelta: {x: -20, y: 46} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6967930879157639669 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7852294639177630639} + m_CullTransparentMesh: 0 +--- !u!114 &7423660305695488557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7852294639177630639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "N\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5111347490206608239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7852294639177630639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7986173399682940461 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6827652652245744323} + - component: {fileID: 6949544927891002239} + - component: {fileID: 8222218725975676604} + - component: {fileID: 6212219200689625505} + - component: {fileID: 875859594369234656} + m_Layer: 5 + m_Name: Indicator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6827652652245744323 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7986173399682940461} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2896239444923967562} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &6949544927891002239 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7986173399682940461} + m_CullTransparentMesh: 0 +--- !u!114 &8222218725975676604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7986173399682940461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6212219200689625505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7986173399682940461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &875859594369234656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7986173399682940461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 8222218725975676604} +--- !u!1 &8275710328620099221 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4909610747013652687} + - component: {fileID: 7640300630978434346} + - component: {fileID: 5322097839700952101} + - component: {fileID: 5695914396423368697} + - component: {fileID: 8857516262346899299} + m_Layer: 5 + m_Name: Indicator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4909610747013652687 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8275710328620099221} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2896239444923967562} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 188, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &7640300630978434346 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8275710328620099221} + m_CullTransparentMesh: 0 +--- !u!114 &5322097839700952101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8275710328620099221} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5695914396423368697 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8275710328620099221} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &8857516262346899299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8275710328620099221} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 5322097839700952101} +--- !u!1 &8909339951233156297 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4971720458222326414} + - component: {fileID: 231050430540813063} + - component: {fileID: 5268754813597789465} + - component: {fileID: 2659423831254571603} + - component: {fileID: 6558327589080627885} + m_Layer: 5 + m_Name: Selector + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4971720458222326414 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8909339951233156297} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5917930449917551335} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 76, y: -1} + m_SizeDelta: {x: 40, y: 61.59} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &231050430540813063 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8909339951233156297} + m_CullTransparentMesh: 0 +--- !u!114 &5268754813597789465 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8909339951233156297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.011764706} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2659423831254571603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8909339951233156297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &6558327589080627885 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8909339951233156297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5268754813597789465} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5662042383669831732} + m_MethodName: SetIndex + m_Mode: 3 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 1 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &9010733210076444639 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3110847917427974981} + - component: {fileID: 8497136565229265090} + - component: {fileID: 5096917389148464133} + - component: {fileID: 8633679214229630088} + m_Layer: 5 + m_Name: Text 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3110847917427974981 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9010733210076444639} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5619593777151849184} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 33} + m_SizeDelta: {x: -20, y: 46} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8497136565229265090 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9010733210076444639} + m_CullTransparentMesh: 0 +--- !u!114 &5096917389148464133 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9010733210076444639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "O\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8633679214229630088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9010733210076444639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1001 &3099736033340544130 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5619593778049157054} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Submit (Code) + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5662042383669831732} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: FinishButton + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Submit + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &6338264613844064329 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3099736033340544130} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6754485822241212579 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3099736033340544130} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6338264613844064329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &3102142662625400020 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3099736033340544130} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5619593777062036313 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5619593778049157054} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Back + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Back + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &5617591734082306831 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5619593777062036313} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3534971313961570194 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5619593777062036313} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4270668820921917304 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5619593777062036313} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3534971313961570194} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/5DigitInputPopup/5DigitInput.prefab.meta b/UI/Prefabs/5DigitInputPopup/5DigitInput.prefab.meta new file mode 100644 index 0000000..190bd3f --- /dev/null +++ b/UI/Prefabs/5DigitInputPopup/5DigitInput.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 54d3625bf28508944853cce5c940c30c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Authentication Popup.meta b/UI/Prefabs/Authentication Popup.meta new file mode 100644 index 0000000..d0bd71a --- /dev/null +++ b/UI/Prefabs/Authentication Popup.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d4b40a48a59bbe446aba56212ab1d15e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Authentication Popup/Authentication Popup.prefab b/UI/Prefabs/Authentication Popup/Authentication Popup.prefab new file mode 100644 index 0000000..6728ad3 --- /dev/null +++ b/UI/Prefabs/Authentication Popup/Authentication Popup.prefab @@ -0,0 +1,11294 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &202241233251530203 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233251530204} + - component: {fileID: 2449351027646029983} + - component: {fileID: 7272181641407465854} + - component: {fileID: 8072680918941051845} + m_Layer: 5 + m_Name: Authentication Popup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &202241233251530204 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233251530203} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019453335309972} + - {fileID: 7121724940283690469} + - {fileID: 7221019453865200874} + - {fileID: 202241233879630559} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2449351027646029983 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233251530203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d591f4a445334a4ca7a10feeeac4e6c, type: 3} + m_Name: + m_EditorClassIdentifier: + IsAuthenticated: 0 + currentUserProfile: + username: + userId: 0 + portal_username: + avatar_original: + url: + filename: + avatar_50x50: + url: + filename: + avatar_100x100: + url: + filename: + timezone: + language: + LastReceivedTermsOfUse: + termsOfUse: + links: [] + hash: + md5hash: + privacyPolicyURL: + termsOfUseURL: + currentAuthenticationPortal: 0 +--- !u!114 &7272181641407465854 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233251530203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 245d14b54e4a2b24d8caf0f965aabcb6, type: 3} + m_Name: + m_EditorClassIdentifier: + Avatar_Main: {fileID: 0} + AvatarDownloadBar: {fileID: 0} + PlatformIcon_Main: {fileID: 0} + PlatformIcon_DownloadQueue: {fileID: 0} + switchAvatar: {fileID: 21300000, guid: 039788403b804a44988a679592c09620, type: 3} + SteamAvatar: {fileID: 21300000, guid: 185dd140e706341438f5d0fef6a2e6f9, type: 3} + XboxAvatar: {fileID: 21300000, guid: 7469d4b74c68de041b524683e4783f04, type: 3} + PlayStationAvatar: {fileID: 21300000, guid: df059c317d9d7e14f929e2f13aec1a7d, type: 3} +--- !u!114 &8072680918941051845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233251530203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2c4cf586272b55a4497783f1478c1c6b, type: 3} + m_Name: + m_EditorClassIdentifier: + AuthenticationPanel: {fileID: 202241233251530203} + AuthenticationMainPanel: {fileID: 7221019453865200875} + AuthenticationPanelWaitingForResponseAnimation: {fileID: 202241233879630558} + AuthenticationPanelEnterEmail: {fileID: 202241233853985077} + AuthenticationPanelLogo: {fileID: 202241233411222918} + AuthenticationPanelEmailField: {fileID: 7221019452671754836} + AuthenticationPanelEnterCode: {fileID: 202241233997231398} + AuthenticationPanelCodeFields: + - {fileID: 7221019454488820228} + - {fileID: 202241234733264473} + - {fileID: 202241234678744744} + - {fileID: 202241234074042608} + - {fileID: 202241234749164921} + AuthenticationPanelHiddenInputField: {fileID: 5750130964817376437} + AuthenticationPanelConnectViaSteamButton: {fileID: 7440308469998411781} + AuthenticationPanelConnectViaEpicButton: {fileID: 3458972671975240460} + AuthenticationPanelConnectViaGOGButton: {fileID: 8812471963573315342} + AuthenticationPanelConnectViaXboxButton: {fileID: 925376273754343133} + AuthenticationPanelConnectViaSwitchButton: {fileID: 582567568040103326} + AuthenticationPanelConnectViaPlayStationButton: {fileID: 8197357445277052599} + AuthenticationPanelConnectViaEmailButton: {fileID: 7440308471908351179} + AuthenticationPanelBackButton: {fileID: 124410400035020010} + AuthenticationPanelBackButtonText: {fileID: 1337162824535102472} + AuthenticationPanelAgreeButton: {fileID: 7440308470102128942} + AuthenticationPanelSendCodeButton: {fileID: 7440308471569427063} + AuthenticationPanelSubmitButton: {fileID: 7440308471499131697} + AuthenticationPanelCompletedButton: {fileID: 7440308471022637707} + AuthenticationPanelLogoutButton: {fileID: 124410400454291110} + AuthenticationPanelTOSButton: {fileID: 202241233843684505} + AuthenticationPanelPrivacyPolicyButton: {fileID: 202241233593690200} + AuthenticationPanelCancelButton: {fileID: 7436085604402578084} + AuthenticationPanelTermsOfUseLinks: {fileID: 202241234799659893} + AuthenticationPanelTitleText: {fileID: 202241233691803950} + AuthenticationPanelInfoText: {fileID: 7221019454224994760} + auth: {fileID: 2449351027646029983} +--- !u!1 &202241233411222918 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233411222919} + m_Layer: 5 + m_Name: Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233411222919 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233411222918} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 202241233620033425} + - {fileID: 202241233885895356} + m_Father: {fileID: 202241234745432290} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 360, y: -72} + m_SizeDelta: {x: 140, y: 64} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &202241233491869394 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233491869395} + m_Layer: 5 + m_Name: email field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233491869395 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233491869394} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019454163943084} + - {fileID: 7221019452671754837} + - {fileID: 7221019452979787782} + m_Father: {fileID: 202241233853985078} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 64} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &202241233593369098 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233593369099} + - component: {fileID: 202241233593369102} + - component: {fileID: 202241233593369101} + - component: {fileID: 202241233593369100} + m_Layer: 5 + m_Name: Mail icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233593369099 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593369098} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 200408515680790622} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 24, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &202241233593369102 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593369098} + m_CullTransparentMesh: 0 +--- !u!114 &202241233593369101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593369098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b1878032b1c88794bad59d6ea4030899, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &202241233593369100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593369098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &202241233593543017 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233593543018} + - component: {fileID: 202241233593543021} + - component: {fileID: 202241233593543020} + - component: {fileID: 202241233593543019} + m_Layer: 5 + m_Name: pinline (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233593543018 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593543017} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241234255771746} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 244, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &202241233593543021 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593543017} + m_CullTransparentMesh: 0 +--- !u!114 &202241233593543020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593543017} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &202241233593543019 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593543017} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &202241233593690274 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233593690275} + - component: {fileID: 202241233593690279} + - component: {fileID: 202241233593690278} + - component: {fileID: 202241233593690276} + - component: {fileID: 202241233593690200} + m_Layer: 5 + m_Name: Privacy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233593690275 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593690274} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241234799659894} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 372, y: -10} + m_SizeDelta: {x: 104, y: 22.83} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &202241233593690279 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593690274} + m_CullTransparentMesh: 0 +--- !u!114 &202241233593690278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593690274} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Privacy Policy + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 4 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &202241233593690276 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593690274} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &202241233593690200 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233593690274} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 7440308470102128942} + m_SelectOnLeft: {fileID: 202241233843684505} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 202241233593690278} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2449351027646029983} + m_MethodName: HyperLinkToPrivacyPolicy + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 202241233593690278} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 2 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!1 &202241233620033424 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233620033425} + - component: {fileID: 202241233620033427} + - component: {fileID: 202241233620033426} + m_Layer: 5 + m_Name: mod.io + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233620033425 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233620033424} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241233411222919} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -9.6, y: 4} + m_SizeDelta: {x: 78, y: 22} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &202241233620033427 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233620033424} + m_CullTransparentMesh: 0 +--- !u!114 &202241233620033426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233620033424} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1abe564f196a7a54381c40c8ef7de55c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &202241233691803947 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233691803948} + - component: {fileID: 202241233691803951} + - component: {fileID: 202241233691803950} + - component: {fileID: 202241233691803949} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233691803948 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233691803947} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241234745432290} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 360, y: -20} + m_SizeDelta: {x: 720, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &202241233691803951 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233691803947} + m_CullTransparentMesh: 0 +--- !u!114 &202241233691803950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233691803947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &202241233691803949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233691803947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &202241233843684579 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233843684580} + - component: {fileID: 202241233843684504} + - component: {fileID: 202241233843684583} + - component: {fileID: 202241233843684581} + - component: {fileID: 202241233843684505} + m_Layer: 5 + m_Name: TOS + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233843684580 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233843684579} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241234799659894} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 228, y: -10} + m_SizeDelta: {x: 104, y: 22.83} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &202241233843684504 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233843684579} + m_CullTransparentMesh: 0 +--- !u!114 &202241233843684583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233843684579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Terms of use + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 4 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &202241233843684581 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233843684579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &202241233843684505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233843684579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 124410400035020010} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 202241233593690200} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 202241233843684583} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2449351027646029983} + m_MethodName: HyperLinkToTOS + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 202241233843684583} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 2 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!1 &202241233853985077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233853985078} + - component: {fileID: 202241233853985079} + m_Layer: 5 + m_Name: Email field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &202241233853985078 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233853985077} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 202241234145392700} + - {fileID: 202241233491869395} + m_Father: {fileID: 7221019453865200874} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 720, y: 109} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &202241233853985079 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233853985077} + m_CullTransparentMesh: 0 +--- !u!1 &202241233879630558 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233879630559} + - component: {fileID: 202241233879630545} + - component: {fileID: 202241233879630544} + m_Layer: 5 + m_Name: Waiting Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &202241233879630559 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233879630558} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2997179153476893617} + - {fileID: 7221019453533936730} + - {fileID: 200408514831191069} + m_Father: {fileID: 202241233251530204} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 316, y: 253} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &202241233879630545 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233879630558} + m_CullTransparentMesh: 0 +--- !u!114 &202241233879630544 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233879630558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &202241233885895355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233885895356} + - component: {fileID: 202241233885895358} + - component: {fileID: 202241233885895357} + m_Layer: 5 + m_Name: cog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233885895356 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233885895355} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241233411222919} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &202241233885895358 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233885895355} + m_CullTransparentMesh: 0 +--- !u!114 &202241233885895357 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233885895355} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &202241233997231398 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241233997231399} + - component: {fileID: 202241233997231320} + m_Layer: 5 + m_Name: Code field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241233997231399 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233997231398} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 202241234852567059} + m_Father: {fileID: 7221019453865200874} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -246.83} + m_SizeDelta: {x: 720, y: 64} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &202241233997231320 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241233997231398} + m_CullTransparentMesh: 0 +--- !u!1 &202241234074042622 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234074042623} + - component: {fileID: 202241234074042609} + - component: {fileID: 202241234074042608} + - component: {fileID: 2800213132757570239} + m_Layer: 5 + m_Name: InputField (TMP) (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234074042623 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234074042622} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019452855633150} + m_Father: {fileID: 202241234446112349} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 188, y: -30} + m_SizeDelta: {x: 40, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &202241234074042609 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234074042622} + m_CullTransparentMesh: 0 +--- !u!114 &202241234074042608 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234074042622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_TextViewport: {fileID: 7221019452855633150} + m_TextComponent: {fileID: 7221019452665931255} + m_Placeholder: {fileID: 7221019454128316325} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 1 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_Text: N + m_CaretBlinkRate: 0.85 + m_CaretWidth: 3 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &2800213132757570239 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234074042622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + editOnFocus: 0 + inputFieldTitle: Login code + inputFieldPlaceholderText: 5 digit code... + keyboardtype: 0 + inputField: {fileID: 202241234074042608} +--- !u!1 &202241234145392699 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234145392700} + - component: {fileID: 202241234145392703} + - component: {fileID: 202241234145392702} + - component: {fileID: 202241234145392701} + - component: {fileID: 3420039381788786998} + m_Layer: 5 + m_Name: Your email title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234145392700 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234145392699} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241233853985078} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 24} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &202241234145392703 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234145392699} + m_CullTransparentMesh: 0 +--- !u!114 &202241234145392702 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234145392699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Your email + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &202241234145392701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234145392699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &3420039381788786998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234145392699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Your email + text: {fileID: 202241234145392702} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &202241234193297662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234193297663} + - component: {fileID: 202241234193297650} + - component: {fileID: 202241234193297649} + - component: {fileID: 202241234193297648} + m_Layer: 5 + m_Name: Steam logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234193297663 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234193297662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 200408515928732816} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 24, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &202241234193297650 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234193297662} + m_CullTransparentMesh: 0 +--- !u!114 &202241234193297649 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234193297662} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 185dd140e706341438f5d0fef6a2e6f9, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &202241234193297648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234193297662} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &202241234255771745 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234255771746} + m_Layer: 5 + m_Name: Pinlines + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234255771746 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234255771745} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019453835147664} + - {fileID: 202241234486310424} + - {fileID: 202241234924491078} + - {fileID: 202241234738335343} + - {fileID: 202241233593543018} + m_Father: {fileID: 202241234852567059} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &202241234446112348 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234446112349} + - component: {fileID: 202241234446112350} + m_Layer: 5 + m_Name: Digit Fields + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234446112349 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234446112348} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019454488820229} + - {fileID: 202241234733264472} + - {fileID: 202241234678744759} + - {fileID: 202241234074042623} + - {fileID: 202241234749164920} + m_Father: {fileID: 202241234852567059} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &202241234446112350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234446112348} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 16 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &202241234486310503 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234486310424} + - component: {fileID: 202241234486310427} + - component: {fileID: 202241234486310426} + - component: {fileID: 202241234486310425} + m_Layer: 5 + m_Name: pinline (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234486310424 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234486310503} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241234255771746} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 76, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &202241234486310427 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234486310503} + m_CullTransparentMesh: 0 +--- !u!114 &202241234486310426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234486310503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &202241234486310425 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234486310503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &202241234678744758 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234678744759} + - component: {fileID: 202241234678744745} + - component: {fileID: 202241234678744744} + - component: {fileID: 3132869843192065334} + m_Layer: 5 + m_Name: InputField (TMP) (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234678744759 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234678744758} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019453520073339} + m_Father: {fileID: 202241234446112349} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 132, y: -30} + m_SizeDelta: {x: 40, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &202241234678744745 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234678744758} + m_CullTransparentMesh: 0 +--- !u!114 &202241234678744744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234678744758} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_TextViewport: {fileID: 7221019453520073339} + m_TextComponent: {fileID: 7221019453696711656} + m_Placeholder: {fileID: 7221019454615672376} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 1 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_Text: F + m_CaretBlinkRate: 0.85 + m_CaretWidth: 3 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &3132869843192065334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234678744758} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + editOnFocus: 0 + inputFieldTitle: Login code + inputFieldPlaceholderText: 5 digit code... + keyboardtype: 0 + inputField: {fileID: 202241234678744744} +--- !u!1 &202241234733264551 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234733264472} + - component: {fileID: 202241234733264474} + - component: {fileID: 202241234733264473} + - component: {fileID: 4261087772389632036} + m_Layer: 5 + m_Name: InputField (TMP) (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234733264472 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234733264551} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019453338437469} + m_Father: {fileID: 202241234446112349} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 76, y: -30} + m_SizeDelta: {x: 40, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &202241234733264474 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234733264551} + m_CullTransparentMesh: 0 +--- !u!114 &202241234733264473 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234733264551} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_TextViewport: {fileID: 7221019453338437469} + m_TextComponent: {fileID: 7221019454304473205} + m_Placeholder: {fileID: 7221019453051797183} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 1 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_Text: 4 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 3 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &4261087772389632036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234733264551} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + editOnFocus: 0 + inputFieldTitle: Login code + inputFieldPlaceholderText: 5 digit code... + keyboardtype: 0 + inputField: {fileID: 202241234733264473} +--- !u!1 &202241234738335342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234738335343} + - component: {fileID: 202241234738335330} + - component: {fileID: 202241234738335329} + - component: {fileID: 202241234738335328} + m_Layer: 5 + m_Name: pinline (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234738335343 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234738335342} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241234255771746} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 188, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &202241234738335330 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234738335342} + m_CullTransparentMesh: 0 +--- !u!114 &202241234738335329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234738335342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &202241234738335328 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234738335342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &202241234745432289 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234745432290} + - component: {fileID: 202241234745432292} + - component: {fileID: 202241234745432291} + m_Layer: 5 + m_Name: Title and Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234745432290 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234745432289} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 202241233691803948} + - {fileID: 202241233411222919} + m_Father: {fileID: 7221019453865200874} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -92} + m_SizeDelta: {x: 720, y: 104} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &202241234745432292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234745432289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &202241234745432291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234745432289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &202241234749164871 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234749164920} + - component: {fileID: 202241234749164922} + - component: {fileID: 202241234749164921} + - component: {fileID: 8587716682805274774} + m_Layer: 5 + m_Name: InputField (TMP) (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234749164920 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234749164871} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019452744965799} + m_Father: {fileID: 202241234446112349} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 244, y: -30} + m_SizeDelta: {x: 40, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &202241234749164922 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234749164871} + m_CullTransparentMesh: 0 +--- !u!114 &202241234749164921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234749164871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_TextViewport: {fileID: 7221019452744965799} + m_TextComponent: {fileID: 7221019453704149431} + m_Placeholder: {fileID: 7221019453576777660} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 1 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_Text: 2 + m_CaretBlinkRate: 0.85 + m_CaretWidth: 3 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &8587716682805274774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234749164871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + editOnFocus: 0 + inputFieldTitle: Login code + inputFieldPlaceholderText: 5 digit code... + keyboardtype: 0 + inputField: {fileID: 202241234749164921} +--- !u!1 &202241234799659893 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234799659894} + - component: {fileID: 202241234799659895} + m_Layer: 5 + m_Name: Terms of use / Privacy Policy links + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &202241234799659894 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234799659893} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 202241233843684580} + - {fileID: 202241233593690275} + m_Father: {fileID: 7221019453865200874} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -296.83002} + m_SizeDelta: {x: 600, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &202241234799659895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234799659893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 40 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &202241234852567058 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234852567059} + m_Layer: 5 + m_Name: Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234852567059 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234852567058} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 202241234446112349} + - {fileID: 202241234255771746} + m_Father: {fileID: 202241233997231399} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 264, y: 64} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &202241234924491077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 202241234924491078} + - component: {fileID: 202241234924491129} + - component: {fileID: 202241234924491128} + - component: {fileID: 202241234924491079} + m_Layer: 5 + m_Name: pinline (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &202241234924491078 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234924491077} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241234255771746} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 132, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &202241234924491129 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234924491077} + m_CullTransparentMesh: 0 +--- !u!114 &202241234924491128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234924491077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &202241234924491079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202241234924491077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &3381100307164060962 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1254262398035219862} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Connect with Switch + text: {fileID: 1955338516196476284} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &1493014684774305236 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1561099587769769685} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Connect with Xbox + text: {fileID: 2297091763963530815} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &7221019454328133884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1712258811662060485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7221019452982900952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1712258811935632354} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &8752962373264156985 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784627790428423394} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Back + text: {fileID: 1337162824535102472} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &4727339176155115028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784627790847702702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Log out + text: {fileID: 1337162824115775044} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &1990191562464318298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5481924351355347091} + - component: {fileID: 4828673666164593070} + - component: {fileID: 9052917789439416598} + - component: {fileID: 1506657804159426066} + m_Layer: 5 + m_Name: Xbox logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5481924351355347091 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1990191562464318298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7588899111424954952} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 24, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &4828673666164593070 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1990191562464318298} + m_CullTransparentMesh: 0 +--- !u!114 &9052917789439416598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1990191562464318298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7469d4b74c68de041b524683e4783f04, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1506657804159426066 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1990191562464318298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &2437400965958376145 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1499264549116471129} + - component: {fileID: 4656662831594615548} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1499264549116471129 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2437400965958376145} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2002393053276556680} + - {fileID: 4954065109111648450} + m_Father: {fileID: 7121724940283690469} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4656662831594615548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2437400965958376145} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} +--- !u!114 &231705565195708834 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2989552656439798532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Connect with Epic + text: {fileID: 2537722628595547118} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &7221019452982900953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3123872398336138190} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7221019454328133885 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3123872398599519209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &3218072239059973773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4954065109111648450} + - component: {fileID: 7322808394670904847} + - component: {fileID: 2621704366631340501} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4954065109111648450 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3218072239059973773} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1499264549116471129} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7322808394670904847 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3218072239059973773} + m_CullTransparentMesh: 0 +--- !u!114 &2621704366631340501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3218072239059973773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3430078737957267641 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8442021438395702342} + - component: {fileID: 6833993487080835415} + - component: {fileID: 8878182774722209015} + - component: {fileID: 1258400332232299501} + m_Layer: 5 + m_Name: Switch logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8442021438395702342 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3430078737957267641} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7895660361775405323} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 24, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &6833993487080835415 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3430078737957267641} + m_CullTransparentMesh: 0 +--- !u!114 &8878182774722209015 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3430078737957267641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 039788403b804a44988a679592c09620, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1258400332232299501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3430078737957267641} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &4392807985214758398 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2002393053276556680} + - component: {fileID: 9090369499380113074} + - component: {fileID: 4894144556081501555} + - component: {fileID: 7319461897117355166} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2002393053276556680 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4392807985214758398} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1499264549116471129} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9090369499380113074 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4392807985214758398} + m_CullTransparentMesh: 0 +--- !u!114 &4894144556081501555 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4392807985214758398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Enter text... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2150773298 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7319461897117355166 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4392807985214758398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5724320280674040457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6113989716297144256} + - component: {fileID: 4109156807149152835} + - component: {fileID: 6218751261295630860} + - component: {fileID: 7512543753716684548} + m_Layer: 5 + m_Name: Epic logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6113989716297144256 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5724320280674040457} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6162624170999867289} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 24, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &4109156807149152835 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5724320280674040457} + m_CullTransparentMesh: 0 +--- !u!114 &6218751261295630860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5724320280674040457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d53ef2ab55e711143b7e13ef226f8077, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7512543753716684548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5724320280674040457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5749320557356867258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3796176279555647795} + - component: {fileID: 1541056029455256787} + - component: {fileID: 9158630846675498202} + - component: {fileID: 510475241392588706} + m_Layer: 5 + m_Name: Gog logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3796176279555647795 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5749320557356867258} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2290792716777337755} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 24, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &1541056029455256787 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5749320557356867258} + m_CullTransparentMesh: 0 +--- !u!114 &9158630846675498202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5749320557356867258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 40e3049202acaa3429501a865a1bb47a, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &510475241392588706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5749320557356867258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7846716019158388149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7147647550602166022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Connect with GOG + text: {fileID: 7600739817341988844} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7221019452665931258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019452665931253} + - component: {fileID: 7221019452665931254} + - component: {fileID: 7221019452665931255} + - component: {fileID: 7221019452665931252} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019452665931253 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452665931258} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019452855633150} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019452665931254 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452665931258} + m_CullTransparentMesh: 0 +--- !u!114 &7221019452665931255 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452665931258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "N\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7221019452665931252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452665931258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7221019452671754842 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019452671754837} + - component: {fileID: 7221019452671754839} + - component: {fileID: 7221019452671754836} + - component: {fileID: 7221019452671754838} + - component: {fileID: 4547370074259710398} + - component: {fileID: 1868498362273479628} + - component: {fileID: 1662345933043761591} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019452671754837 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452671754842} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019453120733497} + m_Father: {fileID: 202241233491869395} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019452671754839 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452671754842} + m_CullTransparentMesh: 0 +--- !u!114 &7221019452671754836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452671754842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4547370074259710398} + m_TextViewport: {fileID: 7221019453120733497} + m_TextComponent: {fileID: 7221019453064980057} + m_Placeholder: {fileID: 7221019454436592466} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &7221019452671754838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452671754842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + editOnFocus: 0 + inputFieldTitle: Email address + inputFieldPlaceholderText: Email... + keyboardtype: 1 + inputField: {fileID: 7221019452671754836} +--- !u!114 &4547370074259710398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452671754842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 91c8a28ebcde6ac469e4ad1171ed8847, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1868498362273479628 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452671754842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &1662345933043761591 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452671754842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 4547370074259710398} +--- !u!1 &7221019452744965796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019452744965799} + - component: {fileID: 7221019452744965798} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019452744965799 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452744965796} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019453576777661} + - {fileID: 7221019453704149429} + m_Father: {fileID: 202241234749164920} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7221019452744965798 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452744965796} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &7221019452855633151 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019452855633150} + - component: {fileID: 7221019452855633145} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019452855633150 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452855633151} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019454128316330} + - {fileID: 7221019452665931253} + m_Father: {fileID: 202241234074042623} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7221019452855633145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452855633151} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &7221019452979787783 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019452979787782} + - component: {fileID: 7221019452979787779} + - component: {fileID: 7221019452979787776} + - component: {fileID: 7221019452979787777} + m_Layer: 5 + m_Name: pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019452979787782 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452979787783} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241233491869395} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &7221019452979787779 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452979787783} + m_CullTransparentMesh: 0 +--- !u!114 &7221019452979787776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452979787783} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7221019452979787777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019452979787783} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &7221019453051797181 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453051797180} + - component: {fileID: 7221019453051797182} + - component: {fileID: 7221019453051797183} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453051797180 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453051797181} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019453338437469} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019453051797182 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453051797181} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453051797183 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453051797181} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2133996082 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7221019453064980060 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453064980063} + - component: {fileID: 7221019453064980056} + - component: {fileID: 7221019453064980057} + - component: {fileID: 7221019453064980062} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453064980063 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453064980060} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019453120733497} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019453064980056 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453064980060} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453064980057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453064980060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7221019453064980062 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453064980060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7221019453091957967 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453091957966} + - component: {fileID: 7221019453091957961} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453091957966 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453091957967} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2997179151600901014} + - {fileID: 7223573417516288127} + - {fileID: 200408515928732816} + - {fileID: 6162624170999867289} + - {fileID: 2290792716777337755} + - {fileID: 1460409225402694178} + - {fileID: 7588899111424954952} + - {fileID: 7895660361775405323} + - {fileID: 200408515680790622} + - {fileID: 200408516428869051} + - {fileID: 200408515482320610} + - {fileID: 200408515552599972} + - {fileID: 200408514937652766} + - {fileID: 7223573417667197491} + - {fileID: 195061249497568817} + m_Father: {fileID: 7221019453865200874} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -246.83} + m_SizeDelta: {x: 800, y: 48} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &7221019453091957961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453091957967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 24 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7221019453120733502 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453120733497} + - component: {fileID: 7221019453120733496} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453120733497 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453120733502} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019454436592464} + - {fileID: 7221019453064980063} + m_Father: {fileID: 7221019452671754837} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 12, y: 0} + m_SizeDelta: {x: -24, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7221019453120733496 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453120733502} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &7221019453335309973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453335309972} + - component: {fileID: 7221019453335309974} + - component: {fileID: 7221019453335309975} + - component: {fileID: 7221019453335309969} + - component: {fileID: 7221019453335309968} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453335309972 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453335309973} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241233251530204} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019453335309974 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453335309973} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453335309975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453335309973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.78431374} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7221019453335309969 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453335309973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7221019453335309968 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453335309973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7221019453335309975} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2449351027646029983} + m_MethodName: Close + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &7221019453338437442 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453338437469} + - component: {fileID: 7221019453338437468} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453338437469 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453338437442} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019453051797180} + - {fileID: 7221019454304473211} + m_Father: {fileID: 202241234733264472} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7221019453338437468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453338437442} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &7221019453520073336 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453520073339} + - component: {fileID: 7221019453520073338} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453520073339 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453520073336} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019454615672377} + - {fileID: 7221019453696711662} + m_Father: {fileID: 202241234678744759} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7221019453520073338 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453520073336} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &7221019453533936731 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453533936730} + - component: {fileID: 7221019453533936726} + - component: {fileID: 7221019453533936727} + - component: {fileID: 7221019453533936724} + - component: {fileID: 7221019453533936725} + - component: {fileID: 3402549401466324007} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453533936730 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453533936731} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241233879630559} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 16} + m_SizeDelta: {x: 300, y: 22.83} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019453533936726 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453533936731} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453533936727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453533936731} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Waiting for response... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7221019453533936724 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453533936731} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7221019453533936725 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453533936731} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &3402549401466324007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453533936731} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Waiting for response... + text: {fileID: 7221019453533936727} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7221019453576777634 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453576777661} + - component: {fileID: 7221019453576777663} + - component: {fileID: 7221019453576777660} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453576777661 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453576777634} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019452744965799} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019453576777663 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453576777634} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453576777660 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453576777634} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2133996082 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7221019453635331187 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453635331186} + - component: {fileID: 7221019453635331148} + - component: {fileID: 7221019453635331149} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453635331186 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453635331187} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019454530225433} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019453635331148 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453635331187} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453635331149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453635331187} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2133996082 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7221019453696711663 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453696711662} + - component: {fileID: 7221019453696711659} + - component: {fileID: 7221019453696711656} + - component: {fileID: 7221019453696711657} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453696711662 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453696711663} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019453520073339} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019453696711659 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453696711663} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453696711656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453696711663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "F\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7221019453696711657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453696711663} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7221019453704149434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453704149429} + - component: {fileID: 7221019453704149430} + - component: {fileID: 7221019453704149431} + - component: {fileID: 7221019453704149428} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453704149429 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453704149434} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019452744965799} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019453704149430 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453704149434} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453704149431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453704149434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "2\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7221019453704149428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453704149434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7221019453835147665 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453835147664} + - component: {fileID: 7221019453835147629} + - component: {fileID: 7221019453835147666} + - component: {fileID: 7221019453835147667} + m_Layer: 5 + m_Name: pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019453835147664 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453835147665} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241234255771746} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -1} + m_SizeDelta: {x: 40, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &7221019453835147629 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453835147665} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453835147666 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453835147665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7221019453835147667 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453835147665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &7221019453865200875 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019453865200874} + - component: {fileID: 7221019453865200868} + - component: {fileID: 7221019453865200869} + - component: {fileID: 7221019453865200871} + - component: {fileID: 7221019453865200865} + - component: {fileID: 7221019453865200870} + m_Layer: 5 + m_Name: Main Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7221019453865200874 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453865200875} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 202241234745432290} + - {fileID: 7221019454224994767} + - {fileID: 202241233853985078} + - {fileID: 202241233997231399} + - {fileID: 202241234799659894} + - {fileID: 7221019453091957966} + m_Father: {fileID: 202241233251530204} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 880, y: 334.83} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019453865200868 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453865200875} + m_CullTransparentMesh: 0 +--- !u!114 &7221019453865200869 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453865200875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f12eeb8dd0927a249aeec61fdfc3eba7, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7221019453865200871 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453865200875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &7221019453865200865 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453865200875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &7221019453865200870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019453865200875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 40 + m_Bottom: 40 + m_ChildAlignment: 1 + m_Spacing: 40 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7221019454128316331 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019454128316330} + - component: {fileID: 7221019454128316324} + - component: {fileID: 7221019454128316325} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019454128316330 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454128316331} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019452855633150} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019454128316324 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454128316331} + m_CullTransparentMesh: 0 +--- !u!114 &7221019454128316325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454128316331} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2133996082 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7221019454139864710 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019454139864705} + - component: {fileID: 7221019454139864706} + - component: {fileID: 7221019454139864707} + - component: {fileID: 7221019454139864704} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019454139864705 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454139864710} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019454530225433} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019454139864706 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454139864710} + m_CullTransparentMesh: 0 +--- !u!114 &7221019454139864707 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454139864710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "O\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7221019454139864704 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454139864710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7221019454163943085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019454163943084} + - component: {fileID: 7221019454163943081} + - component: {fileID: 7221019454163943086} + - component: {fileID: 7221019454163943087} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7221019454163943084 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454163943085} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 202241233491869395} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 8, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &7221019454163943081 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454163943085} + m_CullTransparentMesh: 0 +--- !u!114 &7221019454163943086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454163943085} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9add6864895115c4587c2a86d9ba1a46, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7221019454163943087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454163943085} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7221019454224994764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019454224994767} + - component: {fileID: 7221019454224994763} + - component: {fileID: 7221019454224994760} + - component: {fileID: 7221019454224994761} + - component: {fileID: 7221019454224994766} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019454224994767 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454224994764} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019453865200874} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -195.415} + m_SizeDelta: {x: 720, y: 22.83} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019454224994763 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454224994764} + m_CullTransparentMesh: 0 +--- !u!114 &7221019454224994760 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454224994764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Waiting for response... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7221019454224994761 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454224994764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7221019454224994766 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454224994764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &7221019454304473208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019454304473211} + - component: {fileID: 7221019454304473204} + - component: {fileID: 7221019454304473205} + - component: {fileID: 7221019454304473210} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019454304473211 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454304473208} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019453338437469} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019454304473204 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454304473208} + m_CullTransparentMesh: 0 +--- !u!114 &7221019454304473205 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454304473208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "4\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7221019454304473210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454304473208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7221019454436592465 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019454436592464} + - component: {fileID: 7221019454436592429} + - component: {fileID: 7221019454436592466} + - component: {fileID: 7221019454436592467} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019454436592464 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454436592465} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019453120733497} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019454436592429 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454436592465} + m_CullTransparentMesh: 0 +--- !u!114 &7221019454436592466 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454436592465} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Email address + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2149257230 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7221019454436592467 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454436592465} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7221019454488820234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019454488820229} + - component: {fileID: 7221019454488820231} + - component: {fileID: 7221019454488820228} + - component: {fileID: 1878957111385846889} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019454488820229 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454488820234} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019454530225433} + m_Father: {fileID: 202241234446112349} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -30} + m_SizeDelta: {x: 40, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019454488820231 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454488820234} + m_CullTransparentMesh: 0 +--- !u!114 &7221019454488820228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454488820234} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_TextViewport: {fileID: 7221019454530225433} + m_TextComponent: {fileID: 7221019454139864707} + m_Placeholder: {fileID: 7221019453635331149} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 5 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_Text: O + m_CaretBlinkRate: 0.85 + m_CaretWidth: 3 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &1878957111385846889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454488820234} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + editOnFocus: 0 + inputFieldTitle: Login code + inputFieldPlaceholderText: 5 digit code... + keyboardtype: 0 + inputField: {fileID: 7221019454488820228} +--- !u!1 &7221019454530225438 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019454530225433} + - component: {fileID: 7221019454530225432} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019454530225433 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454530225438} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7221019453635331186} + - {fileID: 7221019454139864705} + m_Father: {fileID: 7221019454488820229} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7221019454530225432 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454530225438} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &7221019454615672382 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7221019454615672377} + - component: {fileID: 7221019454615672379} + - component: {fileID: 7221019454615672376} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7221019454615672377 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454615672382} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7221019453520073339} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7221019454615672379 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454615672382} + m_CullTransparentMesh: 0 +--- !u!114 &7221019454615672376 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7221019454615672382} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2133996082 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2968332245270186637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7547863885195327167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Connect with PlayStation + text: {fileID: 7130796017981728341} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &7221019452982900958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7733431735248138522} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7221019454328133858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7733431736593305917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &8500900914818273053 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4782001616418012621} + - component: {fileID: 7987994993595714420} + - component: {fileID: 7696296687459103876} + - component: {fileID: 6078156813719865653} + m_Layer: 5 + m_Name: PlayStation logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4782001616418012621 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8500900914818273053} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1460409225402694178} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 24, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &7987994993595714420 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8500900914818273053} + m_CullTransparentMesh: 0 +--- !u!114 &7696296687459103876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8500900914818273053} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: df059c317d9d7e14f929e2f13aec1a7d, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6078156813719865653 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8500900914818273053} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &8765207244855395050 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7121724940283690469} + - component: {fileID: 2230839792394160094} + - component: {fileID: 5750130964817376437} + - component: {fileID: 2078712683123238876} + m_Layer: 5 + m_Name: Hidden InputField for Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7121724940283690469 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8765207244855395050} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1499264549116471129} + m_Father: {fileID: 202241233251530204} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 15.4} + m_SizeDelta: {x: 160, y: -0.7307129} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2230839792394160094 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8765207244855395050} + m_CullTransparentMesh: 0 +--- !u!114 &5750130964817376437 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8765207244855395050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_TextViewport: {fileID: 1499264549116471129} + m_TextComponent: {fileID: 2621704366631340501} + m_Placeholder: {fileID: 4894144556081501555} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 5 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 8072680918941051845} + m_MethodName: OnEndEditHiddenInput + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &2078712683123238876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8765207244855395050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + editOnFocus: 1 + inputFieldTitle: 5 digit code + inputFieldPlaceholderText: + keyboardtype: 0 + inputField: {fileID: 5750130964817376437} +--- !u!114 &924589906675696546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411698320947213} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Connect with Steam + text: {fileID: 8391957879382583527} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &308873402302498911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411698561098022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: I agree + text: {fileID: 8391957879287067084} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &8166884529219205168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411698767352633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Submit + text: {fileID: 8391957881087280083} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &1802035630556114926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411698965574271} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Send code + text: {fileID: 8391957881017066133} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &1194345398132380068 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411699171845315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Connect with email + text: {fileID: 8391957880686474281} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &6104442173454707330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411699388317824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Cancel + text: {fileID: 8391957880466346090} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &2043301180424606819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411699477940867} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Continue browsing + text: {fileID: 8391957880505637481} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &5636756960497751154 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9101761004999187116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Cancel + text: {fileID: 8360150324471237190} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1001 &197454710412531303 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 1509 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Cancel + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2449351027646029983} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: UpdateBrowserModListItemDisplay + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Cancel + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &8360150324471237190 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 197454710412531303} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9101761004999187116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &9101761004999187116 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 197454710412531303} + m_PrefabAsset: {fileID: 0} +--- !u!224 &195061249497568817 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 197454710412531303} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7436085604402578084 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 197454710412531303} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &202241233508124232 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 1509 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Complete + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2449351027646029983} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: RefreshModListItems + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Continue browsing + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &7440308471022637707 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233508124232} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &9096411699477940867 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233508124232} + m_PrefabAsset: {fileID: 0} +--- !u!224 &200408514937652766 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233508124232} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8391957880505637481 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233508124232} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411699477940867} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &202241233548528715 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 202241233879630559} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Cancel + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3241466802278087207, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4599543967843065949, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2449351027646029983} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Cancel + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &8391957880466346090 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233548528715} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411699388317824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &200408514831191069 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233548528715} + m_PrefabAsset: {fileID: 0} +--- !u!1 &9096411699388317824 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233548528715} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &202241233874003976 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 240 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 389 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Connect with Email + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Connect with email + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 19 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &9096411699171845315 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233874003976} + m_PrefabAsset: {fileID: 0} +--- !u!224 &200408515680790622 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233874003976} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7440308471908351179 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233874003976} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8391957880686474281 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241233874003976} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411699171845315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &202241234069864116 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 1081 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Send (Email) + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Send code + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &7440308471569427063 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234069864116} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &200408515482320610 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234069864116} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8391957881017066133 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234069864116} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411698965574271} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &9096411698965574271 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234069864116} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &202241234270101490 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 1295 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Submit (Code) + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Submit + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &9096411698767352633 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234270101490} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7440308471499131697 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234270101490} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &200408515552599972 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234270101490} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8391957881087280083 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234270101490} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411698767352633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &202241234466926061 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 867 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Agree (TOS) + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: I agree + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &200408516428869051 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234466926061} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7440308470102128942 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234466926061} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &9096411698561098022 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234466926061} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8391957879287067084 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234466926061} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411698561098022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &202241234629555398 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 240 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 148 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Connect with Steam + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Connect with Steam + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 18 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &7440308469998411781 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234629555398} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &200408515928732816 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234629555398} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8391957879382583527 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234629555398} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9096411698320947213} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &9096411698320947213 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 202241234629555398} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1462848942708783732 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 240 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 280 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Connect with PSN + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Connect with PlayStation + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 18 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &7547863885195327167 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 1462848942708783732} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8197357445277052599 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 1462848942708783732} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &1460409225402694178 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 1462848942708783732} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7130796017981728341 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 1462848942708783732} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7547863885195327167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2288946786874848205 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 240 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 148 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Connect with Gog + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Connect with GOG + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 18 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &7147647550602166022 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2288946786874848205} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7600739817341988844 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2288946786874848205} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7147647550602166022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8812471963573315342 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2288946786874848205} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2290792716777337755 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2288946786874848205} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6165275226336405455 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 240 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 148 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Connect with Epic + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Connect with Epic + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 18 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &3458972671975240460 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 6165275226336405455} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6162624170999867289 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 6165275226336405455} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2989552656439798532 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 6165275226336405455} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2537722628595547118 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 6165275226336405455} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2989552656439798532} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &7221019452982900931 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 202241233879630559} + m_Modifications: + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.b + value: 0.105882354 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.g + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.r + value: 0.05490196 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.b + value: 0.105882354 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.g + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.r + value: 0.05490196 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.b + value: 0.105882354 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.g + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.r + value: 0.05490196 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9004829202920558610, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_UpdateMode + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!1 &7733431735248138522 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1109184991508138457, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 7221019452982900931} + m_PrefabAsset: {fileID: 0} +--- !u!224 &2997179153476893617 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 7221019452982900931} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1712258811935632354 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8355616287565517601, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 7221019452982900931} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3123872398336138190 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5722966312418943757, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 7221019452982900931} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7221019453832772197 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 1509 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Logout + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2449351027646029983} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Log out + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &7223573417667197491 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7221019453832772197} + m_PrefabAsset: {fileID: 0} +--- !u!114 &124410400454291110 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7221019453832772197} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1784627790847702702 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7221019453832772197} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1337162824115775044 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7221019453832772197} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784627790847702702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &7221019454218537001 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 653 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Back + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Back + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &1337162824535102472 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7221019454218537001} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1784627790428423394} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1784627790428423394 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7221019454218537001} + m_PrefabAsset: {fileID: 0} +--- !u!114 &124410400035020010 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7221019454218537001} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7223573417516288127 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7221019454218537001} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7221019454328133860 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.b + value: 0.105882354 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.g + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.r + value: 0.05490196 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 50.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.b + value: 0.105882354 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.g + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.r + value: 0.05490196 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.b + value: 0.105882354 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.g + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.r + value: 0.05490196 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9004829202920558610, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_UpdateMode + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &2997179151600901014 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 7221019454328133860} + m_PrefabAsset: {fileID: 0} +--- !u!1 &7733431736593305917 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1109184991508138457, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 7221019454328133860} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3123872398599519209 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5722966312418943757, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 7221019454328133860} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1712258811662060485 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8355616287565517601, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 7221019454328133860} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7590905852943520286 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 240 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 412 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Connect with Xbox + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Connect with Xbox + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 17 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &2297091763963530815 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7590905852943520286} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1561099587769769685} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &925376273754343133 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7590905852943520286} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7588899111424954952 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7590905852943520286} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1561099587769769685 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7590905852943520286} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7897759496764889437 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7221019453091957966} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 240 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 280 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Connect with Switch + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Connect with Switch + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 19 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &1955338516196476284 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7897759496764889437} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1254262398035219862} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1254262398035219862 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7897759496764889437} + m_PrefabAsset: {fileID: 0} +--- !u!114 &582567568040103326 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7897759496764889437} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7895660361775405323 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7897759496764889437} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Prefabs/Authentication Popup/Authentication Popup.prefab.meta b/UI/Prefabs/Authentication Popup/Authentication Popup.prefab.meta new file mode 100644 index 0000000..a7ab834 --- /dev/null +++ b/UI/Prefabs/Authentication Popup/Authentication Popup.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e504c2c7b46822f4a9fd6549967f71b8 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Collections.meta b/UI/Prefabs/Collections.meta new file mode 100644 index 0000000..521a072 --- /dev/null +++ b/UI/Prefabs/Collections.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 33c23b79c8dd9d849a2eb58c16bc3ea4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Collections/CollectionListItem_Regular.prefab b/UI/Prefabs/Collections/CollectionListItem_Regular.prefab new file mode 100644 index 0000000..620ad5e --- /dev/null +++ b/UI/Prefabs/Collections/CollectionListItem_Regular.prefab @@ -0,0 +1,5816 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &278209237033386143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3757096006041649476} + - component: {fileID: 4266251414668129679} + - component: {fileID: 8526071061577691930} + - component: {fileID: 8470330623702063383} + m_Layer: 5 + m_Name: Disabled + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3757096006041649476 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 278209237033386143} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5905673725939681393} + m_Father: {fileID: 1849805973773318956} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4266251414668129679 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 278209237033386143} + m_CullTransparentMesh: 0 +--- !u!114 &8526071061577691930 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 278209237033386143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 09de613d86f12664596eca8860d9c7e4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8470330623702063383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 278209237033386143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 9 +--- !u!1 &437651548349658563 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5905673725939681393} + - component: {fileID: 4733862980839965524} + - component: {fileID: 3750551475442457026} + - component: {fileID: 8106038448279062091} + m_Layer: 5 + m_Name: Pip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5905673725939681393 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 437651548349658563} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3757096006041649476} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 4, y: 0} + m_SizeDelta: {x: 12, y: 12} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &4733862980839965524 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 437651548349658563} + m_CullTransparentMesh: 0 +--- !u!114 &3750551475442457026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 437651548349658563} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 76b0c694066d6224586590780d96ab40, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8106038448279062091 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 437651548349658563} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &670776056433725908 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6324491167454612804} + - component: {fileID: 4332078651428887474} + - component: {fileID: 4223088491339470561} + - component: {fileID: 4044986774978527796} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6324491167454612804 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670776056433725908} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1036509453482947599} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -32, y: -32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4332078651428887474 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670776056433725908} + m_CullTransparentMesh: 0 +--- !u!114 &4223088491339470561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670776056433725908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 33620cc85c18a0742a5a11a1b7d355bb, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4044986774978527796 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670776056433725908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &1062602066430632734 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2231448861624481728} + - component: {fileID: 5561222919400070447} + - component: {fileID: 8095648402447143208} + - component: {fileID: 8083704541265989180} + m_Layer: 5 + m_Name: Cue (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2231448861624481728 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1062602066430632734} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 79330182883448464} + m_Father: {fileID: 7714744148682728941} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 125.655, y: -20} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5561222919400070447 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1062602066430632734} + m_CullTransparentMesh: 0 +--- !u!114 &8095648402447143208 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1062602066430632734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8083704541265989180 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1062602066430632734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 8095648402447143208} + config: {fileID: 11400000, guid: f61575af3474946408f87595370cf4ad, type: 2} +--- !u!1 &1065594806113984664 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2732694387128950099} + m_Layer: 5 + m_Name: Texts + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2732694387128950099 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1065594806113984664} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5891848418056918973} + - {fileID: 2944216593558622940} + m_Father: {fileID: 8537922950741500924} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 16} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &6541854861765558107 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1723553370691889520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &1826751718482536802 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1864299140787126106} + - component: {fileID: 4596326460351166322} + - component: {fileID: 2662075018413301429} + - component: {fileID: 8419098602165579434} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1864299140787126106 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1826751718482536802} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 743474272774364947} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 12.5} + m_SizeDelta: {x: 200, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4596326460351166322 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1826751718482536802} + m_CullTransparentMesh: 0 +--- !u!114 &2662075018413301429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1826751718482536802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Subscribed by + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8419098602165579434 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1826751718482536802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &2238671196662588946 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2426625355572512143} + m_Layer: 5 + m_Name: Bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2426625355572512143 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2238671196662588946} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4151981519395556487} + - {fileID: 6944322035352675174} + m_Father: {fileID: 8537922950741500924} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 16} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &2253983966542804679 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2405739823198044366} + - component: {fileID: 6795458269320529866} + - component: {fileID: 729613142251439353} + m_Layer: 5 + m_Name: Subscription Status + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2405739823198044366 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2253983966542804679} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 113714659785249974} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 762, y: 0} + m_SizeDelta: {x: 120, y: 50} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &6795458269320529866 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2253983966542804679} + m_CullTransparentMesh: 0 +--- !u!114 &729613142251439353 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2253983966542804679} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2340315130770747322 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1950803855573765452} + - component: {fileID: 2785392873651760478} + - component: {fileID: 1718210307105912113} + - component: {fileID: 920459277857220609} + m_Layer: 5 + m_Name: Highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1950803855573765452 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2340315130770747322} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 113714659785249974} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2785392873651760478 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2340315130770747322} + m_CullTransparentMesh: 0 +--- !u!114 &1718210307105912113 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2340315130770747322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d3668b70ec594d84595ed4c98869d80f, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &920459277857220609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2340315130770747322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &2630690766476181588 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7664970507947029092} + - component: {fileID: 4650955229186105158} + - component: {fileID: 6446026289674778923} + - component: {fileID: 3779121301225530635} + m_Layer: 5 + m_Name: Installed status + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7664970507947029092 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2630690766476181588} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 113714659785249974} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 938, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &4650955229186105158 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2630690766476181588} + m_CullTransparentMesh: 0 +--- !u!114 &6446026289674778923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2630690766476181588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &3779121301225530635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2630690766476181588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2660500530164797754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2944216593558622940} + - component: {fileID: 8302031913847672471} + - component: {fileID: 6187786996361240232} + - component: {fileID: 7053959385448215661} + m_Layer: 5 + m_Name: 100% + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2944216593558622940 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2660500530164797754} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2732694387128950099} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 17, y: 0} + m_SizeDelta: {x: 183, y: 25} + m_Pivot: {x: 0, y: 1} +--- !u!222 &8302031913847672471 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2660500530164797754} + m_CullTransparentMesh: 0 +--- !u!114 &6187786996361240232 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2660500530164797754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7053959385448215661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2660500530164797754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &2832098926695837999 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 116100866541814018} + - component: {fileID: 3911180997286932619} + - component: {fileID: 7583327728987158352} + - component: {fileID: 2209823371176648389} + m_Layer: 5 + m_Name: Backplate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &116100866541814018 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2832098926695837999} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3293627095500524164} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 178, y: 100} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &3911180997286932619 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2832098926695837999} + m_CullTransparentMesh: 0 +--- !u!114 &7583327728987158352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2832098926695837999} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2209823371176648389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2832098926695837999} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!1 &2849485769535751352 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1471108528029849527} + - component: {fileID: 7556162264495511425} + - component: {fileID: 8890494109314455900} + - component: {fileID: 5890290977859235631} + m_Layer: 5 + m_Name: Disabled Black Overlay + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1471108528029849527 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2849485769535751352} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 113714659785249974} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7556162264495511425 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2849485769535751352} + m_CullTransparentMesh: 0 +--- !u!114 &8890494109314455900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2849485769535751352} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.69803923} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5890290977859235631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2849485769535751352} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &2906105796921353220 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8537922950741500924} + - component: {fileID: 1726242790674234642} + m_Layer: 5 + m_Name: Install progress bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8537922950741500924 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2906105796921353220} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2732694387128950099} + - {fileID: 2426625355572512143} + m_Father: {fileID: 113714659785249974} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 938, y: 0} + m_SizeDelta: {x: 200, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1726242790674234642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2906105796921353220} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &2992480905522547583 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3634280317665104004} + - component: {fileID: 461333937589062405} + - component: {fileID: 7962368163443996044} + - component: {fileID: 3586045642831075485} + m_Layer: 5 + m_Name: Disabled + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3634280317665104004 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2992480905522547583} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7210658838644033645} + - {fileID: 2221286986942876592} + m_Father: {fileID: 1849805973773318956} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &461333937589062405 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2992480905522547583} + m_CullTransparentMesh: 0 +--- !u!114 &7962368163443996044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2992480905522547583} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 09de613d86f12664596eca8860d9c7e4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3586045642831075485 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2992480905522547583} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 7 +--- !u!1 &3171000919503422922 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3634615156747506924} + m_Layer: 5 + m_Name: Error + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3634615156747506924 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3171000919503422922} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4894422923540724298} + - {fileID: 7679633267068765632} + m_Father: {fileID: 113714659785249974} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 158, y: 0} + m_SizeDelta: {x: 100, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3258041346095616817 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2916284387439446854} + - component: {fileID: 2012823580089974070} + - component: {fileID: 6599598633171143026} + - component: {fileID: 8264143994879099648} + - component: {fileID: 8922628120676779857} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2916284387439446854 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3258041346095616817} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2302551099618499894} + - {fileID: 4330471724453961036} + - {fileID: 4373173676742336037} + m_Father: {fileID: 1849805973773318956} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2012823580089974070 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3258041346095616817} + m_CullTransparentMesh: 0 +--- !u!114 &6599598633171143026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3258041346095616817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8264143994879099648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3258041346095616817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &8922628120676779857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3258041346095616817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &3359294848362414001 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5192246128776837451} + - component: {fileID: 8503341893232297056} + - component: {fileID: 141297357844714016} + - component: {fileID: 1506454166883856174} + m_Layer: 5 + m_Name: File size + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5192246128776837451 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3359294848362414001} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 113714659785249974} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 1194, y: 0} + m_SizeDelta: {x: 80, y: 50} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &8503341893232297056 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3359294848362414001} + m_CullTransparentMesh: 0 +--- !u!114 &141297357844714016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3359294848362414001} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1506454166883856174 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3359294848362414001} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &4040134989050488775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4330471724453961036} + - component: {fileID: 6799171235008037669} + - component: {fileID: 1062410639413511614} + - component: {fileID: 9051921068292127421} + m_Layer: 5 + m_Name: failed to load + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4330471724453961036 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4040134989050488775} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2170259513111557675} + m_Father: {fileID: 2916284387439446854} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 178, y: 100} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &6799171235008037669 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4040134989050488775} + m_CullTransparentMesh: 0 +--- !u!114 &1062410639413511614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4040134989050488775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4509804, g: 0.4627451, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9051921068292127421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4040134989050488775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 7 +--- !u!1 &4270840703474940579 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1239013929253554174} + - component: {fileID: 4011154091317095696} + - component: {fileID: 9152907152001582118} + - component: {fileID: 7294422082254153830} + m_Layer: 5 + m_Name: ImageBackground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1239013929253554174 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4270840703474940579} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5399081351752418213} + m_Father: {fileID: 3293627095500524164} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 178, y: 100} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &4011154091317095696 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4270840703474940579} + m_CullTransparentMesh: 0 +--- !u!114 &9152907152001582118 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4270840703474940579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7294422082254153830 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4270840703474940579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!1 &4427296508223350197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8259993504515959527} + - component: {fileID: 83979001375084713} + - component: {fileID: 610106942421428467} + - component: {fileID: 2918851775254793460} + m_Layer: 5 + m_Name: Pending pip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8259993504515959527 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4427296508223350197} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 113714659785249974} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 950, y: 0} + m_SizeDelta: {x: 8, y: 8} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &83979001375084713 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4427296508223350197} + m_CullTransparentMesh: 0 +--- !u!114 &610106942421428467 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4427296508223350197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d68cf6dfa268b9044b39799c19a3d3a1, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2918851775254793460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4427296508223350197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 8 +--- !u!114 &4343195334958863686 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4705180814272410466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &4724016937625856850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6944322035352675174} + - component: {fileID: 146398262960972761} + - component: {fileID: 5927824835867038325} + - component: {fileID: 8315360428575148350} + m_Layer: 5 + m_Name: Progress + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6944322035352675174 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4724016937625856850} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2426625355572512143} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 166, y: 4} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &146398262960972761 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4724016937625856850} + m_CullTransparentMesh: 0 +--- !u!114 &5927824835867038325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4724016937625856850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.49411765, g: 0.9372549, b: 0.54901963, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 0 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8315360428575148350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4724016937625856850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 8 +--- !u!1 &4824985113748856835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5891848418056918973} + - component: {fileID: 1220647767282055880} + - component: {fileID: 2732145520352406495} + - component: {fileID: 1965341225573620980} + m_Layer: 5 + m_Name: Installing... + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5891848418056918973 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4824985113748856835} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2732694387128950099} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 17, y: 0} + m_SizeDelta: {x: 183, y: 25} + m_Pivot: {x: 0, y: 1} +--- !u!222 &1220647767282055880 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4824985113748856835} + m_CullTransparentMesh: 0 +--- !u!114 &2732145520352406495 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4824985113748856835} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1965341225573620980 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4824985113748856835} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &4845654598680554399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4373173676742336037} + - component: {fileID: 5556447577169782478} + - component: {fileID: 7769751851440012941} + - component: {fileID: 3750428749106503114} + m_Layer: 5 + m_Name: ImageBackground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4373173676742336037 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4845654598680554399} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 527028133715961318} + m_Father: {fileID: 2916284387439446854} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 178, y: 100} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &5556447577169782478 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4845654598680554399} + m_CullTransparentMesh: 0 +--- !u!114 &7769751851440012941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4845654598680554399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3750428749106503114 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4845654598680554399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!1 &5082797260207045638 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4031286190289146972} + - component: {fileID: 8886951866138284227} + - component: {fileID: 6684698180033346319} + - component: {fileID: 4039245441759410510} + m_Layer: 5 + m_Name: other users + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4031286190289146972 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5082797260207045638} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 743474272774364947} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8886951866138284227 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5082797260207045638} + m_CullTransparentMesh: 0 +--- !u!114 &6684698180033346319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5082797260207045638} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &4039245441759410510 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5082797260207045638} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292395271 + m_fontColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5399081351301501449 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5399081351301501448} + - component: {fileID: 655113946077858125} + - component: {fileID: 6666118779741895173} + m_Layer: 5 + m_Name: CollectionListItem_Regular + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5399081351301501448 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5399081351301501449} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 9160407743435179914} + - {fileID: 113714659785249974} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1760, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &655113946077858125 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5399081351301501449} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d000201382bceab4ca2b89a8e3ae59b6, type: 3} + m_Name: + m_EditorClassIdentifier: + viewportRestraint: {fileID: 0} + selectable: {fileID: 6666118779741895173} + isPlaceholder: 0 + colorSetters: + - {fileID: 3454086689806437973} + - {fileID: 2209823371176648389} + - {fileID: 920459277857220609} + - {fileID: 1203417114425642678} + - {fileID: 8419098602165579434} + - {fileID: 6684698180033346319} + - {fileID: 6446026289674778923} + - {fileID: 1965341225573620980} + - {fileID: 7053959385448215661} + - {fileID: 5816989642154511884} + - {fileID: 8315360428575148350} + - {fileID: 1506454166883856174} + - {fileID: 9192801171979261548} + - {fileID: 5059468868599910138} + - {fileID: 8108929388594431505} + - {fileID: 1504983455250688974} + - {fileID: 6684698180033346319} + - {fileID: 8419098602165579434} + - {fileID: 1965341225573620980} + - {fileID: 7053959385448215661} + - {fileID: 5816989642154511884} + - {fileID: 8315360428575148350} + buttons: + - {fileID: 6666118779741895173} + - {fileID: 1051293318688878968} + - {fileID: 1647707682149455623} + dropdowns: [] + toggles: + - {fileID: 4530999248192634743} + scheme: {fileID: 0} + listItemButton: {fileID: 6666118779741895173} + image: {fileID: 5399081351752418212} + imageBackground: {fileID: 4270840703474940579} + title: {fileID: 376090158510697534} + progressBar: {fileID: 2906105796921353220} + progressBarFill: {fileID: 5927824835867038325} + progressBarText: {fileID: 2732145520352406495} + progressBarPercentageText: {fileID: 6187786996361240232} + subscriptionStatus: {fileID: 729613142251439353} + installStatus: {fileID: 3779121301225530635} + fileSize: {fileID: 141297357844714016} + unsubscribeButton: {fileID: 1051293318688878968} + otherSubscribersText: {fileID: 4039245441759410510} + moreOptionsButton: {fileID: 1647707682149455623} + failedToLoadLogo: {fileID: 8232258920459553127} + errorInstalling: {fileID: 3171000919503422922} + errorInstallingText: {fileID: 6807855490064548816} + contextMenuPosition: {fileID: 7028362615344757754} + enabledOrDisabledToggle: {fileID: 4530999248192634743} + disabledBlackOverlay: {fileID: 2849485769535751352} +--- !u!114 &6666118779741895173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5399081351301501449} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 4530999248192634743} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1718210307105912113} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 655113946077858125} + m_MethodName: OpenModDetailsForThisProfile + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 216466329125358502} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 0} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 0} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 423546ea7805256409409fecffa70f1a, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 423546ea7805256409409fecffa70f1a, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 423546ea7805256409409fecffa70f1a, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: + - {fileID: 1051293318688878968} + - {fileID: 1647707682149455623} +--- !u!1 &5399081351752418210 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5399081351752418213} + - component: {fileID: 5399081351752418215} + - component: {fileID: 5399081351752418212} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5399081351752418213 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5399081351752418210} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1239013929253554174} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 178, y: 100} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &5399081351752418215 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5399081351752418210} + m_CullTransparentMesh: 0 +--- !u!114 &5399081351752418212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5399081351752418210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5733177047011673517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 79330182883448464} + - component: {fileID: 5174706923099346301} + - component: {fileID: 8030540184389985832} + - component: {fileID: 4648007789563020197} + m_Layer: 5 + m_Name: Cue (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &79330182883448464 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5733177047011673517} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2231448861624481728} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 12, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5174706923099346301 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5733177047011673517} + m_CullTransparentMesh: 0 +--- !u!114 &8030540184389985832 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5733177047011673517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 254acc7aafd98ab4586b41fb9c0c1bee, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4648007789563020197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5733177047011673517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 8030540184389985832} + config: {fileID: 11400000, guid: 7d70f9fe2efe2f6419f680ba2604b7d7, type: 2} +--- !u!1 &5877338562339009005 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2221286986942876592} + - component: {fileID: 4407550850984128244} + - component: {fileID: 1185927117435694043} + - component: {fileID: 9196647970335656212} + m_Layer: 5 + m_Name: Disabled Black Overlay + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2221286986942876592 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5877338562339009005} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3634280317665104004} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 80, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4407550850984128244 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5877338562339009005} + m_CullTransparentMesh: 0 +--- !u!114 &1185927117435694043 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5877338562339009005} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.69803923} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9196647970335656212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5877338562339009005} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5877692840617659411 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7281102042040642982} + - component: {fileID: 3056126953157027279} + - component: {fileID: 376090158510697534} + - component: {fileID: 1203417114425642678} + - component: {fileID: 25559400916243965} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7281102042040642982 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5877692840617659411} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 113714659785249974} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 225, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &3056126953157027279 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5877692840617659411} + m_CullTransparentMesh: 0 +--- !u!114 &376090158510697534 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5877692840617659411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1203417114425642678 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5877692840617659411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &25559400916243965 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5877692840617659411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &6149179231653121692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4151981519395556487} + - component: {fileID: 9120162450876264973} + - component: {fileID: 7344620244925126205} + - component: {fileID: 5816989642154511884} + m_Layer: 5 + m_Name: Back + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4151981519395556487 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6149179231653121692} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2426625355572512143} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 164, y: 4} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &9120162450876264973 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6149179231653121692} + m_CullTransparentMesh: 0 +--- !u!114 &7344620244925126205 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6149179231653121692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.15686275} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5816989642154511884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6149179231653121692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &6332957480092521633 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 527028133715961318} + - component: {fileID: 6237890823837258376} + - component: {fileID: 766562145115921746} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &527028133715961318 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6332957480092521633} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4373173676742336037} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 178, y: 100} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &6237890823837258376 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6332957480092521633} + m_CullTransparentMesh: 0 +--- !u!114 &766562145115921746 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6332957480092521633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6371492348197631423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 743474272774364947} + - component: {fileID: 4664355677854123747} + m_Layer: 5 + m_Name: Other Subscribers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &743474272774364947 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6371492348197631423} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1864299140787126106} + - {fileID: 4031286190289146972} + m_Father: {fileID: 113714659785249974} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -838, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &4664355677854123747 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6371492348197631423} + m_CullTransparentMesh: 0 +--- !u!1 &6394935411717292892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4894422923540724298} + - component: {fileID: 4093339613889540566} + - component: {fileID: 6807855490064548816} + - component: {fileID: 1504983455250688974} + - component: {fileID: 3444550616110170774} + m_Layer: 5 + m_Name: Error + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4894422923540724298 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6394935411717292892} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3634615156747506924} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 26.8, y: 13.41} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &4093339613889540566 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6394935411717292892} + m_CullTransparentMesh: 0 +--- !u!114 &6807855490064548816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6394935411717292892} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Error + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4283782107 + m_fontColor: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1504983455250688974 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6394935411717292892} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 9 +--- !u!114 &3444550616110170774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6394935411717292892} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &6772652851717044306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3293627095500524164} + - component: {fileID: 5152702760408327480} + - component: {fileID: 1991724947727686647} + - component: {fileID: 4257466606422874237} + - component: {fileID: 3454086689806437973} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3293627095500524164 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6772652851717044306} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 116100866541814018} + - {fileID: 5703983034753798845} + - {fileID: 1036509453482947599} + - {fileID: 1239013929253554174} + m_Father: {fileID: 113714659785249974} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5152702760408327480 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6772652851717044306} + m_CullTransparentMesh: 0 +--- !u!114 &1991724947727686647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6772652851717044306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4257466606422874237 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6772652851717044306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &3454086689806437973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6772652851717044306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &6773648394169395507 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9160407743435179914} + m_Layer: 5 + m_Name: Enable/disable Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9160407743435179914 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6773648394169395507} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1849805973773318956} + m_Father: {fileID: 5399081351301501448} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 80, y: 100} + m_Pivot: {x: 0, y: 1} +--- !u!1 &6856913606929822646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2170259513111557675} + - component: {fileID: 5758774032329333168} + - component: {fileID: 8553988360531964804} + - component: {fileID: 6852284214263025722} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2170259513111557675 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6856913606929822646} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4330471724453961036} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -32, y: -32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5758774032329333168 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6856913606929822646} + m_CullTransparentMesh: 0 +--- !u!114 &8553988360531964804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6856913606929822646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 33620cc85c18a0742a5a11a1b7d355bb, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6852284214263025722 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6856913606929822646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &6862149238093584161 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7210658838644033645} + - component: {fileID: 1500855049295291923} + - component: {fileID: 5163036650625337603} + - component: {fileID: 2802700546830693373} + m_Layer: 5 + m_Name: Pip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7210658838644033645 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6862149238093584161} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3634280317665104004} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 12, y: 12} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1500855049295291923 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6862149238093584161} + m_CullTransparentMesh: 0 +--- !u!114 &5163036650625337603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6862149238093584161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 76b0c694066d6224586590780d96ab40, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2802700546830693373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6862149238093584161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &6891507828873358616 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1849805973773318956} + - component: {fileID: 4530999248192634743} + m_Layer: 5 + m_Name: Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1849805973773318956 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6891507828873358616} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2916284387439446854} + - {fileID: 2888228506229181211} + - {fileID: 3757096006041649476} + - {fileID: 4591513724566485431} + - {fileID: 3634280317665104004} + m_Father: {fileID: 9160407743435179914} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4530999248192634743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6891507828873358616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c834cada87fd6a740a2602fcb50cc1f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 0} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3132991723850654584} + toggleTransition: 0 + graphic: {fileID: 0} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 + scheme: {fileID: 0} + extraTargets: [] + targetIsOnIndicator: {fileID: 8642870508628944701} + targetIsDisabledIndicator: {fileID: 2992480905522547583} +--- !u!1 &7835531490885889230 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7679633267068765632} + - component: {fileID: 4849345109136113609} + - component: {fileID: 8891731113101755804} + - component: {fileID: 8108929388594431505} + m_Layer: 5 + m_Name: Pip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7679633267068765632 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7835531490885889230} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3634615156747506924} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -12, y: 0} + m_SizeDelta: {x: 8, y: 8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4849345109136113609 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7835531490885889230} + m_CullTransparentMesh: 0 +--- !u!114 &8891731113101755804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7835531490885889230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8108929388594431505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7835531490885889230} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 9 +--- !u!1 &8232258920459553127 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1036509453482947599} + - component: {fileID: 3552127717768402281} + - component: {fileID: 4883592826128403126} + - component: {fileID: 4249710306630901782} + m_Layer: 5 + m_Name: failed to load + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1036509453482947599 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8232258920459553127} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6324491167454612804} + m_Father: {fileID: 3293627095500524164} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 178, y: 100} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &3552127717768402281 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8232258920459553127} + m_CullTransparentMesh: 0 +--- !u!114 &4883592826128403126 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8232258920459553127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4509804, g: 0.4627451, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4249710306630901782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8232258920459553127} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 7 +--- !u!1 &8310854889324935387 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 113714659785249974} + m_Layer: 5 + m_Name: Collection Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &113714659785249974 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8310854889324935387} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3293627095500524164} + - {fileID: 1950803855573765452} + - {fileID: 7281102042040642982} + - {fileID: 2405739823198044366} + - {fileID: 743474272774364947} + - {fileID: 8259993504515959527} + - {fileID: 3634615156747506924} + - {fileID: 7664970507947029092} + - {fileID: 8537922950741500924} + - {fileID: 5192246128776837451} + - {fileID: 1471108528029849527} + - {fileID: 7714744148682728941} + - {fileID: 7028362615344757754} + m_Father: {fileID: 5399081351301501448} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 45, y: 0} + m_SizeDelta: {x: -90, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &8533203704263648396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 309386966248760357} + - component: {fileID: 7719887128128769884} + - component: {fileID: 2873732572309635545} + - component: {fileID: 54609831448112945} + m_Layer: 5 + m_Name: Pip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &309386966248760357 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8533203704263648396} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4591513724566485431} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -4, y: 0} + m_SizeDelta: {x: 12, y: 12} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &7719887128128769884 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8533203704263648396} + m_CullTransparentMesh: 0 +--- !u!114 &2873732572309635545 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8533203704263648396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 76b0c694066d6224586590780d96ab40, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &54609831448112945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8533203704263648396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &8642870508628944701 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4591513724566485431} + - component: {fileID: 3220541331486854435} + - component: {fileID: 7120948429852339506} + - component: {fileID: 8710820138100654889} + m_Layer: 5 + m_Name: Enabled + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4591513724566485431 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8642870508628944701} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 309386966248760357} + m_Father: {fileID: 1849805973773318956} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3220541331486854435 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8642870508628944701} + m_CullTransparentMesh: 0 +--- !u!114 &7120948429852339506 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8642870508628944701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.49411765, g: 0.9372549, b: 0.54901963, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 09de613d86f12664596eca8860d9c7e4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8710820138100654889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8642870508628944701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 8 +--- !u!1 &8793150867915408866 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2888228506229181211} + - component: {fileID: 6436314886016059284} + - component: {fileID: 3132991723850654584} + - component: {fileID: 7660936396211998889} + m_Layer: 5 + m_Name: Highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2888228506229181211 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8793150867915408866} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1849805973773318956} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6436314886016059284 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8793150867915408866} + m_CullTransparentMesh: 0 +--- !u!114 &3132991723850654584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8793150867915408866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d3668b70ec594d84595ed4c98869d80f, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7660936396211998889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8793150867915408866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1001 &182033191946932687 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3293627095500524164} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -741 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &5703983034753798845 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 182033191946932687} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5196762379099460668 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 113714659785249974} + m_Modifications: + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.characterCount + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 73.5 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 147 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -93.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629754, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: More options + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].isControllerButtonIcon + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 655113946077858125} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: ShowMoreOptions + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 71af8a9a5a69a5648af22465acf51a99, type: 3} +--- !u!224 &7028362615344757754 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 5196762379099460668} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1647707682149455623 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 5196762379099460668} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5059468868599910138 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1020140050670541510, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 5196762379099460668} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5934168051346513476 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2916284387439446854} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -741 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &2302551099618499894 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 5934168051346513476} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7717262945480287675 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 113714659785249974} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 147 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: -187 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Unsubscribe Button + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5303711281568416601, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Text + value: Unsubscribe + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 73.5 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Transition + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TargetGraphic + value: + objectReference: {fileID: 216466329125358502} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_PressedColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_PressedColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Colors.m_PressedColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SpriteState.m_PressedSprite + value: + objectReference: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SpriteState.m_DisabledSprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].target + value: + objectReference: {fileID: 216466329125358502} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].target + value: + objectReference: {fileID: 8095648402447143208} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].target + value: + objectReference: {fileID: 8095648402447143208} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SpriteState.m_HighlightedSprite + value: + objectReference: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].transition + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].transition + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].transition + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].enableOnPressed + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnPressed + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].enableOnHighlight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnHighlight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].isControllerButtonIcon + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_NormalColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].isControllerButtonIcon + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.Normal + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_PressedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_PressedColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_PressedColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_PressedColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Normal + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.Pressed + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_DisabledColor.a + value: 0.5019608 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_DisabledColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_DisabledColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_DisabledColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_SelectedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_SelectedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_SelectedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_SelectedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Pressed + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.a + value: 0.5019608 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.Disabled + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Disabled + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].spriteState.m_PressedSprite + value: + objectReference: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, + type: 3} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].spriteState.m_PressedSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_HighlightedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_HighlightedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_HighlightedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colors.m_HighlightedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].spriteState.m_DisabledSprite + value: + objectReference: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, + type: 3} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].spriteState.m_DisabledSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.Highlighted + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Highlighted + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[0].spriteState.m_HighlightedSprite + value: + objectReference: {fileID: 21300000, guid: 423546ea7805256409409fecffa70f1a, + type: 3} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].spriteState.m_HighlightedSprite + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 655113946077858125} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[1].colorSchemeBlock.ColorMultiplier + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].animationTriggers.m_NormalTrigger + value: Normal + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.NormalColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_NormalTrigger + value: Normal + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.NormalColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].animationTriggers.m_PressedTrigger + value: Pressed + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.PressedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_PressedTrigger + value: Pressed + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.PressedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].animationTriggers.m_DisabledTrigger + value: Disabled + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].animationTriggers.m_SelectedTrigger + value: Selected + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.DisabledColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_DisabledTrigger + value: Disabled + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.DisabledColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: UnsubscribeButton + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].animationTriggers.m_HighlightedTrigger + value: Highlighted + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[2].colorSchemeBlock.HighlightedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_HighlightedTrigger + value: Highlighted + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.HighlightedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Unsubscribe + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &216466329125358502 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7500801496791559709, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7717262945480287675} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4705180814272410466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1051293318688878968 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7717262945480287675} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4705180814272410466} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1723553370691889520 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7717262945480287675} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9192801171979261548 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1480094620036461527, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7717262945480287675} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1723553370691889520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &4705180814272410466 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7717262945480287675} + m_PrefabAsset: {fileID: 0} +--- !u!224 &7714744148682728941 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 7717262945480287675} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Prefabs/Collections/CollectionListItem_Regular.prefab.meta b/UI/Prefabs/Collections/CollectionListItem_Regular.prefab.meta new file mode 100644 index 0000000..9f44c1e --- /dev/null +++ b/UI/Prefabs/Collections/CollectionListItem_Regular.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c600792c13623e541b06d9c2d0bb43ff +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Collections/Mod Collection.prefab b/UI/Prefabs/Collections/Mod Collection.prefab new file mode 100644 index 0000000..f394dc2 --- /dev/null +++ b/UI/Prefabs/Collections/Mod Collection.prefab @@ -0,0 +1,2779 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &6269981553373584433 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 137864518997446136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78a172db96e209b41a0f30a5676688e3, type: 3} + m_Name: + m_EditorClassIdentifier: + PercentPaddingHorizontal: 0.05 + PercentPaddingVertical: 0.3 + adjustHorizontally: 0 + adjustVertically: 1 + Viewport: {fileID: 3151635505209770844} + DefaultViewportContainer: {fileID: 5567694270593401296} + HorizontalViewportContainer: {fileID: 0} +--- !u!1 &3151635504395830646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3151635504395830647} + - component: {fileID: 3151635504395830645} + - component: {fileID: 3151635504395830644} + m_Layer: 5 + m_Name: Dropdowns / Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3151635504395830647 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635504395830646} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3149604813776903031} + - {fileID: 6878629681347413738} + - {fileID: 6878629680744723257} + m_Father: {fileID: 3151635506055778414} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -80, y: -288} + m_SizeDelta: {x: 633, y: 48} + m_Pivot: {x: 1, y: 1} +--- !u!114 &3151635504395830645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635504395830646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 5 + m_Spacing: 16 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &3151635504395830644 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635504395830646} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &3151635504402113876 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3151635504402113877} + - component: {fileID: 3151635504402113704} + - component: {fileID: 3151635504402113707} + - component: {fileID: 3151635504402113706} + - component: {fileID: 3151635504402113705} + - component: {fileID: 8439952582152048952} + m_Layer: 5 + m_Name: Collection title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3151635504402113877 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635504402113876} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5567694270593401296} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -200} + m_SizeDelta: {x: 272, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &3151635504402113704 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635504402113876} + m_CullTransparentMesh: 0 +--- !u!114 &3151635504402113707 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635504402113876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Collection + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3151635504402113706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635504402113876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3151635504402113705 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635504402113876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &8439952582152048952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635504402113876} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Collection + text: {fileID: 3151635504402113707} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &3151635505209770847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3151635505209770844} + - component: {fileID: 4940903284276904462} + m_Layer: 5 + m_Name: Mod Collection + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3151635505209770844 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635505209770847} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5567694271163062418} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4940903284276904462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635505209770847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 25058e2ef49af6545a955cef5bced6cb, type: 3} + m_Name: + m_EditorClassIdentifier: + CollectionPanel: {fileID: 3151635505209770847} + CollectionPanelTitle: {fileID: 3151635504402113707} + CollectionPanelSearchField: {fileID: 1783760717265289501} + CollectionPanelModListItem: {fileID: 5399081351301501449, guid: c600792c13623e541b06d9c2d0bb43ff, + type: 3} + CollectionPanelContentParent: {fileID: 5567694270593401296} + CollectionPanelContentScrollBar: {fileID: 5567694271374581542} + CollectionPanelModListItemParent: {fileID: 3151635506019421431} + CollectionPanelCheckForUpdatesText: {fileID: 6702591707353892608} + CollectionPanelCheckForUpdatesButton: {fileID: 5634869264469495778} + CollectionPanelFirstDropDownFilter: {fileID: 6878629681347413742} + CollectionPanelSecondDropDownFilter: {fileID: 6878629680744723261} + CollectionPanelHeaderBackground: {fileID: 3151635506126467888} + defaultCollectionSelection: {fileID: 5634869264469495778} + pendingSubscriptions: [] + uninstallConfirmationPanel: {fileID: 0} + uninstallConfirmationPanelModName: {fileID: 0} + uninstallConfirmationPanelFileSize: {fileID: 0} +--- !u!1 &3151635506019421430 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3151635506019421431} + - component: {fileID: 3151635506019421429} + - component: {fileID: 3151635506019421428} + m_Layer: 5 + m_Name: Collection List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3151635506019421431 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635506019421430} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5567694270593401296} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 960.00006, y: -424} + m_SizeDelta: {x: 1760, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &3151635506019421429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635506019421430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 16 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &3151635506019421428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635506019421430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &3151635506055778409 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3151635506055778414} + - component: {fileID: 3151635506055778415} + m_Layer: 5 + m_Name: Filtering + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3151635506055778414 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635506055778409} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1783760717028934074} + - {fileID: 3151635504395830647} + m_Father: {fileID: 5567694270593401296} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 960, y: 0} + m_SizeDelta: {x: 1920, y: 350} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &3151635506055778415 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635506055778409} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &3151635506126467900 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3151635506126467901} + - component: {fileID: 3151635506126467891} + - component: {fileID: 3151635506126467888} + - component: {fileID: 3151635506126467890} + m_Layer: 5 + m_Name: HeaderBackground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3151635506126467901 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635506126467900} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5567694271163062418} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 120} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3151635506126467891 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635506126467900} + m_CullTransparentMesh: 0 +--- !u!114 &3151635506126467888 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635506126467900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3151635506126467890 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3151635506126467900} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!33 &5567694271606475182 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5528126483349401153} + m_Mesh: {fileID: 0} +--- !u!114 &5567694271606475181 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5528126483349401153} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Sort by:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!33 &3151635504698816116 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5528126484086840210} + m_Mesh: {fileID: 0} +--- !u!114 &3151635504698816117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5528126484086840210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Filter by:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5567694270438232457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5567694270438232456} + - component: {fileID: 5567694270438232455} + m_Layer: 5 + m_Name: Empty Footer Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5567694270438232456 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694270438232457} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5567694270593401296} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 960, y: -650} + m_SizeDelta: {x: 1920, y: 400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5567694270438232455 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694270438232457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5567694270593401297 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5567694270593401296} + - component: {fileID: 5567694270593401294} + - component: {fileID: 5567694270593401295} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5567694270593401296 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694270593401297} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3151635504402113877} + - {fileID: 3151635506055778414} + - {fileID: 3151635506019421431} + - {fileID: 5567694270438232456} + m_Father: {fileID: 5567694271163062418} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 982} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &5567694270593401294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694270593401297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 424 + m_Bottom: 558 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &5567694270593401295 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694270593401297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &5567694271035127429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5567694271035127428} + - component: {fileID: 5567694271035127425} + - component: {fileID: 5567694271035127426} + - component: {fileID: 5567694271035127427} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5567694271035127428 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271035127429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5567694271395639795} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5567694271035127425 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271035127429} + m_CullTransparentMesh: 0 +--- !u!114 &5567694271035127426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271035127429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5567694271035127427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271035127429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &5567694271163062419 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5567694271163062418} + - component: {fileID: 5567694271163062414} + - component: {fileID: 5567694271163062415} + - component: {fileID: 5567694271163062416} + - component: {fileID: 5567694271163062417} + m_Layer: 5 + m_Name: Main View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5567694271163062418 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271163062419} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5567694271374581543} + - {fileID: 5567694270593401296} + - {fileID: 3151635506126467901} + m_Father: {fileID: 3151635505209770844} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5567694271163062414 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271163062419} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 5567694270593401296} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.1 + m_ScrollSensitivity: 100 + m_Viewport: {fileID: 5567694271163062418} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 5567694271374581542} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 1 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &5567694271163062415 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271163062419} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!222 &5567694271163062416 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271163062419} + m_CullTransparentMesh: 0 +--- !u!114 &5567694271163062417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271163062419} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.003921569} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5567694271374581544 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5567694271374581543} + - component: {fileID: 5567694271374581540} + - component: {fileID: 5567694271374581541} + - component: {fileID: 5567694271374581542} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5567694271374581543 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271374581544} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5567694271395639795} + m_Father: {fileID: 5567694271163062418} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -8, y: -50.00049} + m_SizeDelta: {x: 8, y: -180} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5567694271374581540 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271374581544} + m_CullTransparentMesh: 0 +--- !u!114 &5567694271374581541 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271374581544} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5567694271374581542 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271374581544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5567694271035127426} + m_HandleRect: {fileID: 5567694271035127428} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 4940903284276904462} + m_MethodName: OnScrollValueChange + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &5567694271395639796 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5567694271395639795} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5567694271395639795 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5567694271395639796} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5567694271035127428} + m_Father: {fileID: 5567694271374581543} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6269981554072213852 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6878629680744723256} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78a172db96e209b41a0f30a5676688e3, type: 3} + m_Name: + m_EditorClassIdentifier: + PercentPaddingHorizontal: 0.05 + PercentPaddingVertical: 0.3 + adjustHorizontally: 0 + adjustVertically: 1 + Viewport: {fileID: 3151635505209770844} + DefaultViewportContainer: {fileID: 5567694270593401296} + HorizontalViewportContainer: {fileID: 0} +--- !u!114 &6269981552436245065 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6878629681347413739} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78a172db96e209b41a0f30a5676688e3, type: 3} + m_Name: + m_EditorClassIdentifier: + PercentPaddingHorizontal: 0.05 + PercentPaddingVertical: 0.3 + adjustHorizontally: 0 + adjustVertically: 1 + Viewport: {fileID: 3151635505209770844} + DefaultViewportContainer: {fileID: 5567694270593401296} + HorizontalViewportContainer: {fileID: 0} +--- !u!114 &8275668409451314581 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9095449701689612657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Enter keyword + text: {fileID: 9095449701689612660} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1001 &3151635504411107861 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3151635504395830647} + m_Modifications: + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 74.16 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 60.715 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 53.59 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 13.41 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.b + value: 0.84313726 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.g + value: 0.76862746 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.r + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor32.rgba + value: 4292330689 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7846642549727048830, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Text + value: 'Sort by:' + objectReference: {fileID: 0} + - target: {fileID: 7846642549727048830, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7846642549727048830, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_FontData.m_FontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 7926923080811124048, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.b + value: 0.84705883 + objectReference: {fileID: 0} + - target: {fileID: 7926923080811124048, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.g + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 7926923080811124048, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.r + value: 0.02745098 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_text + value: Alphabetical + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Navigation.m_SelectOnLeft + value: + objectReference: {fileID: 6878629681347413742} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Options.m_Options.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Options.m_Options.Array.data[0].m_Text + value: Alphabetical + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Options.m_Options.Array.data[1].m_Text + value: File size + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4940903284276904462} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: RefreshList + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 212 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 633 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -24 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031213, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Name + value: Sort order + objectReference: {fileID: 0} + - target: {fileID: 8415282165186696093, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 743f32884109b9b479d408b546e30dc2, + type: 3} + - target: {fileID: 8415282165186696093, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165435699408, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282166080464473, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282166446179739, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282166504170330, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 8415282166519795444, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282166793483452, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9030708627163966507, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: -70 + objectReference: {fileID: 0} + - target: {fileID: 9030708627163966507, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -15 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7846642549727048830, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, type: 3} + - {fileID: 8415282165173031211, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, type: 3} +--- !u!1 &6878629680744723256 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8415282165173031213, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 3151635504411107861} + m_PrefabAsset: {fileID: 0} +--- !u!224 &6878629680744723257 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 3151635504411107861} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6878629680744723261 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 3151635504411107861} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6878629680744723256} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7f173c11dfda5a4c9a9860f473a14b7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5528126483349401153 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7425031109443226708, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 3151635504411107861} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3151635504595376929 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3151635504395830647} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 177 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Check for updates + objectReference: {fileID: 0} + - target: {fileID: 5303711281568416601, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Text + value: Check for updates + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnLeft + value: + objectReference: {fileID: 1783760717265289501} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnRight + value: + objectReference: {fileID: 6878629681347413742} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4940903284276904462} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CheckForUpdates + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Check for updates + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &137864518997446136 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3151635504595376929} + m_PrefabAsset: {fileID: 0} +--- !u!224 &3149604813776903031 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3151635504595376929} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5634869264469495778 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3151635504595376929} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 137864518997446136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6702591707353892608 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3151635504595376929} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &3151635504747403206 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3151635504395830647} + m_Modifications: + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 40.57 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 77.509995 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 53.59 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 13.41 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.b + value: 0.84313726 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.g + value: 0.76862746 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.r + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor32.rgba + value: 4292330689 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7846642549727048830, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Text + value: 'Filter by:' + objectReference: {fileID: 0} + - target: {fileID: 7846642549727048830, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7846642549727048830, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_FontData.m_FontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 7926923080811124048, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.b + value: 0.84705883 + objectReference: {fileID: 0} + - target: {fileID: 7926923080811124048, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.g + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 7926923080811124048, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.r + value: 0.02745098 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_text + value: English + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_NormalColor.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_NormalColor.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_NormalColor.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_PressedColor.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_PressedColor.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_PressedColor.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_SelectedColor.a + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_SelectedColor.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_SelectedColor.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_SelectedColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Navigation.m_SelectOnLeft + value: + objectReference: {fileID: 5634869264469495778} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Navigation.m_SelectOnRight + value: + objectReference: {fileID: 6878629680744723261} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Options.m_Options.Array.data[0].m_Text + value: Subscribed + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4940903284276904462} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: RefreshList + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 212 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 405 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -24 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031213, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Name + value: Filter + objectReference: {fileID: 0} + - target: {fileID: 8415282165186696093, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 743f32884109b9b479d408b546e30dc2, + type: 3} + - target: {fileID: 8415282165186696093, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165435699408, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282166080464473, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282166446179739, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282166504170330, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 8415282166519795444, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282166793483452, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9030708627163966507, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: -70 + objectReference: {fileID: 0} + - target: {fileID: 9030708627163966507, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -15 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7846642549727048830, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, type: 3} +--- !u!1 &6878629681347413739 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8415282165173031213, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 3151635504747403206} + m_PrefabAsset: {fileID: 0} +--- !u!224 &6878629681347413738 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 3151635504747403206} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6878629681347413742 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 3151635504747403206} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6878629681347413739} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7f173c11dfda5a4c9a9860f473a14b7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5528126484086840210 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7425031109443226708, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 3151635504747403206} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5729318027836886428 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3151635506055778414} + m_Modifications: + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_fontColor32.rgba + value: 2164260863 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4361742436300990387, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: keyboardtype + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4361742436300990387, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: inputFieldTitle + value: Filter by name + objectReference: {fileID: 0} + - target: {fileID: 4361742436300990387, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: inputFieldPlaceholderText + value: Mod name... + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_SizeDelta.x + value: 560 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_SizeDelta.y + value: 48 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 360 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -312 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600423, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_Name + value: Search Field + objectReference: {fileID: 0} + - target: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_Navigation.m_SelectOnRight + value: + objectReference: {fileID: 5634869264469495778} + - target: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4940903284276904462} + - target: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: RefreshList + objectReference: {fileID: 0} + - target: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 41734941304f2e843ac339b5227f4c8b, type: 3} +--- !u!114 &9095449701689612660 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + m_PrefabInstance: {fileID: 5729318027836886428} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9095449701689612657} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &9095449701689612657 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3583501033932969197, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + m_PrefabInstance: {fileID: 5729318027836886428} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1783760717265289501 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + m_PrefabInstance: {fileID: 5729318027836886428} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &1783760717028934074 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + m_PrefabInstance: {fileID: 5729318027836886428} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Prefabs/Collections/Mod Collection.prefab.meta b/UI/Prefabs/Collections/Mod Collection.prefab.meta new file mode 100644 index 0000000..1c593f9 --- /dev/null +++ b/UI/Prefabs/Collections/Mod Collection.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 984b45bb8f473594a90406837fcc03f6 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/ContextMenu.meta b/UI/Prefabs/ContextMenu.meta new file mode 100644 index 0000000..1bd0190 --- /dev/null +++ b/UI/Prefabs/ContextMenu.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0df8497a617ecc5419eb8aaaefd1be64 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/ContextMenu/ContextMenu.prefab b/UI/Prefabs/ContextMenu/ContextMenu.prefab new file mode 100644 index 0000000..a31d5bb --- /dev/null +++ b/UI/Prefabs/ContextMenu/ContextMenu.prefab @@ -0,0 +1,416 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3247077759024256595 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3247077759024256594} + - component: {fileID: 3247077759024256588} + - component: {fileID: 3247077759024256589} + - component: {fileID: 3247077759024256590} + - component: {fileID: 3247077759024256591} + - component: {fileID: 3247077759024256592} + - component: {fileID: 3247077759024256593} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3247077759024256594 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759024256595} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5473922759698932873} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 130, y: -48} + m_SizeDelta: {x: 260, y: 48} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &3247077759024256588 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759024256595} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &3247077759024256589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759024256595} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &3247077759024256590 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759024256595} + m_CullTransparentMesh: 0 +--- !u!114 &3247077759024256591 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759024256595} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3247077759024256592 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759024256595} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &3247077759024256593 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759024256595} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!1 &3247077759766769615 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3247077759766769614} + - component: {fileID: 3247077759766769610} + - component: {fileID: 3247077759766769611} + - component: {fileID: 3247077759766769612} + - component: {fileID: 3247077759766769613} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3247077759766769614 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759766769615} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5473922759698932873} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 4, y: 4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3247077759766769610 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759766769615} + m_CullTransparentMesh: 0 +--- !u!114 &3247077759766769611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759766769615} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3247077759766769612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759766769615} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &3247077759766769613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3247077759766769615} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &5473922759698932872 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5473922759698932873} + - component: {fileID: 5473922759698932879} + - component: {fileID: 5473922759698932878} + - component: {fileID: 5473922759698932867} + - component: {fileID: 5473922759698932866} + - component: {fileID: 5473922759698932876} + - component: {fileID: 5473922759698932877} + - component: {fileID: 7625180420904287640} + m_Layer: 5 + m_Name: ContextMenu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5473922759698932873 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5473922759698932872} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3247077759024256594} + - {fileID: 3247077759766769614} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -125} + m_SizeDelta: {x: 260, y: 48} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &5473922759698932879 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5473922759698932872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &5473922759698932878 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5473922759698932872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!222 &5473922759698932867 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5473922759698932872} + m_CullTransparentMesh: 0 +--- !u!114 &5473922759698932866 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5473922759698932872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5473922759698932876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5473922759698932872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!114 &5473922759698932877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5473922759698932872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 220575703c1ada040a914d18e37b222f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &7625180420904287640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5473922759698932872} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 655ebe54e8d25ed43a435ecc50635928, type: 3} + m_Name: + m_EditorClassIdentifier: + ContextMenu: {fileID: 5473922759698932872} + ContextMenuList: {fileID: 3247077759024256594} + ContextMenuListItemPrefab: {fileID: 1195659478179362852, guid: d144d4d6360cb1e44a63c9a74e775c11, + type: 3} + ContextMenuPreviousSelection: {fileID: 0} diff --git a/UI/Prefabs/ContextMenu/ContextMenu.prefab.meta b/UI/Prefabs/ContextMenu/ContextMenu.prefab.meta new file mode 100644 index 0000000..b566f24 --- /dev/null +++ b/UI/Prefabs/ContextMenu/ContextMenu.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b6b79b4f8e6f7204caf690ec4a93fdfc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/ContextMenu/ContextMenuListItem.prefab b/UI/Prefabs/ContextMenu/ContextMenuListItem.prefab new file mode 100644 index 0000000..7a22c79 --- /dev/null +++ b/UI/Prefabs/ContextMenu/ContextMenuListItem.prefab @@ -0,0 +1,448 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1195659476936599335 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1195659476936599328} + - component: {fileID: 1195659476936599330} + - component: {fileID: 313411270} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1195659476936599328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195659476936599335} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1195659478179362853} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1195659476936599330 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195659476936599335} + m_CullTransparentMesh: 0 +--- !u!114 &313411270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195659476936599335} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Button + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 313411270} + characterCount: 6 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1195659478179362852 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1195659478179362853} + - component: {fileID: 1195659478179362848} + - component: {fileID: 1195659478179362855} + - component: {fileID: 8335783305560889440} + - component: {fileID: 1595286952109404031} + m_Layer: 5 + m_Name: ContextMenuListItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1195659478179362853 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195659478179362852} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1195659476936599328} + - {fileID: 4337214302896200011} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 260, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1195659478179362848 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195659478179362852} + m_CullTransparentMesh: 0 +--- !u!114 &1195659478179362855 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195659478179362852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &8335783305560889440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195659478179362852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e98b098421750744ab8cb9b0d50f6cfc, type: 3} + m_Name: + m_EditorClassIdentifier: + viewportRestraint: {fileID: 0} + selectable: {fileID: 1595286952109404031} + isPlaceholder: 0 + colorSetters: [] + buttons: + - {fileID: 1595286952109404031} + dropdowns: [] + toggles: [] + scheme: {fileID: 0} + optionText: {fileID: 313411270} + optionButton: {fileID: 1595286952109404031} +--- !u!114 &1595286952109404031 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195659478179362852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 708245940749165790} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + scheme: {fileID: 0} + onClick: + m_PersistentCalls: + m_Calls: [] + extraTargets: + - target: {fileID: 1195659478179362855} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 1 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 1 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + - target: {fileID: 313411270} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 2 + HighlightedColorAlpha: 1 + Pressed: 2 + PressedColorAlpha: 1 + Disabled: 3 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + childButtons: [] +--- !u!1 &4205841224818076754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4337214302896200011} + - component: {fileID: 394120500018976064} + - component: {fileID: 708245940749165790} + m_Layer: 5 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4337214302896200011 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4205841224818076754} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1195659478179362853} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &394120500018976064 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4205841224818076754} + m_CullTransparentMesh: 0 +--- !u!114 &708245940749165790 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4205841224818076754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: diff --git a/UI/Prefabs/ContextMenu/ContextMenuListItem.prefab.meta b/UI/Prefabs/ContextMenu/ContextMenuListItem.prefab.meta new file mode 100644 index 0000000..e9678ab --- /dev/null +++ b/UI/Prefabs/ContextMenu/ContextMenuListItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d144d4d6360cb1e44a63c9a74e775c11 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Details.meta b/UI/Prefabs/Details.meta new file mode 100644 index 0000000..de189e3 --- /dev/null +++ b/UI/Prefabs/Details.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 408baf1b6658c154984c6b22c45af303 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Details/ModDetails Panel.prefab b/UI/Prefabs/Details/ModDetails Panel.prefab new file mode 100644 index 0000000..1b3ab2d --- /dev/null +++ b/UI/Prefabs/Details/ModDetails Panel.prefab @@ -0,0 +1,9863 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &3273039433874646090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520514034766852762} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 16 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &33805108375542221 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520514034879861290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 24 + m_Right: 24 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 12 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &3223107712590027654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520514034879861290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &5446149088514084159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520514034879861290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &1038177363568333866 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1991729994529164604} + - component: {fileID: 5801850591680886945} + - component: {fileID: 2217913871218421027} + - component: {fileID: 5086258706166493019} + m_Layer: 5 + m_Name: Cue (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1991729994529164604 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038177363568333866} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7946166162124155155} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 12, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5801850591680886945 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038177363568333866} + m_CullTransparentMesh: 0 +--- !u!114 &2217913871218421027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038177363568333866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 254acc7aafd98ab4586b41fb9c0c1bee, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5086258706166493019 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1038177363568333866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 2217913871218421027} + config: {fileID: 11400000, guid: 9385cd1af17a68a46804c228c01afe2e, type: 2} +--- !u!1 &1331219655936630250 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5346602302372421797} + - component: {fileID: 3826059272539180647} + - component: {fileID: 5239208037731848904} + - component: {fileID: 6570477783771549967} + m_Layer: 5 + m_Name: Cue (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5346602302372421797 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1331219655936630250} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7101419553969948749} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 12, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &3826059272539180647 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1331219655936630250} + m_CullTransparentMesh: 0 +--- !u!114 &5239208037731848904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1331219655936630250} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 254acc7aafd98ab4586b41fb9c0c1bee, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6570477783771549967 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1331219655936630250} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 5239208037731848904} + config: {fileID: 11400000, guid: 7d70f9fe2efe2f6419f680ba2604b7d7, type: 2} +--- !u!1 &2129750962893109381 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4560962956485945762} + - component: {fileID: 4126996733930147860} + - component: {fileID: 751380099307362990} + - component: {fileID: 3423039826526780226} + - component: {fileID: 8154301276700772207} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4560962956485945762 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129750962893109381} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6187157275054766052} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 135, y: -24} + m_SizeDelta: {x: 26.09, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4126996733930147860 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129750962893109381} + m_CullTransparentMesh: 0 +--- !u!114 &751380099307362990 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129750962893109381} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &3423039826526780226 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129750962893109381} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &8154301276700772207 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2129750962893109381} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2313123819937450651 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4680911817542162492} + - component: {fileID: 3683558918889487544} + - component: {fileID: 7689969460011708840} + - component: {fileID: 556585409288740964} + m_Layer: 5 + m_Name: Image (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4680911817542162492 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2313123819937450651} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: -1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1927843238393336346} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3683558918889487544 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2313123819937450651} + m_CullTransparentMesh: 0 +--- !u!114 &7689969460011708840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2313123819937450651} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &556585409288740964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2313123819937450651} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &2392782207499379429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6187157275054766052} + - component: {fileID: 4240728167374060920} + - component: {fileID: 8765566396716087093} + - component: {fileID: 5649694645596701782} + - component: {fileID: 6611387617464315096} + - component: {fileID: 3445211711588520091} + m_Layer: 5 + m_Name: Active Overlay + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6187157275054766052 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2392782207499379429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8739411987462750664} + - {fileID: 4560962956485945762} + m_Father: {fileID: 3273039434782283537} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000061035156, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4240728167374060920 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2392782207499379429} + m_CullTransparentMesh: 0 +--- !u!114 &8765566396716087093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2392782207499379429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5649694645596701782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2392782207499379429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &6611387617464315096 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2392782207499379429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &3445211711588520091 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2392782207499379429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 16 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &3273039433536499527 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433536499526} + - component: {fileID: 3273039433536499523} + - component: {fileID: 3273039433536499525} + - component: {fileID: 3273039433536499524} + m_Layer: 5 + m_Name: CreatedBy (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433536499526 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433536499527} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039435399851238} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 290, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039433536499523 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433536499527} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433536499525 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433536499527} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039433536499524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433536499527} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039433540793744 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433540793759} + - component: {fileID: 3273039433540793757} + - component: {fileID: 3273039433540793758} + m_Layer: 5 + m_Name: Verbose Details + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433540793759 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433540793744} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039435503992160} + - {fileID: 5446149087856158320} + - {fileID: 3273039433638421055} + - {fileID: 5446149087634998112} + m_Father: {fileID: 5446149088473426953} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 672, y: 0} + m_SizeDelta: {x: 1344, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &3273039433540793757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433540793744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &3273039433540793758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433540793744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 50 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &3273039433562646512 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433562646527} + - component: {fileID: 3273039433562646525} + - component: {fileID: 3273039433562646524} + - component: {fileID: 3273039433562646526} + - component: {fileID: 7714352870951873895} + m_Layer: 5 + m_Name: Release Date + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433562646527 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433562646512} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434947570076} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039433562646525 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433562646512} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433562646524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433562646512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039433562646526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433562646512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Release date:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7714352870951873895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433562646512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Release date:' + text: {fileID: 3273039433562646526} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &3273039433638421040 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433638421055} + - component: {fileID: 3273039433638421052} + - component: {fileID: 3273039433638421054} + - component: {fileID: 3273039433638421051} + - component: {fileID: 3273039433638421053} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433638421055 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433638421040} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039433540793759} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 672, y: 0} + m_SizeDelta: {x: 1200, y: 0} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3273039433638421052 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433638421040} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433638421054 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433638421040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &3273039433638421051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433638421040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039433638421053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433638421040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039433661316380 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433661316379} + - component: {fileID: 3273039433661316377} + - component: {fileID: 3273039433661316376} + - component: {fileID: 3273039433661316378} + m_Layer: 5 + m_Name: Progress Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433661316379 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433661316380} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039433727197907} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 16, y: -16} + m_SizeDelta: {x: 400, y: 32} + m_Pivot: {x: 0, y: 1} +--- !u!222 &3273039433661316377 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433661316380} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433661316376 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433661316380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039433661316378 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433661316380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 2 seconds remaining + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039433724756460 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433724756459} + - component: {fileID: 3273039433724756457} + - component: {fileID: 3273039433724756458} + m_Layer: 5 + m_Name: thumbup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433724756459 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433724756460} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434782283537} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039433724756457 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433724756460} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433724756458 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433724756460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1f0db370342be444ca956c6c18d9c900, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3273039433727197908 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433727197907} + - component: {fileID: 3273039433727197904} + - component: {fileID: 3273039433727197905} + - component: {fileID: 3273039433727197906} + m_Layer: 5 + m_Name: Download Progress Bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433727197907 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433727197908} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039433765834118} + - {fileID: 3273039433661316379} + - {fileID: 5446149088848195249} + - {fileID: 3273039434385168590} + - {fileID: 3273039433993926112} + m_Father: {fileID: 3273039434997191342} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 270.4, y: -580} + m_SizeDelta: {x: 540.8, y: 96} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039433727197904 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433727197908} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433727197905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433727197908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f12eeb8dd0927a249aeec61fdfc3eba7, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3273039433727197906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433727197908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &3273039433765834119 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433765834118} + - component: {fileID: 3273039433765834116} + - component: {fileID: 3273039433765834117} + m_Layer: 5 + m_Name: Downloading Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3273039433765834118 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433765834119} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039433727197907} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3273039433765834116 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433765834119} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433765834117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433765834119} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 0774b14b39d939b4f80ff528506c94ba, type: 3} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Donwloading +--- !u!1 &3273039433793820303 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433793820302} + - component: {fileID: 3273039433793820299} + - component: {fileID: 3273039433793820301} + - component: {fileID: 3273039433793820300} + m_Layer: 5 + m_Name: Release Date (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433793820302 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433793820303} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039435399851238} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 290, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039433793820299 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433793820303} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433793820301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433793820303} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039433793820300 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433793820303} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039433919542314 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433919542313} + m_Layer: 5 + m_Name: Side Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433919542313 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433919542314} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039434997191342} + m_Father: {fileID: 8707885447890382084} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 604.8, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!1 &3273039433942063908 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433942063907} + - component: {fileID: 3273039433942063904} + - component: {fileID: 3273039433942063906} + - component: {fileID: 3273039433942063905} + m_Layer: 5 + m_Name: Last Updated (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433942063907 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433942063908} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039435399851238} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 290, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039433942063904 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433942063908} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433942063906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433942063908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039433942063905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433942063908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039433993926113 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039433993926112} + - component: {fileID: 3273039433993926125} + - component: {fileID: 3273039433993926127} + - component: {fileID: 3273039433993926126} + m_Layer: 5 + m_Name: Download Total + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039433993926112 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433993926113} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039433727197907} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 16} + m_SizeDelta: {x: -32, y: 16} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3273039433993926125 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433993926113} + m_CullTransparentMesh: 0 +--- !u!114 &3273039433993926127 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433993926113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &3273039433993926126 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039433993926113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 12.6MB of 23.7MB + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039434092746323 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434092746322} + - component: {fileID: 3273039434092746335} + - component: {fileID: 3273039434092746320} + - component: {fileID: 3273039434092746321} + - component: {fileID: 1434269280899633565} + m_Layer: 5 + m_Name: Controller Icon (Gallery) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434092746322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434092746323} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5382275725968290213} + m_Father: {fileID: 3273039434832831089} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434092746335 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434092746323} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434092746320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434092746323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 80bda1f486c54f041999e0e171a25200, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3273039434092746321 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434092746323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3273039434092746320} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3899680651762377189} + m_MethodName: GalleryImageTransition + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1434269280899633565 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434092746323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 3273039434092746320} + config: {fileID: 11400000, guid: 42498adbd513e4f42b11d744efe971d4, type: 2} +--- !u!1 &3273039434252582423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434252582422} + - component: {fileID: 3273039434252582420} + - component: {fileID: 3273039434252582421} + m_Layer: 5 + m_Name: thumbdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434252582422 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434252582423} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434376076649} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434252582420 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434252582423} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434252582421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434252582423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 620653706e0132549af76a53d1523d95, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3273039434283125248 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434283125263} + - component: {fileID: 3273039434283125261} + - component: {fileID: 3273039434283125262} + - component: {fileID: 3273039434283125260} + m_Layer: 5 + m_Name: failed to load icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3273039434283125263 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434283125248} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5446149088050845367} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 180, y: 104} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434283125261 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434283125248} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434283125262 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434283125248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 33620cc85c18a0742a5a11a1b7d355bb, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3273039434283125260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434283125248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &3273039434322680745 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434322680744} + - component: {fileID: 3273039434322680726} + - component: {fileID: 3273039434322680725} + - component: {fileID: 3273039434322680727} + - component: {fileID: 7436410090522481685} + m_Layer: 5 + m_Name: Subscribers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434322680744 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434322680745} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434947570076} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434322680726 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434322680745} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434322680725 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434322680745} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039434322680727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434322680745} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Subscribers:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7436410090522481685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434322680745} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Subscribers:' + text: {fileID: 3273039434322680727} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &3273039434364840417 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434364840416} + - component: {fileID: 3273039434364840429} + - component: {fileID: 3273039434364840430} + - component: {fileID: 3273039434364840428} + m_Layer: 5 + m_Name: Report + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434364840416 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434364840417} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039434991930808} + - {fileID: 5446149088362640941} + m_Father: {fileID: 3273039434433629359} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434364840429 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434364840417} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434364840430 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434364840417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3273039434364840428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434364840417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 5252292763611017344} + m_SelectOnDown: {fileID: 3273039434906648025} + m_SelectOnLeft: {fileID: 3273039434376076631} + m_SelectOnRight: {fileID: 3273039434364840428} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3273039434364840430} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3899680651762377189} + m_MethodName: ReportButtonPress + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 3273039434364840430} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 6 + PressedColorAlpha: 1 + Disabled: 6 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 3273039434991930791} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 5446149088362640944} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!1 &3273039434376076650 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434376076649} + - component: {fileID: 3273039434376076629} + - component: {fileID: 3273039434376076630} + - component: {fileID: 3273039434376076631} + - component: {fileID: 3273039434376076648} + m_Layer: 5 + m_Name: Vote Down + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434376076649 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434376076650} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039434252582422} + - {fileID: 5446149088219727743} + - {fileID: 5446149088245596939} + - {fileID: 4719775577274707512} + m_Father: {fileID: 3273039434433629359} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 230, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434376076629 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434376076650} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434376076630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434376076650} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3273039434376076631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434376076650} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 5252292763611017344} + m_SelectOnDown: {fileID: 3273039434906648025} + m_SelectOnLeft: {fileID: 3273039434782283549} + m_SelectOnRight: {fileID: 3273039434364840428} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3273039434376076630} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3899680651762377189} + m_MethodName: RateNegativeButtonPress + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 3273039434376076630} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 6 + PressedColorAlpha: 1 + Disabled: 6 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 3273039434252582421} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 5446149088219727746} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 5446149088245596935} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &3273039434376076648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434376076650} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 16 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &3273039434385168591 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434385168590} + - component: {fileID: 3273039434385168587} + - component: {fileID: 3273039434385168589} + - component: {fileID: 3273039434385168588} + m_Layer: 5 + m_Name: Download Speed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434385168590 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434385168591} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039433727197907} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 16} + m_SizeDelta: {x: -32, y: 16} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3273039434385168587 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434385168591} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434385168589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434385168591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &3273039434385168588 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434385168591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 8.5MB/s + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039434419188262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434419188261} + - component: {fileID: 3273039434419188258} + - component: {fileID: 3273039434419188260} + - component: {fileID: 3273039434419188259} + m_Layer: 5 + m_Name: Subscribers (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434419188261 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434419188262} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039435399851238} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 290, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434419188258 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434419188262} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434419188260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434419188262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039434419188259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434419188262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039434428275059 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434428275070} + - component: {fileID: 3273039434428275071} + - component: {fileID: 3273039434428275058} + - component: {fileID: 3273039434428275056} + - component: {fileID: 3273039434428275057} + m_Layer: 5 + m_Name: Subscribe Button Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3273039434428275070 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434428275059} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434997191342} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 161.99998} + m_SizeDelta: {x: 580, y: 104} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434428275071 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434428275059} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434428275058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434428275059} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bc62e97fd943d4c4b9c6037db82c8230, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3273039434428275056 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434428275059} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &3273039434428275057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434428275059} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &3273039434433629344 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434433629359} + - component: {fileID: 3273039434433629358} + m_Layer: 5 + m_Name: React Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434433629359 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434433629344} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039434782283537} + - {fileID: 3273039434376076649} + - {fileID: 3273039434364840416} + m_Father: {fileID: 3273039434997191342} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 270.4, y: -248} + m_SizeDelta: {x: 540.8, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3273039434433629358 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434433629344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 12 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &3273039434490064558 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434490064557} + - component: {fileID: 3273039434490064554} + - component: {fileID: 3273039434490064555} + - component: {fileID: 3273039434490064556} + - component: {fileID: 1148742215941159114} + m_Layer: 5 + m_Name: Controller Icon (Gallery) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434490064557 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434490064558} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2732240224595600688} + m_Father: {fileID: 3273039434832831089} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434490064554 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434490064558} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434490064555 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434490064558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 80bda1f486c54f041999e0e171a25200, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3273039434490064556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434490064558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3273039434490064555} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3899680651762377189} + m_MethodName: GalleryImageTransition + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 +--- !u!114 &1148742215941159114 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434490064558} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 3273039434490064555} + config: {fileID: 11400000, guid: e57a7dbec9af7454fa759234deaa3042, type: 2} +--- !u!1 &3273039434642358943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434642358942} + - component: {fileID: 3273039434642358940} + - component: {fileID: 3273039434642358939} + - component: {fileID: 3273039434642358941} + - component: {fileID: 5525492678606515768} + m_Layer: 5 + m_Name: File Size + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434642358942 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434642358943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434947570076} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434642358940 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434642358943} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434642358939 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434642358943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039434642358941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434642358943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'File size:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5525492678606515768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434642358943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'File size:' + text: {fileID: 3273039434642358941} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &3273039434652287844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434652287843} + - component: {fileID: 3273039434652287840} + - component: {fileID: 3273039434652287855} + - component: {fileID: 3273039434652287841} + m_Layer: 5 + m_Name: Mod Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434652287843 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434652287844} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434997191342} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 270.4, y: 0} + m_SizeDelta: {x: 540.8, y: 80} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3273039434652287840 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434652287844} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434652287855 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434652287844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039434652287841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434652287844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Mod name + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039434708071185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434708071184} + - component: {fileID: 3273039434708071198} + - component: {fileID: 3273039434708071197} + - component: {fileID: 3273039434708071199} + - component: {fileID: 4791421276531809059} + m_Layer: 5 + m_Name: Last Updated + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434708071184 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434708071185} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434947570076} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434708071198 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434708071185} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434708071197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434708071185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039434708071199 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434708071185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Last updated:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4791421276531809059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434708071185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Last updated:' + text: {fileID: 3273039434708071199} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &3273039434782283538 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434782283537} + - component: {fileID: 3273039434782283550} + - component: {fileID: 3273039434782283551} + - component: {fileID: 3273039434782283549} + - component: {fileID: 3273039434782283536} + m_Layer: 5 + m_Name: Vote Up + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434782283537 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434782283538} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039433724756459} + - {fileID: 5446149087825392617} + - {fileID: 5446149089446909907} + - {fileID: 6187157275054766052} + m_Father: {fileID: 3273039434433629359} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 230, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434782283550 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434782283538} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434782283551 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434782283538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3273039434782283549 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434782283538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 5252292763611017344} + m_SelectOnDown: {fileID: 3273039434906648025} + m_SelectOnLeft: {fileID: 3273039434906648025} + m_SelectOnRight: {fileID: 3273039434376076631} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 2c5791dcf492ba540ac131f751f70c40, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3273039434782283551} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3899680651762377189} + m_MethodName: RatePositiveButtonPress + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 3273039434782283551} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 6 + PressedColorAlpha: 1 + Disabled: 6 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 3273039433724756458} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 5446149087825392622} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 5446149089446909903} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &3273039434782283536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434782283538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 16 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &3273039434832831090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434832831089} + - component: {fileID: 3273039434832831088} + m_Layer: 5 + m_Name: Gallery Nav Bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434832831089 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434832831090} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039434092746322} + - {fileID: 4647707710601106635} + - {fileID: 5446149087887404626} + - {fileID: 1927843238393336346} + - {fileID: 3273039434490064557} + m_Father: {fileID: 3273039435493512146} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 16} + m_SizeDelta: {x: 1100, y: 32} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &3273039434832831088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434832831090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 40 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &3273039434906648030 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434906648029} + - component: {fileID: 3273039434906648026} + - component: {fileID: 3273039434906648025} + m_Layer: 5 + m_Name: GallerySelectable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434906648029 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434906648030} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5446149088922839004} + m_Father: {fileID: 3273039435493512146} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -200} + m_SizeDelta: {x: 1169, y: 657} + m_Pivot: {x: 0, y: 1} +--- !u!222 &3273039434906648026 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434906648030} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434906648025 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434906648030} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 3273039434906648025} + m_SelectOnLeft: {fileID: 5252292763153535024} + m_SelectOnRight: {fileID: 5252292763611017344} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.7607844, g: 0.7607844, b: 0.7607844, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5446149088922839010} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &3273039434947570077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434947570076} + - component: {fileID: 3273039434947570074} + - component: {fileID: 3273039434947570075} + m_Layer: 5 + m_Name: Mod Stats + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434947570076 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434947570077} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039435399851238} + - {fileID: 3273039434642358942} + - {fileID: 3273039434708071184} + - {fileID: 3273039433562646527} + - {fileID: 3273039434322680744} + - {fileID: 3273039435546211784} + m_Father: {fileID: 3273039434997191342} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 270.4, y: -402} + m_SizeDelta: {x: 540.8, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3273039434947570074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434947570077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &3273039434947570075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434947570077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &3273039434983351812 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434983351811} + - component: {fileID: 3899680651762377189} + m_Layer: 5 + m_Name: ModDetails Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434983351811 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434983351812} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8707885447890382084} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3899680651762377189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434983351812} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b330b83a6dc559446b98678c77531b6e, type: 3} + m_Name: + m_EditorClassIdentifier: + ModDetailsPanel: {fileID: 3696254834328964405} + ModDetailsContentRect: {fileID: 5446149088473426953} + ModDetailsGalleryLoadingAnimation: {fileID: 4501816514908853783} + ModDetailsGalleryFailedToLoadIcon: {fileID: 3273039434283125262} + ModDetailsGalleryImage: + - {fileID: 3273039435261977864} + - {fileID: 3273039435477018602} + ModDetailsSubscribeButtonText: {fileID: 6617076928259422306} + ModDetailsName: {fileID: 3273039434652287841} + ModDetailsSummary: {fileID: 5446149088188592829} + ModDetailsDescription: {fileID: 3273039433638421053} + ModDetailsFileSize: {fileID: 3273039435438669272} + ModDetailsLastUpdated: {fileID: 3273039433942063905} + ModDetailsReleaseDate: {fileID: 3273039433793820300} + ModDetailsSubscribers: {fileID: 3273039434419188259} + ModDetailsCreatedBy: {fileID: 3273039433536499524} + ModDetailsUpVotes: {fileID: 5446149087825392622} + ModDetailsDownVotes: {fileID: 5446149088219727746} + ModDetailsUpVoteActiveOverlay: {fileID: 2392782207499379429} + ModDetailsDownVoteActiveOverlay: {fileID: 8982266419155243152} + ModDetailsUpVotesActiveOverlayText: {fileID: 8154301276700772207} + ModDetailsDownVotesActiveOverlayText: {fileID: 2596728517305185937} + ModDetailsGalleryNavBar: {fileID: 3273039434832831090} + ModDetailsGalleryNavButtonParent: {fileID: 5446149087887404626} + ModDetailsGalleryNavButtonPrefab: {fileID: 1259431384321434289, guid: f5a8caf7813ac734187da13c76c161b4, + type: 3} + ModDetailsDownloadProgressDisplay: {fileID: 3273039433727197908} + ModDetailsDownloadProgressFill: {fileID: 5446149088985720478} + ModDetailsDownloadProgressRemaining: {fileID: 3273039433661316378} + ModDetailsDownloadProgressSpeed: {fileID: 3273039434385168588} + ModDetailsDownloadProgressCompleted: {fileID: 3273039433993926126} + ModDetailsProgressTab: {fileID: 4796657051552212374} + ModDetailsScrollToggleGameObject: {fileID: 3273039434906648030} +--- !u!1 &3273039434991930809 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434991930808} + - component: {fileID: 3273039434991930790} + - component: {fileID: 3273039434991930791} + m_Layer: 5 + m_Name: flag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434991930808 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434991930809} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434364840416} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039434991930790 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434991930809} + m_CullTransparentMesh: 0 +--- !u!114 &3273039434991930791 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434991930809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 32d683199e06bf9428f1e72c4534f8d0, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3273039434997191343 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039434997191342} + - component: {fileID: 3273039434997191340} + - component: {fileID: 3273039434997191341} + m_Layer: 5 + m_Name: Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039434997191342 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434997191343} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039434652287843} + - {fileID: 3273039434428275070} + - {fileID: 3271112139964900373} + - {fileID: 3273039434433629359} + - {fileID: 3273039434947570076} + - {fileID: 3273039433727197907} + m_Father: {fileID: 3273039433919542313} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -32, y: -200} + m_SizeDelta: {x: -64, y: 628} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &3273039434997191340 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434997191343} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 40 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &3273039434997191341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039434997191343} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &3273039435261977866 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039435261977865} + - component: {fileID: 3273039435261977975} + - component: {fileID: 3273039435261977864} + m_Layer: 5 + m_Name: Gallery Image (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039435261977865 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435261977866} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5446149088050845367} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039435261977975 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435261977866} + m_CullTransparentMesh: 0 +--- !u!114 &3273039435261977864 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435261977866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3273039435399851239 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039435399851238} + - component: {fileID: 3273039435399851236} + - component: {fileID: 3273039435399851237} + m_Layer: 5 + m_Name: Dynamic texts + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039435399851238 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435399851239} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3273039435438669274} + - {fileID: 3273039433942063907} + - {fileID: 3273039433793820302} + - {fileID: 3273039434419188261} + - {fileID: 3273039433536499526} + m_Father: {fileID: 3273039434947570076} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 220, y: -50} + m_SizeDelta: {x: 440, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3273039435399851236 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435399851239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &3273039435399851237 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435399851239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 154 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &3273039435438669275 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039435438669274} + - component: {fileID: 3273039435438669255} + - component: {fileID: 3273039435438669273} + - component: {fileID: 3273039435438669272} + m_Layer: 5 + m_Name: File Size (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039435438669274 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435438669275} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039435399851238} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 290, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039435438669255 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435438669275} + m_CullTransparentMesh: 0 +--- !u!114 &3273039435438669273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435438669275} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039435438669272 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435438669275} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039435477018604 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039435477018603} + - component: {fileID: 3273039435477018601} + - component: {fileID: 3273039435477018602} + m_Layer: 5 + m_Name: Gallery Image (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039435477018603 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435477018604} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5446149088050845367} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039435477018601 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435477018604} + m_CullTransparentMesh: 0 +--- !u!114 &3273039435477018602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435477018604} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3273039435493512147 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039435493512146} + m_Layer: 5 + m_Name: Gallery + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039435493512146 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435493512147} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5446149088050845367} + - {fileID: 3273039434906648029} + - {fileID: 3273039434832831089} + m_Father: {fileID: 5446149088473426953} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1344, y: 920} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &3273039435503992161 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039435503992160} + - component: {fileID: 3273039435503992173} + - component: {fileID: 5446149088188592828} + - component: {fileID: 3273039435503992175} + - component: {fileID: 5446149088188592829} + m_Layer: 5 + m_Name: Summary + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039435503992160 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435503992161} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039433540793759} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 672, y: 0} + m_SizeDelta: {x: 1200, y: 0} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3273039435503992173 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435503992161} + m_CullTransparentMesh: 0 +--- !u!114 &5446149088188592828 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435503992161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &3273039435503992175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435503992161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &5446149088188592829 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435503992161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3273039435546211785 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3273039435546211784} + - component: {fileID: 3273039435546211894} + - component: {fileID: 3273039435546211893} + - component: {fileID: 3273039435546211895} + - component: {fileID: 5022492499292177749} + m_Layer: 5 + m_Name: CreatedBy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3273039435546211784 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435546211785} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434947570076} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 36} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3273039435546211894 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435546211785} + m_CullTransparentMesh: 0 +--- !u!114 &3273039435546211893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435546211785} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3273039435546211895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435546211785} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Created by:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5022492499292177749 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273039435546211785} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Created by:' + text: {fileID: 3273039435546211895} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &3410800754322843113 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 731280769689460606} + - component: {fileID: 5725671504246930575} + - component: {fileID: 1519146230009592641} + m_Layer: 5 + m_Name: thumbup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &731280769689460606 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3410800754322843113} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4719775577274707512} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 93.955, y: -24} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5725671504246930575 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3410800754322843113} + m_CullTransparentMesh: 0 +--- !u!114 &1519146230009592641 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3410800754322843113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1f0db370342be444ca956c6c18d9c900, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3696254834328964405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8707885447890382084} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8707885447890382084 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3696254834328964405} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5446149089529074164} + - {fileID: 5446149089602954955} + - {fileID: 3273039433919542313} + m_Father: {fileID: 3273039434983351811} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3786483543825058619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1927843238393336346} + - component: {fileID: 6421430249175359233} + - component: {fileID: 2806938511733907452} + - component: {fileID: 7151542408781975298} + m_Layer: 5 + m_Name: Arrow Icon (Gallery) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1927843238393336346 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3786483543825058619} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4680911817542162492} + m_Father: {fileID: 3273039434832831089} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6421430249175359233 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3786483543825058619} + m_CullTransparentMesh: 0 +--- !u!114 &2806938511733907452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3786483543825058619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7689969460011708840} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3899680651762377189} + m_MethodName: GalleryImageTransition + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 +--- !u!114 &7151542408781975298 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3786483543825058619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 0} + config: {fileID: 11400000, guid: e57a7dbec9af7454fa759234deaa3042, type: 2} +--- !u!1 &4864968152765611078 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5382275725968290213} + - component: {fileID: 6430955606305875883} + - component: {fileID: 8826147989269902701} + - component: {fileID: 6011628727740951112} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5382275725968290213 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4864968152765611078} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434092746322} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6430955606305875883 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4864968152765611078} + m_CullTransparentMesh: 0 +--- !u!114 &8826147989269902701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4864968152765611078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2c665852e658d7b4aa13b825d7cce91f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6011628727740951112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4864968152765611078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 8826147989269902701} + config: {fileID: 11400000, guid: 3f84a33e80b94774e8161856c3780ae4, type: 2} +--- !u!1 &5446149087634998115 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149087634998112} + - component: {fileID: 5446149087634998113} + m_Layer: 5 + m_Name: Empty Footer Space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5446149087634998112 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087634998115} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039433540793759} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 672, y: -390.58002} + m_SizeDelta: {x: 1200, y: 200} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5446149087634998113 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087634998115} + m_CullTransparentMesh: 0 +--- !u!1 &5446149087825392616 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149087825392617} + - component: {fileID: 5446149087825392623} + - component: {fileID: 5446149087825392620} + - component: {fileID: 5446149087825392621} + - component: {fileID: 5446149087825392622} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149087825392617 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087825392616} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434782283537} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 135, y: 0} + m_SizeDelta: {x: 0, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5446149087825392623 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087825392616} + m_CullTransparentMesh: 0 +--- !u!114 &5446149087825392620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087825392616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &5446149087825392621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087825392616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &5446149087825392622 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087825392616} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5446149087856158323 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149087856158320} + - component: {fileID: 5446149087856158327} + - component: {fileID: 5446149087856158321} + - component: {fileID: 5446149087856158324} + - component: {fileID: 5446149087856158326} + - component: {fileID: 4735878613472178429} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149087856158320 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087856158323} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039433540793759} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 672, y: 0} + m_SizeDelta: {x: 1200, y: 0} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5446149087856158327 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087856158323} + m_CullTransparentMesh: 0 +--- !u!114 &5446149087856158321 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087856158323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &5446149087856158324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087856158323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &5446149087856158326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087856158323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Full description + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4735878613472178429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087856158323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Full description + text: {fileID: 5446149087856158326} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &5446149087887404621 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149087887404626} + - component: {fileID: 5446149087887404624} + - component: {fileID: 5446149087887404627} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149087887404626 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087887404621} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434832831089} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 550, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5446149087887404624 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087887404621} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &5446149087887404627 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149087887404621} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 16 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &5446149088050845366 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149088050845367} + - component: {fileID: 5446149088050845370} + - component: {fileID: 5446149088050845365} + - component: {fileID: 5446149088050845364} + m_Layer: 5 + m_Name: Mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149088050845367 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088050845366} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 448868878480969377} + - {fileID: 3273039435261977865} + - {fileID: 3273039435477018603} + - {fileID: 3273039434283125263} + - {fileID: 715608684376197443} + m_Father: {fileID: 3273039435493512146} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -200} + m_SizeDelta: {x: 1169, y: 657} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5446149088050845370 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088050845366} + m_CullTransparentMesh: 0 +--- !u!114 &5446149088050845365 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088050845366} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1d7a613ab4eb9984ca2ff61802b05e50, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5446149088050845364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088050845366} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &5446149088219727742 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149088219727743} + - component: {fileID: 5446149088219727747} + - component: {fileID: 5446149088219727741} + - component: {fileID: 5446149088219727740} + - component: {fileID: 5446149088219727746} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149088219727743 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088219727742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434376076649} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 135, y: 0} + m_SizeDelta: {x: 0, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5446149088219727747 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088219727742} + m_CullTransparentMesh: 0 +--- !u!114 &5446149088219727741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088219727742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &5446149088219727740 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088219727742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &5446149088219727746 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088219727742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5446149088245596934 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149088245596939} + - component: {fileID: 5446149088245596938} + - component: {fileID: 5446149088245596935} + - component: {fileID: 5446149088245596933} + - component: {fileID: 5446149088245596932} + m_Layer: 5 + m_Name: Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5446149088245596939 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088245596934} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434376076649} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5446149088245596938 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088245596934} + m_CullTransparentMesh: 0 +--- !u!114 &5446149088245596935 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088245596934} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bc62e97fd943d4c4b9c6037db82c8230, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5446149088245596933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088245596934} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &5446149088245596932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088245596934} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &5446149088362640940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149088362640941} + - component: {fileID: 5446149088362640945} + - component: {fileID: 5446149088362640944} + - component: {fileID: 5446149088362640947} + - component: {fileID: 5446149088362640946} + m_Layer: 5 + m_Name: Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5446149088362640941 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088362640940} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434364840416} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5446149088362640945 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088362640940} + m_CullTransparentMesh: 0 +--- !u!114 &5446149088362640944 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088362640940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bc62e97fd943d4c4b9c6037db82c8230, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5446149088362640947 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088362640940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &5446149088362640946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088362640940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &5446149088473426952 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149088473426953} + - component: {fileID: 5446149088473426959} + - component: {fileID: 5446149088473426958} + - component: {fileID: 5446149088473426957} + - component: {fileID: 5446149088473426956} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149088473426953 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088473426952} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3271112141933888677} + - {fileID: 3273039435493512146} + - {fileID: 3273039433540793759} + m_Father: {fileID: 5446149089602954955} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &5446149088473426959 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088473426952} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &5446149088473426958 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088473426952} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 200 + m_ChildAlignment: 0 + m_Spacing: 30 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!222 &5446149088473426957 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088473426952} + m_CullTransparentMesh: 0 +--- !u!114 &5446149088473426956 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088473426952} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5446149088848195248 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149088848195249} + - component: {fileID: 5446149088848195255} + - component: {fileID: 5446149088848195254} + m_Layer: 5 + m_Name: Progress Bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149088848195249 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088848195248} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5446149088985720473} + m_Father: {fileID: 3273039433727197907} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -32, y: 8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5446149088848195255 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088848195248} + m_CullTransparentMesh: 0 +--- !u!114 &5446149088848195254 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088848195248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.2} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5446149088922839007 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149088922839004} + - component: {fileID: 5446149088922839011} + - component: {fileID: 5446149088922839010} + - component: {fileID: 5446149088922839005} + m_Layer: 5 + m_Name: Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149088922839004 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088922839007} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434906648029} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5446149088922839011 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088922839007} + m_CullTransparentMesh: 0 +--- !u!114 &5446149088922839010 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088922839007} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ae7af120ee031534f952fdd7a78b80f9, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5446149088922839005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088922839007} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &5446149088985720472 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149088985720473} + - component: {fileID: 5446149088985720479} + - component: {fileID: 5446149088985720478} + - component: {fileID: 454679298318659278} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149088985720473 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088985720472} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5446149088848195249} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 8} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5446149088985720479 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088985720472} + m_CullTransparentMesh: 0 +--- !u!114 &5446149088985720478 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088985720472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.49411765, g: 0.9372549, b: 0.54901963, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a86a3c1037087404990351a2386cdf3b, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 0.256 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &454679298318659278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149088985720472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 5446149088985720478} +--- !u!1 &5446149089446909902 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149089446909907} + - component: {fileID: 5446149089446909906} + - component: {fileID: 5446149089446909903} + - component: {fileID: 5446149089446909901} + - component: {fileID: 5446149089446909900} + m_Layer: 5 + m_Name: Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5446149089446909907 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089446909902} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434782283537} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5446149089446909906 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089446909902} + m_CullTransparentMesh: 0 +--- !u!114 &5446149089446909903 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089446909902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bc62e97fd943d4c4b9c6037db82c8230, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5446149089446909901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089446909902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &5446149089446909900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089446909902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &5446149089529074167 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149089529074164} + - component: {fileID: 5446149089529074170} + - component: {fileID: 5446149089529074165} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149089529074164 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089529074167} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8707885447890382084} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5446149089529074170 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089529074167} + m_CullTransparentMesh: 0 +--- !u!114 &5446149089529074165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089529074167} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7647c6aceb09bfe4d8fcddaa0db26989, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5446149089602954954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5446149089602954955} + - component: {fileID: 5446149089602954952} + - component: {fileID: 5446149089602954953} + m_Layer: 5 + m_Name: Main View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5446149089602954955 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089602954954} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5446149088473426953} + m_Father: {fileID: 8707885447890382084} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0.7, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5446149089602954952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089602954954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 5446149088473426953} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.1 + m_ScrollSensitivity: 100 + m_Viewport: {fileID: 5446149089602954955} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &5446149089602954953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5446149089602954954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!114 &4620276559427926392 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5881243081133148216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &7282946988715402075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5881243081133148216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Back + text: {fileID: 6617076927635740882} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &4027036492104793175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5881243082662799496} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Subscribe + text: {fileID: 6617076928259422306} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &5446149088466286456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5881243082662799496} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &6001479263781637860 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8739411987462750664} + - component: {fileID: 3249403476551019671} + - component: {fileID: 6038744457680206310} + m_Layer: 5 + m_Name: thumbup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8739411987462750664 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6001479263781637860} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6187157275054766052} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 93.955, y: -24} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3249403476551019671 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6001479263781637860} + m_CullTransparentMesh: 0 +--- !u!114 &6038744457680206310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6001479263781637860} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1f0db370342be444ca956c6c18d9c900, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4119706640577824894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6282401861415068813} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 4874408550150365685} +--- !u!1 &6576450648925541261 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7101419553969948749} + - component: {fileID: 6999420873491481569} + - component: {fileID: 2707815449957696785} + - component: {fileID: 7700818685003710074} + m_Layer: 5 + m_Name: Cue (ModDetails Subscribe) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7101419553969948749 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6576450648925541261} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5346602302372421797} + m_Father: {fileID: 3271112139964900373} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0} +--- !u!222 &6999420873491481569 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6576450648925541261} + m_CullTransparentMesh: 0 +--- !u!114 &2707815449957696785 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6576450648925541261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7700818685003710074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6576450648925541261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 2707815449957696785} + config: {fileID: 11400000, guid: f61575af3474946408f87595370cf4ad, type: 2} +--- !u!1 &6747225193022355844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2732240224595600688} + - component: {fileID: 5409408959240574397} + - component: {fileID: 3056765915196338228} + - component: {fileID: 5690509394730841201} + m_Layer: 5 + m_Name: Image (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2732240224595600688 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6747225193022355844} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3273039434490064557} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5409408959240574397 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6747225193022355844} + m_CullTransparentMesh: 0 +--- !u!114 &3056765915196338228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6747225193022355844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ae77b0e026d27cb44b367ea392e2c423, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5690509394730841201 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6747225193022355844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 3056765915196338228} + config: {fileID: 11400000, guid: df1d1f97fb954fb43b6087dfe4e8301d, type: 2} +--- !u!1 &7768923851959470181 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5659265459388782352} + - component: {fileID: 7576229915974617110} + - component: {fileID: 5597833641294997435} + - component: {fileID: 978803371875437479} + - component: {fileID: 2596728517305185937} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5659265459388782352 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7768923851959470181} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4719775577274707512} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 135, y: -24} + m_SizeDelta: {x: 26.09, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7576229915974617110 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7768923851959470181} + m_CullTransparentMesh: 0 +--- !u!114 &5597833641294997435 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7768923851959470181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &978803371875437479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7768923851959470181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &2596728517305185937 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7768923851959470181} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 100 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8055325130142920398 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4647707710601106635} + - component: {fileID: 8922380701079432211} + - component: {fileID: 5858568704033258620} + - component: {fileID: 1009267594947136712} + m_Layer: 5 + m_Name: Arrow Icon (Gallery) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4647707710601106635 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8055325130142920398} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5152505189157855583} + m_Father: {fileID: 3273039434832831089} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8922380701079432211 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8055325130142920398} + m_CullTransparentMesh: 0 +--- !u!114 &5858568704033258620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8055325130142920398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6012241632869826626} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3899680651762377189} + m_MethodName: GalleryImageTransition + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1009267594947136712 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8055325130142920398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 0} + config: {fileID: 11400000, guid: 42498adbd513e4f42b11d744efe971d4, type: 2} +--- !u!1 &8342242146084432339 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7946166162124155155} + - component: {fileID: 4931862389693267674} + - component: {fileID: 5187319664200441117} + - component: {fileID: 1070624466427756584} + m_Layer: 5 + m_Name: Cue (ModDetails Back) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7946166162124155155 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8342242146084432339} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1991729994529164604} + m_Father: {fileID: 3271112141933888677} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &4931862389693267674 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8342242146084432339} + m_CullTransparentMesh: 0 +--- !u!114 &5187319664200441117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8342242146084432339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1070624466427756584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8342242146084432339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 5187319664200441117} + config: {fileID: 11400000, guid: f61575af3474946408f87595370cf4ad, type: 2} +--- !u!1 &8982266419155243152 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4719775577274707512} + - component: {fileID: 5204145475717456059} + - component: {fileID: 490581900459163500} + - component: {fileID: 2889358387781316645} + - component: {fileID: 6706471084205547258} + - component: {fileID: 5690503977902586837} + m_Layer: 5 + m_Name: Active Overlay + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4719775577274707512 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8982266419155243152} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 731280769689460606} + - {fileID: 5659265459388782352} + m_Father: {fileID: 3273039434376076649} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.000030517578, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5204145475717456059 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8982266419155243152} + m_CullTransparentMesh: 0 +--- !u!114 &490581900459163500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8982266419155243152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2889358387781316645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8982266419155243152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &6706471084205547258 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8982266419155243152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &5690503977902586837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8982266419155243152} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 16 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &9176244493582597812 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5152505189157855583} + - component: {fileID: 2626388487903084046} + - component: {fileID: 6012241632869826626} + - component: {fileID: 1233247878492271011} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5152505189157855583 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9176244493582597812} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4647707710601106635} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2626388487903084046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9176244493582597812} + m_CullTransparentMesh: 0 +--- !u!114 &6012241632869826626 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9176244493582597812} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1233247878492271011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9176244493582597812} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1001 &3273039433874646083 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3273039434997191342} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 540.8 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 64 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Subscribe Button + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.y + value: 16 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 250.4 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 3273039434782283549} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnLeft + value: + objectReference: {fileID: 3273039434906648025} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].target + value: + objectReference: {fileID: 3273039434428275058} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].transition + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].transition + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnNormal + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnPressed + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].enableOnPressed + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnHighlight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].enableOnHighlight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].isControllerButtonIcon + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_NormalColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Normal + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.Normal + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_PressedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_PressedColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_PressedColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_PressedColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Pressed + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.a + value: 0.5019608 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_SelectedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_SelectedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_SelectedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_SelectedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.Pressed + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_DisabledColor.a + value: 0.5019608 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_DisabledColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_DisabledColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_DisabledColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Disabled + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.Disabled + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_HighlightedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_HighlightedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_HighlightedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_HighlightedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Highlighted + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.Highlighted + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 3899680651762377189} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_NormalTrigger + value: Normal + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.NormalColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].animationTriggers.m_NormalTrigger + value: Normal + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.NormalColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_PressedTrigger + value: Pressed + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.PressedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].animationTriggers.m_PressedTrigger + value: Pressed + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.PressedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_DisabledTrigger + value: Disabled + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_SelectedTrigger + value: Selected + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.DisabledColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].animationTriggers.m_DisabledTrigger + value: Disabled + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.DisabledColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: SubscribeButtonPress + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_HighlightedTrigger + value: Highlighted + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.HighlightedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].animationTriggers.m_HighlightedTrigger + value: Highlighted + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.HighlightedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_fontSize + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_fontSizeBase + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_firstOverflowCharacterIndex + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 0} + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &520514034766852762 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039433874646083} + m_PrefabAsset: {fileID: 0} +--- !u!224 &3271112139964900373 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039433874646083} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6617076928259422306 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039433874646083} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5881243082662799496} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5881243082662799496 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039433874646083} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5252292763611017344 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039433874646083} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520514034766852762} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &3273039435294115059 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5446149088473426953} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -36 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1858621242275647360, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1858621242275647360, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Back + objectReference: {fileID: 0} + - target: {fileID: 4151754370727582976, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4151754370727582976, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4151754370727582976, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 5303711281568416601, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Text + value: Back + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 38.19 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 3899680651762377189} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Back + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &520514034879861290 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039435294115059} + m_PrefabAsset: {fileID: 0} +--- !u!224 &3271112141933888677 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039435294115059} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5252292763153535024 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039435294115059} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520514034879861290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5881243081133148216 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039435294115059} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6617076927635740882 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3273039435294115059} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5881243081133148216} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5446149087673912787 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5446149088050845367} + m_Modifications: + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &448868878480969377 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 5446149087673912787} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4501816514908853783 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 5446149087673912787} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5446149087984305754 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5446149088050845367} + m_Modifications: + - target: {fileID: 1645162211136672968, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Name + value: ProgressTab + objectReference: {fileID: 0} + - target: {fileID: 1645162211136672968, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3585144004662617393, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Color.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 3585144004662617393, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Color.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 3585144004662617393, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Color.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.x + value: 110 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.y + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 2395107723254539461, guid: fb11aa92a8bf14c40a4f846d52a9caeb, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: fb11aa92a8bf14c40a4f846d52a9caeb, type: 3} +--- !u!1 &6282401861415068813 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2070257836112913111, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 5446149087984305754} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4796657051552212374 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 650134152300667852, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 5446149087984305754} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9b8a49fb798dad40a7bf351ff745a1f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &715608684376197443 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 5446149087984305754} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4874408550150365685 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 590529543652616111, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 5446149087984305754} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6282401861415068813} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/Details/ModDetails Panel.prefab.meta b/UI/Prefabs/Details/ModDetails Panel.prefab.meta new file mode 100644 index 0000000..2a551b8 --- /dev/null +++ b/UI/Prefabs/Details/ModDetails Panel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d54a705255921934c9d7e49fdc181f47 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Download.meta b/UI/Prefabs/Download.meta new file mode 100644 index 0000000..16fede8 --- /dev/null +++ b/UI/Prefabs/Download.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b26df09dbe78d3747abb415c58e708ea +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Download/Downloads.prefab b/UI/Prefabs/Download/Downloads.prefab new file mode 100644 index 0000000..7e57339 --- /dev/null +++ b/UI/Prefabs/Download/Downloads.prefab @@ -0,0 +1,4492 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3351761391280191096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3351761391280191103} + - component: {fileID: 3351761391280191100} + - component: {fileID: 3351761391280191101} + - component: {fileID: 3351761391280191102} + m_Layer: 5 + m_Name: Footer (Controller Icon) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3351761391280191103 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391280191096} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2113207593325950040} + m_Father: {fileID: 3802382007458979083} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 120} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3351761391280191100 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391280191096} + m_CullTransparentMesh: 0 +--- !u!114 &3351761391280191101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391280191096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3351761391280191102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391280191096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!1 &3351761391507923115 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3351761391507923114} + m_Layer: 5 + m_Name: Logout (Controller Icon) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3351761391507923114 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391507923115} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3804901104581061255} + m_Father: {fileID: 5925736493583408766} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -40, y: -40} + m_SizeDelta: {x: 143, y: 40} + m_Pivot: {x: 1, y: 1} +--- !u!1 &3351761391615383210 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3351761391615383209} + - component: {fileID: 3351761391615383213} + - component: {fileID: 3351761391615383214} + - component: {fileID: 3351761391615383215} + - component: {fileID: 3351761391615383208} + m_Layer: 5 + m_Name: Alternate Platform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3351761391615383209 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391615383210} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3351761392250452045} + m_Father: {fileID: 3802382007108527799} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &3351761391615383213 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391615383210} + m_CullTransparentMesh: 0 +--- !u!114 &3351761391615383214 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391615383210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3351761391615383215 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391615383210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &3351761391615383208 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391615383210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &3351761391896508225 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3351761391896508224} + m_Layer: 5 + m_Name: Logout (Mouse) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3351761391896508224 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761391896508225} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3804901103668484196} + - {fileID: 1571082706665796417} + m_Father: {fileID: 5925736493583408766} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -40, y: -40} + m_SizeDelta: {x: 143, y: 40} + m_Pivot: {x: 1, y: 1} +--- !u!1 &3351761392250452041 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3351761392250452045} + - component: {fileID: 3351761392250452046} + - component: {fileID: 3351761392250452040} + - component: {fileID: 3351761392250452047} + m_Layer: 5 + m_Name: Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3351761392250452045 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761392250452041} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3351761391615383209} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3351761392250452046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761392250452041} + m_CullTransparentMesh: 0 +--- !u!114 &3351761392250452040 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761392250452041} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7469d4b74c68de041b524683e4783f04, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3351761392250452047 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3351761392250452041} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &2150306640355903952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3372636039632712344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Unsubscribe + text: {fileID: 2631449770543014514} +--- !u!1 &3802382006587770249 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382006587770246} + - component: {fileID: 3802382006587770245} + - component: {fileID: 3802382006587770244} + - component: {fileID: 3802382006587770247} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382006587770246 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006587770249} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3802382008611259824} + m_Father: {fileID: 3802382007413447710} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -8, y: 0} + m_SizeDelta: {x: 8, y: -80} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &3802382006587770245 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006587770249} + m_CullTransparentMesh: 0 +--- !u!114 &3802382006587770244 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006587770249} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3802382006587770247 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006587770249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3802382006782325687} + m_HandleRect: {fileID: 3802382006782325689} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &3802382006642903303 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382006642903300} + - component: {fileID: 3802382006642903298} + - component: {fileID: 3802382006642903301} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382006642903300 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006642903303} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5925736492234217106} + - {fileID: 5925736492409988977} + m_Father: {fileID: 3802382007790652243} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 143} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &3802382006642903298 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006642903303} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &3802382006642903301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006642903303} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 103 + m_Bottom: 40 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &3802382006782325688 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382006782325689} + - component: {fileID: 3802382006782325684} + - component: {fileID: 3802382006782325687} + - component: {fileID: 3802382006782325686} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382006782325689 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006782325688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3802382008611259824} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.99999994} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3802382006782325684 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006782325688} + m_CullTransparentMesh: 0 +--- !u!114 &3802382006782325687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006782325688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.68235296, g: 0.69411767, b: 0.7607843, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3802382006782325686 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006782325688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 6 +--- !u!1 &3802382006856900034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382006856900035} + - component: {fileID: 3802382006856900094} + - component: {fileID: 3802382006856900033} + - component: {fileID: 4029993481687391820} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382006856900035 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006856900034} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3802382007921394620} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3802382006856900094 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006856900034} + m_CullTransparentMesh: 0 +--- !u!114 &3802382006856900033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006856900034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.49411765, g: 0.9372549, b: 0.54901963, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a86a3c1037087404990351a2386cdf3b, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 0.287 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4029993481687391820 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006856900034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 3802382006856900033} +--- !u!1 &3802382006920435591 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382006920435588} + - component: {fileID: 3802382006920435587} + - component: {fileID: 3802382006920435586} + - component: {fileID: 3802382006920435589} + m_Layer: 5 + m_Name: Top + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382006920435588 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006920435591} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5925736493583408766} + - {fileID: 5925736492495554545} + m_Father: {fileID: 3802382007458979083} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 294} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3802382006920435587 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006920435591} + m_CullTransparentMesh: 0 +--- !u!114 &3802382006920435586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006920435591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3802382006920435589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382006920435591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!1 &3802382007037501060 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382007037501061} + - component: {fileID: 5378890153422600354} + m_Layer: 5 + m_Name: Downloads + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3802382007037501061 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007037501060} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3802382008134405563} + - {fileID: 3802382007458979083} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5378890153422600354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007037501060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68b095dcaa56aa2469a0be20701e0251, type: 3} + m_Name: + m_EditorClassIdentifier: + DownloadQueuePanel: {fileID: 3802382007037501060} + DownloadQueueCurrentProgressBar: {fileID: 5925736493732419177} + DownloadQueueCurrentJobText: {fileID: 5925736492722064476} + DownloadQueueCurrentProgressBarFill: {fileID: 3802382006856900033} + DownloadQueueUsernameText: {fileID: 5925736492126293405} + DownloadQueueCurrentModName: {fileID: 5925736493532381582} + DownloadQueueCurrentDownloadedAmount: {fileID: 5925736493677053968} + DownloadQueueCurrentDownloadSpeed: {fileID: 5925736491859931840} + DownloadQueueCurrentUnsubscribeButton: {fileID: 4013755683702418064} + DownloadQueueCurrentLogoutButton: {fileID: 5857791395288022546} + DownloadQueueList: {fileID: 3802382006642903300} + DownloadQueueListViewport: {fileID: 3802382007413447710} + DownloadQueueListItem: {fileID: 3606525104457915420, guid: 41fa03f7b55719f46bd07121e08aa79a, + type: 3} + DownloadQueueNoPendingNotice: {fileID: 5925736492409988978} + DownloadQueueNoCurrentNotice: {fileID: 5925736492289688064} + Avatar_DownloadQueue: {fileID: 5925736492686749691} +--- !u!1 &3802382007108527798 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382007108527799} + m_Layer: 5 + m_Name: User + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382007108527799 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007108527798} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5925736492877463442} + - {fileID: 3351761391615383209} + - {fileID: 5925736492126293406} + m_Father: {fileID: 5925736493583408766} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 40, y: -40} + m_SizeDelta: {x: 100, y: 48} + m_Pivot: {x: 0, y: 1} +--- !u!1 &3802382007413447777 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382007413447710} + m_Layer: 5 + m_Name: Bottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382007413447710 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007413447777} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3802382007790652243} + - {fileID: 3802382006587770246} + m_Father: {fileID: 3802382007458979083} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -82.299805} + m_SizeDelta: {x: 0, y: -423.48224} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3802382007458979082 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382007458979083} + - component: {fileID: 3802382007458979078} + - component: {fileID: 3802382007458979081} + - component: {fileID: 3802382007458979080} + m_Layer: 5 + m_Name: Content Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382007458979083 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007458979082} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3802382006920435588} + - {fileID: 3802382007413447710} + - {fileID: 3351761391280191103} + m_Father: {fileID: 3802382007037501061} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 640, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &3802382007458979078 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007458979082} + m_CullTransparentMesh: 0 +--- !u!114 &3802382007458979081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007458979082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3802382007458979080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007458979082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &3802382007563962767 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382007563962764} + - component: {fileID: 3802382007563962763} + - component: {fileID: 3802382007563962762} + - component: {fileID: 3802382007563962765} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382007563962764 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007563962767} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5925736493732419176} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -6, y: -6} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3802382007563962763 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007563962767} + m_CullTransparentMesh: 0 +--- !u!114 &3802382007563962762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007563962767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3802382007563962765 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007563962767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!1 &3802382007790652242 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382007790652243} + - component: {fileID: 3802382007790652241} + - component: {fileID: 3802382007790652240} + m_Layer: 5 + m_Name: ScrollRect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382007790652243 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007790652242} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3802382006642903300} + m_Father: {fileID: 3802382007413447710} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3802382007790652241 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007790652242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!114 &3802382007790652240 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007790652242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 3802382006642903300} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.1 + m_ScrollSensitivity: 10 + m_Viewport: {fileID: 3802382007790652243} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 3802382006587770247} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 1 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &3802382007921394623 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382007921394620} + - component: {fileID: 3802382007921394619} + - component: {fileID: 3802382007921394618} + - component: {fileID: 3802382007921394621} + - component: {fileID: 3802382007921394616} + m_Layer: 5 + m_Name: Progress Bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382007921394620 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007921394623} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3802382006856900035} + m_Father: {fileID: 5925736493732419176} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 40, y: 48} + m_SizeDelta: {x: 377, y: 8} + m_Pivot: {x: 0, y: 0} +--- !u!222 &3802382007921394619 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007921394623} + m_CullTransparentMesh: 0 +--- !u!114 &3802382007921394618 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007921394623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.2} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3802382007921394621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007921394623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3802382007921394616 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382007921394623} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!1 &3802382008134405562 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382008134405563} + - component: {fileID: 3802382008134405558} + - component: {fileID: 3802382008134405561} + - component: {fileID: 3802382008134405560} + - component: {fileID: 3802382008134405559} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382008134405563 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382008134405562} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3802382007037501061} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3802382008134405558 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382008134405562} + m_CullTransparentMesh: 0 +--- !u!114 &3802382008134405561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382008134405562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.7019608} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3802382008134405560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382008134405562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &3802382008134405559 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382008134405562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3802382008134405561} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5378890153422600354} + m_MethodName: Close + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &3802382008611259827 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3802382008611259824} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3802382008611259824 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3802382008611259827} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3802382006782325689} + m_Father: {fileID: 3802382006587770246} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6412844323286827220 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5203545569872455194} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Log out from mod.io + text: {fileID: 4790842798499510000} +--- !u!114 &8067638560075342773 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5203545570284885241} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Log out + text: {fileID: 4790842798089716755} +--- !u!1 &5925736491859931843 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736491859931842} + - component: {fileID: 5925736491859931847} + - component: {fileID: 5925736491859931840} + - component: {fileID: 5925736491859931841} + m_Layer: 5 + m_Name: Progress Speed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736491859931842 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736491859931843} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5925736493732419176} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 40, y: 24} + m_SizeDelta: {x: 560, y: 24} + m_Pivot: {x: 0, y: 0} +--- !u!222 &5925736491859931847 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736491859931843} + m_CullTransparentMesh: 0 +--- !u!114 &5925736491859931840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736491859931843} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 5.2MB/s + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5925736491859931841 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736491859931843} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &5925736492126293407 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736492126293406} + - component: {fileID: 5925736492126293404} + - component: {fileID: 5925736492126293405} + m_Layer: 5 + m_Name: Username + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736492126293406 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492126293407} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3802382007108527799} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 64, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &5925736492126293404 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492126293407} + m_CullTransparentMesh: 0 +--- !u!114 &5925736492126293405 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492126293407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Username + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5925736492234217107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736492234217106} + - component: {fileID: 5925736492234217111} + - component: {fileID: 5925736492234217104} + - component: {fileID: 5925736492234217105} + - component: {fileID: 5925736492234217110} + - component: {fileID: 2053166704448281511} + m_Layer: 5 + m_Name: Queue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736492234217106 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492234217107} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3802382006642903300} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 40, y: -40} + m_SizeDelta: {x: 167, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5925736492234217111 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492234217107} + m_CullTransparentMesh: 0 +--- !u!114 &5925736492234217104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492234217107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &5925736492234217105 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492234217107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Queue + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5925736492234217110 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492234217107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &2053166704448281511 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492234217107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Queue + text: {fileID: 5925736492234217105} +--- !u!1 &5925736492289688064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736492289688071} + - component: {fileID: 5925736492289688091} + - component: {fileID: 5925736492289688068} + - component: {fileID: 5925736492289688069} + - component: {fileID: 5925736492289688070} + - component: {fileID: 4110942185249047253} + m_Layer: 5 + m_Name: No current download + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736492289688071 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492289688064} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5925736492495554545} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 40, y: 64} + m_SizeDelta: {x: 285, y: 24} + m_Pivot: {x: 0, y: 0} +--- !u!222 &5925736492289688091 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492289688064} + m_CullTransparentMesh: 0 +--- !u!114 &5925736492289688068 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492289688064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: No mods are pending downloads. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5925736492289688069 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492289688064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &5925736492289688070 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492289688064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &4110942185249047253 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492289688064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: No mods are pending downloads. + text: {fileID: 5925736492289688068} +--- !u!1 &5925736492409988978 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736492409988977} + - component: {fileID: 5925736492409988981} + - component: {fileID: 5925736492409988982} + - component: {fileID: 5925736492409988983} + - component: {fileID: 5925736492409988976} + - component: {fileID: 8457391923982580503} + m_Layer: 5 + m_Name: No pending notice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736492409988977 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492409988978} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3802382006642903300} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 40, y: 0} + m_SizeDelta: {x: 285, y: 24} + m_Pivot: {x: 0, y: 0} +--- !u!222 &5925736492409988981 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492409988978} + m_CullTransparentMesh: 0 +--- !u!114 &5925736492409988982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492409988978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: No mods are pending download. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5925736492409988983 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492409988978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &5925736492409988976 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492409988978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &8457391923982580503 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492409988978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: No mods are pending download. + text: {fileID: 5925736492409988982} +--- !u!1 &5925736492495554546 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736492495554545} + m_Layer: 5 + m_Name: Downloading + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736492495554545 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492495554546} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5925736492722064477} + - {fileID: 5925736492289688071} + - {fileID: 5925736493732419176} + - {fileID: 5923657233706089989} + m_Father: {fileID: 3802382006920435588} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 194} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &5925736492686749669 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736492686749668} + - component: {fileID: 5925736492686749690} + - component: {fileID: 5925736492686749691} + m_Layer: 5 + m_Name: Avatar Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736492686749668 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492686749669} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5925736492877463442} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5925736492686749690 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492686749669} + m_CullTransparentMesh: 0 +--- !u!114 &5925736492686749691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492686749669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5925736492722064478 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736492722064477} + - component: {fileID: 5925736492722064467} + - component: {fileID: 5925736492722064476} + - component: {fileID: 5925736492722064466} + - component: {fileID: 6443514195158543921} + m_Layer: 5 + m_Name: Downloading text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736492722064477 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492722064478} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5925736492495554545} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 40, y: -16} + m_SizeDelta: {x: 300, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5925736492722064467 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492722064478} + m_CullTransparentMesh: 0 +--- !u!114 &5925736492722064476 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492722064478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Downloading... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5925736492722064466 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492722064478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &6443514195158543921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492722064478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Downloading... + text: {fileID: 5925736492722064476} +--- !u!1 &5925736492877463443 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736492877463442} + - component: {fileID: 5925736492877463447} + - component: {fileID: 5925736492877463440} + - component: {fileID: 5925736492877463441} + m_Layer: 5 + m_Name: Avatar Mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736492877463442 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492877463443} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5925736492686749668} + m_Father: {fileID: 3802382007108527799} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5925736492877463447 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492877463443} + m_CullTransparentMesh: 0 +--- !u!114 &5925736492877463440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492877463443} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5925736492877463441 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736492877463443} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &5925736493339221057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736493339221056} + - component: {fileID: 5925736493339221061} + - component: {fileID: 5925736493339221062} + - component: {fileID: 5925736493339221063} + m_Layer: 5 + m_Name: Highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5925736493339221056 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493339221057} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5925736493732419176} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5925736493339221061 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493339221057} + m_CullTransparentMesh: 0 +--- !u!114 &5925736493339221062 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493339221057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5925736493339221063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493339221057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &5925736493532381577 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736493532381576} + - component: {fileID: 5925736493532381581} + - component: {fileID: 5925736493532381582} + - component: {fileID: 5925736493532381583} + m_Layer: 5 + m_Name: Mod name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736493532381576 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493532381577} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5925736493732419176} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 20, y: -24} + m_SizeDelta: {x: -40, y: 24} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &5925736493532381581 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493532381577} + m_CullTransparentMesh: 0 +--- !u!114 &5925736493532381582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493532381577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Mod title goes here "something cool" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5925736493532381583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493532381577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &5925736493583408767 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736493583408766} + m_Layer: 5 + m_Name: User + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736493583408766 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493583408767} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3802382007108527799} + - {fileID: 3351761391896508224} + - {fileID: 3351761391507923114} + m_Father: {fileID: 3802382006920435588} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &5925736493677053971 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736493677053970} + - component: {fileID: 5925736493677053975} + - component: {fileID: 5925736493677053968} + - component: {fileID: 5925736493677053969} + m_Layer: 5 + m_Name: Progress Total + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736493677053970 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493677053971} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5925736493732419176} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 24} + m_SizeDelta: {x: 417, y: 24} + m_Pivot: {x: 0, y: 0} +--- !u!222 &5925736493677053975 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493677053971} + m_CullTransparentMesh: 0 +--- !u!114 &5925736493677053968 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493677053971} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 12.6MB of 23.7MB + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5925736493677053969 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493677053971} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &5925736493732419177 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5925736493732419176} + - component: {fileID: 5925736493732419183} + m_Layer: 5 + m_Name: Current Download + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5925736493732419176 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493732419177} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5925736493339221056} + - {fileID: 3802382007563962764} + - {fileID: 5925736493532381576} + - {fileID: 3802382007921394620} + - {fileID: 5925736491859931842} + - {fileID: 5925736493677053970} + m_Father: {fileID: 5925736492495554545} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 128} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &5925736493732419183 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5925736493732419177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 5925736493339221062} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: + - {fileID: 4013755683702418064} +--- !u!1001 &3802382006886456222 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3351761391280191103} + m_Modifications: + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_text + value: Cancel + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2639670795910479274, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 40.49 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 45.622498 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 134 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: Controller Icon + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 108.6225 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_text + value: B + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629754, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: Close + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].target + value: + objectReference: {fileID: 7640225906634053795} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].transition + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5378890153422600354} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 71af8a9a5a69a5648af22465acf51a99, type: 3} +--- !u!114 &7640225906634053795 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6828387984629629757, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 3802382006886456222} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2113207593325950040 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 3802382006886456222} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3802382006894204978 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3351761391896508224} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 91 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: -52 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Logout (1) + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 4013755683702418064} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5378890153422600354} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: LogoutButton + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Log out + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &4790842798089716755 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3802382006894204978} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5203545570284885241} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5203545570284885241 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3802382006894204978} + m_PrefabAsset: {fileID: 0} +--- !u!224 &3804901103668484196 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3802382006894204978} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3802382007035574002 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3351761391896508224} + m_Modifications: + - target: {fileID: 483652631100272818, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 483652631100272818, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 483652631100272818, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 483652631100272818, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_SizeDelta.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6223212484800735566, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6223212484800735566, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5378890153422600354} + - target: {fileID: 6223212484800735566, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 6223212484800735567, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_Name + value: Close (X) (1) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, type: 3} +--- !u!224 &1571082706665796417 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + m_PrefabInstance: {fileID: 3802382007035574002} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3802382007290915537 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3351761391507923114} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 143 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Logout (1) + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 4013755683702418064} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5378890153422600354} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: LogoutButton + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Log out from mod.io + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &4790842798499510000 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3802382007290915537} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5203545569872455194} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5203545569872455194 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3802382007290915537} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5857791395288022546 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3802382007290915537} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &3804901104581061255 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3802382007290915537} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5925736492144770643 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5925736492495554545} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 143 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Unsubscribe + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnUp + value: + objectReference: {fileID: 5857791395288022546} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5378890153422600354} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: UnsubscribeToCurrentDownloadQueueOperation + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Unsubscribe + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &5923657233706089989 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5925736492144770643} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3372636039632712344 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5925736492144770643} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2631449770543014514 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5925736492144770643} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3372636039632712344} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &4013755683702418064 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5925736492144770643} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/Download/Downloads.prefab.meta b/UI/Prefabs/Download/Downloads.prefab.meta new file mode 100644 index 0000000..e5bd7e2 --- /dev/null +++ b/UI/Prefabs/Download/Downloads.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d745b8f4ef0816244ba1585f4f34293b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/DownloadQueueListItem.prefab b/UI/Prefabs/DownloadQueueListItem.prefab new file mode 100644 index 0000000..78f8728 --- /dev/null +++ b/UI/Prefabs/DownloadQueueListItem.prefab @@ -0,0 +1,2042 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2705156394994351818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8842826463728260480} + - component: {fileID: 3756874635605083187} + m_Layer: 5 + m_Name: Mod Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8842826463728260480 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2705156394994351818} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7836757248505588703} + - {fileID: 5843388303403047620} + - {fileID: 5896249505903297713} + - {fileID: 8187076360849760845} + m_Father: {fileID: 3606525104457915421} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 40, y: 0} + m_SizeDelta: {x: 130.18, y: 77.72} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &3756874635605083187 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2705156394994351818} + m_CullTransparentMesh: 0 +--- !u!1 &3259237029390104326 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5896249505903297713} + - component: {fileID: 7973940258969717310} + - component: {fileID: 4103322164277306279} + m_Layer: 5 + m_Name: Mod Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5896249505903297713 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3259237029390104326} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8842826463728260480} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 130.18, y: 77.72} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &7973940258969717310 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3259237029390104326} + m_CullTransparentMesh: 0 +--- !u!114 &4103322164277306279 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3259237029390104326} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3273424957283133643 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5794420273544035247} + - component: {fileID: 2490611297293880686} + - component: {fileID: 8062670790681486989} + m_Layer: 5 + m_Name: failed icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5794420273544035247 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273424957283133643} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8187076360849760845} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.000030517578, y: 0} + m_SizeDelta: {x: 45, y: 26} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2490611297293880686 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273424957283133643} + m_CullTransparentMesh: 0 +--- !u!114 &8062670790681486989 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273424957283133643} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 33620cc85c18a0742a5a11a1b7d355bb, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3606525103169066042 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3606525103169066043} + - component: {fileID: 3606525103169066038} + - component: {fileID: 3606525103169066037} + - component: {fileID: 3606525103169066036} + - component: {fileID: 1494079067307379384} + m_Layer: 5 + m_Name: Mod name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3606525103169066043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525103169066042} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1438411715456072392} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 120.5, y: 0} + m_SizeDelta: {x: 241, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3606525103169066038 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525103169066042} + m_CullTransparentMesh: 0 +--- !u!114 &3606525103169066037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525103169066042} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: COOL mod name IS HERE + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3606525103169066037} + characterCount: 21 + spriteCount: 0 + spaceCount: 4 + wordCount: 5 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3606525103169066036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525103169066042} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &1494079067307379384 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525103169066042} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &3606525103284562907 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3606525103284562900} + - component: {fileID: 3606525103284562903} + - component: {fileID: 3606525103284562902} + - component: {fileID: 3606525103284562901} + m_Layer: 5 + m_Name: highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3606525103284562900 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525103284562907} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3606525104457915421} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3606525103284562903 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525103284562907} + m_CullTransparentMesh: 0 +--- !u!114 &3606525103284562902 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525103284562907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 91c8a28ebcde6ac469e4ad1171ed8847, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &3606525103284562901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525103284562907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &3606525104012031087 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3606525104012031080} + - component: {fileID: 3606525104012031083} + - component: {fileID: 3606525104012031082} + - component: {fileID: 3606525104012031081} + - component: {fileID: 5421180521804307590} + m_Layer: 5 + m_Name: File size + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3606525104012031080 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525104012031087} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2650421716304008497} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 22} + m_Pivot: {x: 0, y: 1} +--- !u!222 &3606525104012031083 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525104012031087} + m_CullTransparentMesh: 0 +--- !u!114 &3606525104012031082 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525104012031087} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 37.5MB + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3606525104012031082} + characterCount: 6 + spriteCount: 0 + spaceCount: 0 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &3606525104012031081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525104012031087} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &5421180521804307590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525104012031087} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &3606525104457915420 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3606525104457915421} + - component: {fileID: 3606525104457915422} + - component: {fileID: 2189596559789999773} + m_Layer: 5 + m_Name: DownloadQueueListItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3606525104457915421 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525104457915420} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1438411715456072392} + - {fileID: 3604441377933269809} + - {fileID: 3606525103284562900} + - {fileID: 8842826463728260480} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 640, y: 100} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &3606525104457915422 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525104457915420} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3606525103284562902} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2189596559789999773} + m_MethodName: Unsubscribe + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: [] + childButtons: + - {fileID: 6305948842166472612} +--- !u!114 &2189596559789999773 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3606525104457915420} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f59b6814c7f0cd43b28a2f34a98cbbf, type: 3} + m_Name: + m_EditorClassIdentifier: + viewportRestraint: {fileID: 0} + selectable: {fileID: 3606525104457915422} + isPlaceholder: 0 + colorSetters: + - {fileID: 2776092373073078448} + - {fileID: 3606525103169066036} + - {fileID: 3606525104012031081} + buttons: + - {fileID: 3606525104457915422} + - {fileID: 6305948842166472612} + dropdowns: [] + toggles: [] + scheme: {fileID: 0} + modName: {fileID: 3606525103169066037} + fileSize: {fileID: 3606525104012031082} + modLogo: {fileID: 4103322164277306279} + loadingIcon: {fileID: 7589967433838215794} + failedToLoadIcon: {fileID: 9121782188642288499} + failedToLoadMod: {fileID: 4646335150017448808} + profile: + id: + id: 0 + tags: [] + status: 0 + visible: 0 + name: + summary: + description: + contentWarnings: 0 + galleryImages_Original: [] + galleryImages_320x180: [] + galleryImages_640x360: [] + logoImage_320x180: + modId: + id: 0 + url: + filename: + logoImage_640x360: + modId: + id: 0 + url: + filename: + logoImage_1280x720: + modId: + id: 0 + url: + filename: + logoImage_Original: + modId: + id: 0 + url: + filename: + creatorUsername: + creatorAvatar_50x50: + modId: + id: 0 + url: + filename: + creatorAvatar_100x100: + modId: + id: 0 + url: + filename: + creatorAvatar_Original: + modId: + id: 0 + url: + filename: + metadata: + stats: + modId: + id: 0 + popularityRankPosition: 0 + popularityRankTotalMods: 0 + downloadsToday: 0 + downloadsTotal: 0 + subscriberTotal: 0 + ratingsTotal: 0 + ratingsPositive: 0 + ratingsNegative: 0 + ratingsPercentagePositive: 0 + ratingsWeightedAggregate: 0 + ratingsDisplayText: + archiveFileSize: 0 +--- !u!1 &4646335150017448808 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6350631184188126162} + - component: {fileID: 2424914900683825366} + - component: {fileID: 8571167219792333187} + - component: {fileID: 4590662307647881531} + - component: {fileID: 183189583630921207} + m_Layer: 5 + m_Name: Error + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6350631184188126162 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4646335150017448808} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2650421716304008497} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 52.94, y: 0} + m_SizeDelta: {x: 85.63, y: 22} + m_Pivot: {x: 0, y: 1} +--- !u!222 &2424914900683825366 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4646335150017448808} + m_CullTransparentMesh: 0 +--- !u!114 &8571167219792333187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4646335150017448808} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Failed to install + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4283782107 + m_fontColor: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 8571167219792333187} + characterCount: 17 + spriteCount: 0 + spaceCount: 2 + wordCount: 3 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4590662307647881531 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4646335150017448808} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 9 +--- !u!114 &183189583630921207 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4646335150017448808} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &4863793981045238385 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1438411715456072392} + - component: {fileID: 4625544459736286486} + - component: {fileID: 9141933187549835427} + m_Layer: 5 + m_Name: Texts + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1438411715456072392 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4863793981045238385} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3606525103169066043} + - {fileID: 2650421716304008497} + m_Father: {fileID: 3606525104457915421} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 241, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4625544459736286486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4863793981045238385} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &9141933187549835427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4863793981045238385} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 +--- !u!1 &5380674712866159656 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2650421716304008497} + - component: {fileID: 4363880164628432742} + - component: {fileID: 360620564015159408} + m_Layer: 5 + m_Name: FileSize / Error + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2650421716304008497 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5380674712866159656} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3606525104012031080} + - {fileID: 6350631184188126162} + m_Father: {fileID: 1438411715456072392} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 22} + m_Pivot: {x: 0, y: 1} +--- !u!114 &4363880164628432742 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5380674712866159656} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 12 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 +--- !u!114 &360620564015159408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5380674712866159656} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &9117311420210626125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7836757248505588703} + - component: {fileID: 1402861901280187650} + - component: {fileID: 871026198725896632} + - component: {fileID: 5231965818552188736} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7836757248505588703 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9117311420210626125} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8842826463728260480} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 130.18, y: 77.72} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &1402861901280187650 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9117311420210626125} + m_CullTransparentMesh: 0 +--- !u!114 &871026198725896632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9117311420210626125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &5231965818552188736 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9117311420210626125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!1 &9121782188642288499 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8187076360849760845} + - component: {fileID: 8901086440504184621} + - component: {fileID: 3055030784804850075} + m_Layer: 5 + m_Name: Failed to load + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8187076360849760845 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9121782188642288499} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5794420273544035247} + m_Father: {fileID: 8842826463728260480} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 130.18, y: 77.72} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &8901086440504184621 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9121782188642288499} + m_CullTransparentMesh: 0 +--- !u!114 &3055030784804850075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9121782188642288499} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4509804, g: 0.4627451, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1001 &2069908514243598774 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8842826463728260480} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -0.000030517578 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalScale.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!1 &7589967433838215794 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 2069908514243598774} + m_PrefabAsset: {fileID: 0} +--- !u!224 &5843388303403047620 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 2069908514243598774} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3606525103129254759 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3606525104457915421} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 143 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Unsubscribe button + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].transition + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.a + value: 0.5019608 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Normal + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.NormalColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Highlighted + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.HighlightedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Pressed + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.PressedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Disabled + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.DisabledColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_NormalTrigger + value: Normal + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_HighlightedTrigger + value: Highlighted + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_PressedTrigger + value: Pressed + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_DisabledTrigger + value: Disabled + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnHighlight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnPressed + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].transition + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_NormalColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_HighlightedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_HighlightedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_HighlightedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_HighlightedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_PressedColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_PressedColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_PressedColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_PressedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_DisabledColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_DisabledColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_DisabledColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_DisabledColor.a + value: 0.5019608 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colors.m_FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.Normal + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.NormalColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.Highlighted + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.HighlightedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.Pressed + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.PressedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.Disabled + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.DisabledColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].colorSchemeBlock.FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].animationTriggers.m_NormalTrigger + value: Normal + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].animationTriggers.m_HighlightedTrigger + value: Highlighted + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].animationTriggers.m_PressedTrigger + value: Pressed + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].animationTriggers.m_DisabledTrigger + value: Disabled + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].enableOnHighlight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].enableOnPressed + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[4].target + value: + objectReference: {fileID: 3606525103284562902} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2189596559789999773} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Unsubscribe + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Unsubscribe + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &6305948842166472612 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3606525103129254759} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2776092373073078448 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1480094620036461527, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3606525103129254759} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &3604441377933269809 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3606525103129254759} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Prefabs/DownloadQueueListItem.prefab.meta b/UI/Prefabs/DownloadQueueListItem.prefab.meta new file mode 100644 index 0000000..ac410d3 --- /dev/null +++ b/UI/Prefabs/DownloadQueueListItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 41fa03f7b55719f46bd07121e08aa79a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/ExampleInputCapture.prefab b/UI/Prefabs/ExampleInputCapture.prefab new file mode 100644 index 0000000..cd7884a --- /dev/null +++ b/UI/Prefabs/ExampleInputCapture.prefab @@ -0,0 +1,59 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8893324564416866145 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8893324564416866147} + - component: {fileID: 8893324564416866144} + m_Layer: 0 + m_Name: ExampleInputCapture + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8893324564416866147 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8893324564416866145} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1019.75134, y: 521.43976, z: 15.910962} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8893324564416866144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8893324564416866145} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f95d137321812dd41a3ac7750adf5684, type: 3} + m_Name: + m_EditorClassIdentifier: + Cancel: 331 + Alternate: 332 + Options: 333 + TabLeft: 334 + TabRight: 335 + Search: 339 + Menu: 337 + controllerAndKeyboardInput: + - Horizontal + - Vertical + mouseInput: + - Mouse X + - Mouse Y + verticalControllerInput: Vertical diff --git a/UI/Prefabs/ExampleInputCapture.prefab.meta b/UI/Prefabs/ExampleInputCapture.prefab.meta new file mode 100644 index 0000000..6bf36e8 --- /dev/null +++ b/UI/Prefabs/ExampleInputCapture.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0b306d249f4833444b11dd61db95dcad +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/GalleryImageButtonListItem.prefab b/UI/Prefabs/GalleryImageButtonListItem.prefab new file mode 100644 index 0000000..4ff458d --- /dev/null +++ b/UI/Prefabs/GalleryImageButtonListItem.prefab @@ -0,0 +1,152 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1259431384321434289 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1259431384321434288} + - component: {fileID: 1259431384321434293} + - component: {fileID: 1259431384321434290} + - component: {fileID: 1259431384321434291} + - component: {fileID: 7614969030163201981} + - component: {fileID: 7091354194275730597} + m_Layer: 5 + m_Name: GalleryImageButtonListItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1259431384321434288 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259431384321434289} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 12, y: 12} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1259431384321434293 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259431384321434289} + m_CullTransparentMesh: 0 +--- !u!114 &1259431384321434290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259431384321434289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &1259431384321434291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259431384321434289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0.3019608} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1259431384321434290} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &7614969030163201981 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259431384321434289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 459ab804e2a5892468991873ccf21071, type: 3} + m_Name: + m_EditorClassIdentifier: + viewportRestraint: {fileID: 0} + selectable: {fileID: 0} + isPlaceholder: 0 + colorSetters: + - {fileID: 7091354194275730597} + buttons: [] + dropdowns: [] + toggles: [] + scheme: {fileID: 0} + button: {fileID: 1259431384321434291} +--- !u!114 &7091354194275730597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259431384321434289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 diff --git a/UI/Prefabs/GalleryImageButtonListItem.prefab.meta b/UI/Prefabs/GalleryImageButtonListItem.prefab.meta new file mode 100644 index 0000000..a68381d --- /dev/null +++ b/UI/Prefabs/GalleryImageButtonListItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f5a8caf7813ac734187da13c76c161b4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/GlyphSettings.prefab b/UI/Prefabs/GlyphSettings.prefab new file mode 100644 index 0000000..87a77af --- /dev/null +++ b/UI/Prefabs/GlyphSettings.prefab @@ -0,0 +1,48 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1646481318575676102 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8247413803136923786} + - component: {fileID: 6024752796523463521} + m_Layer: 0 + m_Name: GlyphSettings + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8247413803136923786 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1646481318575676102} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6024752796523463521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1646481318575676102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3b04e195a5bf7c94eb12b62602e2a521, type: 3} + m_Name: + m_EditorClassIdentifier: + glyphColorFallback: {r: 0, g: 0, b: 0, a: 0.5058824} + fallbackSprite: {fileID: 21300000, guid: 040744873524b3046946f4b9ed566674, type: 3} + fallbackColor: {r: 1, g: 1, b: 1, a: 1} diff --git a/UI/Prefabs/GlyphSettings.prefab.meta b/UI/Prefabs/GlyphSettings.prefab.meta new file mode 100644 index 0000000..699fb23 --- /dev/null +++ b/UI/Prefabs/GlyphSettings.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 19b91031327fd4840aecddf27ac33eec +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Home.meta b/UI/Prefabs/Home.meta new file mode 100644 index 0000000..1ea46f6 --- /dev/null +++ b/UI/Prefabs/Home.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 269df866c4127114097e410334f5d263 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Home/BrowserModListItem_Featured.prefab b/UI/Prefabs/Home/BrowserModListItem_Featured.prefab new file mode 100644 index 0000000..c86ee51 --- /dev/null +++ b/UI/Prefabs/Home/BrowserModListItem_Featured.prefab @@ -0,0 +1,793 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &670208008075011765 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4942168968004334964} + - component: {fileID: 4324107002743144979} + - component: {fileID: 6469797118344165547} + - component: {fileID: 8147119635265973839} + m_Layer: 5 + m_Name: Failed to load icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4942168968004334964 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670208008075011765} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6620650513022163637} + m_Father: {fileID: 7978843899359299681} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4324107002743144979 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670208008075011765} + m_CullTransparentMesh: 0 +--- !u!114 &6469797118344165547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670208008075011765} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4509804, g: 0.4627451, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8147119635265973839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 670208008075011765} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 7 +--- !u!1 &705037531075444948 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6620650513022163637} + - component: {fileID: 1579072412476267319} + - component: {fileID: 9025299317110473926} + - component: {fileID: 8155467296743975610} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6620650513022163637 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705037531075444948} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4942168968004334964} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 180, y: 104} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1579072412476267319 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705037531075444948} + m_CullTransparentMesh: 0 +--- !u!114 &9025299317110473926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705037531075444948} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 33620cc85c18a0742a5a11a1b7d355bb, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8155467296743975610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705037531075444948} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &2683707351702261179 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4109278011581854275} + - component: {fileID: 601744267284140412} + - component: {fileID: 6263590729001574840} + - component: {fileID: 4309506549573501120} + m_Layer: 5 + m_Name: background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4109278011581854275 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2683707351702261179} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7978843899359299681} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &601744267284140412 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2683707351702261179} + m_CullTransparentMesh: 0 +--- !u!114 &6263590729001574840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2683707351702261179} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4309506549573501120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2683707351702261179} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!1 &7978843899110051884 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7978843899110051885} + - component: {fileID: 7978843899110051887} + - component: {fileID: 7978843899110051886} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7978843899110051885 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7978843899110051884} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7978843899359299681} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7978843899110051887 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7978843899110051884} + m_CullTransparentMesh: 0 +--- !u!114 &7978843899110051886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7978843899110051884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7978843899359299680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7978843899359299681} + - component: {fileID: 6353333058533976017} + - component: {fileID: 5763768017196757652} + - component: {fileID: 8203825838756300506} + - component: {fileID: 5855975464659338118} + - component: {fileID: 1931807906856659369} + m_Layer: 5 + m_Name: BrowserModListItem_Featured + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7978843899359299681 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7978843899359299680} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6637392176321285735} + - {fileID: 4109278011581854275} + - {fileID: 7978843899110051885} + - {fileID: 4942168968004334964} + - {fileID: 4790354404997292985} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 750, y: 450} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6353333058533976017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7978843899359299680} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a89e843efc4975840844b6f3376f59fc, type: 3} + m_Name: + m_EditorClassIdentifier: + viewportRestraint: {fileID: 0} + selectable: {fileID: 0} + isPlaceholder: 0 + colorSetters: + - {fileID: 8147119635265973839} + - {fileID: 8155467296743975610} + buttons: [] + dropdowns: [] + toggles: [] + scheme: {fileID: 0} + image: {fileID: 7978843899110051886} + background: {fileID: 2683707351702261179} + failedToLoad: {fileID: 670208008075011765} + progressTab: {fileID: 650134153158627180} + rowIndex: 2 + profileIndex: 0 + animationCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!222 &5763768017196757652 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7978843899359299680} + m_CullTransparentMesh: 0 +--- !u!114 &8203825838756300506 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7978843899359299680} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5855975464659338118 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7978843899359299680} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &1931807906856659369 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7978843899359299680} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6353333058533976017} + m_MethodName: SoundHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6353333058533976017} + m_MethodName: SoundClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1001 &1936043168 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7978843899359299681} + m_Modifications: + - target: {fileID: 1645162211136672968, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Name + value: ProgressTab + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.x + value: 110 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.y + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fb11aa92a8bf14c40a4f846d52a9caeb, type: 3} +--- !u!224 &4790354404997292985 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 1936043168} + m_PrefabAsset: {fileID: 0} +--- !u!114 &650134153158627180 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 650134152300667852, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 1936043168} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9b8a49fb798dad40a7bf351ff745a1f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1275338264376462613 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7978843899359299681} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &6637392176321285735 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 1275338264376462613} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Prefabs/Home/BrowserModListItem_Featured.prefab.meta b/UI/Prefabs/Home/BrowserModListItem_Featured.prefab.meta new file mode 100644 index 0000000..a115b40 --- /dev/null +++ b/UI/Prefabs/Home/BrowserModListItem_Featured.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6b73fb45c04f95140b44e918b7f02337 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Home/BrowserModListItem_Regular.prefab b/UI/Prefabs/Home/BrowserModListItem_Regular.prefab new file mode 100644 index 0000000..d8c0a5f --- /dev/null +++ b/UI/Prefabs/Home/BrowserModListItem_Regular.prefab @@ -0,0 +1,1155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &6272258063222005774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566200014977218387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 1392025824990507563} +--- !u!1 &1036584509056097331 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8991406917363472811} + - component: {fileID: 8577429278094768941} + - component: {fileID: 8501724592818701228} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8991406917363472811 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1036584509056097331} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3616021901904687618} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -200} + m_SizeDelta: {x: -32, y: 48} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &8577429278094768941 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1036584509056097331} + m_CullTransparentMesh: 0 +--- !u!114 &8501724592818701228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1036584509056097331} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1152192818814031822 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5092569835414914662} + - component: {fileID: 4977977786217742311} + - component: {fileID: 3046730742201085934} + - component: {fileID: 3344944014698573595} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5092569835414914662 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152192818814031822} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8470420041081741622} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 90, y: 52} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4977977786217742311 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152192818814031822} + m_CullTransparentMesh: 0 +--- !u!114 &3046730742201085934 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152192818814031822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 33620cc85c18a0742a5a11a1b7d355bb, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3344944014698573595 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152192818814031822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &3616021901724498306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3616021901724498309} + - component: {fileID: 3616021901724498311} + - component: {fileID: 3616021901724498308} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3616021901724498309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901724498306} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8051883462214282021} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3616021901724498311 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901724498306} + m_CullTransparentMesh: 0 +--- !u!114 &3616021901724498308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901724498306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9433962, g: 0.9433962, b: 0.9433962, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3616021901904687619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3616021901904687618} + - component: {fileID: 3616021901904687621} + - component: {fileID: 6357600789068724130} + - component: {fileID: 666303631699354268} + - component: {fileID: 114124550467246922} + - component: {fileID: 1249255649593076479} + m_Layer: 5 + m_Name: BrowserModListItem_Regular + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3616021901904687618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8051883462214282021} + - {fileID: 8991406917363472811} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 338, y: 249} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3616021901904687621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e76d7608ce556a4489e6614bee09f81d, type: 3} + m_Name: + m_EditorClassIdentifier: + viewportRestraint: {fileID: 0} + selectable: {fileID: 6357600789068724130} + isPlaceholder: 0 + colorSetters: [] + buttons: [] + dropdowns: [] + toggles: [] + scheme: {fileID: 0} + image: {fileID: 3616021901724498308} + title: {fileID: 8501724592818701228} + loadingIcon: {fileID: 9149599758244254246} + failedToLoadIcon: {fileID: 6270406780165081896} + profile: + id: + id: 0 + tags: [] + status: 0 + visible: 0 + name: + summary: + description: + contentWarnings: 0 + galleryImages_Original: [] + galleryImages_320x180: [] + galleryImages_640x360: [] + logoImage_320x180: + modId: + id: 0 + url: + filename: + logoImage_640x360: + modId: + id: 0 + url: + filename: + logoImage_1280x720: + modId: + id: 0 + url: + filename: + logoImage_Original: + modId: + id: 0 + url: + filename: + creator: + username: + userId: 0 + portal_username: + avatar_original: + modId: + id: 0 + url: + filename: + avatar_50x50: + modId: + id: 0 + url: + filename: + avatar_100x100: + modId: + id: 0 + url: + filename: + timezone: + language: + creatorAvatar_50x50: + modId: + id: 0 + url: + filename: + creatorAvatar_100x100: + modId: + id: 0 + url: + filename: + creatorAvatar_Original: + modId: + id: 0 + url: + filename: + metadata: + latestVersion: + latestChangelog: + stats: + modId: + id: 0 + popularityRankPosition: 0 + popularityRankTotalMods: 0 + downloadsToday: 0 + downloadsTotal: 0 + subscriberTotal: 0 + ratingsTotal: 0 + ratingsPositive: 0 + ratingsNegative: 0 + ratingsPercentagePositive: 0 + ratingsWeightedAggregate: 0 + ratingsDisplayText: + archiveFileSize: 0 + progressTab: {fileID: 1325534867089798728} +--- !u!114 &6357600789068724130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3616021901904687621} + m_MethodName: OpenModDetailsForThisProfile + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!222 &666303631699354268 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_CullTransparentMesh: 0 +--- !u!114 &114124550467246922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9e842de213b82ba4d90c8520c94f83b1, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1249255649593076479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3616021901904687621} + m_MethodName: SoundHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3616021901904687621} + m_MethodName: SoundClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &6270406780165081896 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8470420041081741622} + - component: {fileID: 6872291192632537381} + - component: {fileID: 6028066953601530599} + - component: {fileID: 1075724484336043076} + m_Layer: 5 + m_Name: Failed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8470420041081741622 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6270406780165081896} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5092569835414914662} + m_Father: {fileID: 8051883462214282021} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6872291192632537381 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6270406780165081896} + m_CullTransparentMesh: 0 +--- !u!114 &6028066953601530599 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6270406780165081896} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4509804, g: 0.4627451, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1075724484336043076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6270406780165081896} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 7 +--- !u!1 &8004207281385121115 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8051883462214282021} + - component: {fileID: 7494547487262748573} + - component: {fileID: 5007036691142614046} + - component: {fileID: 163356057860629831} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8051883462214282021 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8004207281385121115} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3195656516144668002} + - {fileID: 8470420041081741622} + - {fileID: 3616021901724498309} + - {fileID: 6420517415465114269} + m_Father: {fileID: 3616021901904687618} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 1.5} + m_SizeDelta: {x: 338, y: 190} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &7494547487262748573 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8004207281385121115} + m_CullTransparentMesh: 0 +--- !u!114 &5007036691142614046 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8004207281385121115} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &163356057860629831 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8004207281385121115} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &9149599758244254246 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3195656516144668002} + - component: {fileID: 4430233152486628159} + - component: {fileID: 623064994624148020} + - component: {fileID: 377907590618869628} + m_Layer: 5 + m_Name: Loading + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3195656516144668002 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9149599758244254246} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3303122371167725444} + m_Father: {fileID: 8051883462214282021} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4430233152486628159 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9149599758244254246} + m_CullTransparentMesh: 0 +--- !u!114 &623064994624148020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9149599758244254246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &377907590618869628 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9149599758244254246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!1001 &1972721091276379524 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8051883462214282021} + m_Modifications: + - target: {fileID: 704624176966553163, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 704624176966553163, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1645162211136672968, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Name + value: ProgressTab + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.x + value: 110 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.y + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7074662967068471825, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8068880088806200931, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 2395107723254539461, guid: fb11aa92a8bf14c40a4f846d52a9caeb, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: fb11aa92a8bf14c40a4f846d52a9caeb, type: 3} +--- !u!114 &1325534867089798728 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 650134152300667852, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 1972721091276379524} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9b8a49fb798dad40a7bf351ff745a1f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &566200014977218387 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2070257836112913111, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 1972721091276379524} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1392025824990507563 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 590529543652616111, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 1972721091276379524} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566200014977218387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6420517415465114269 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 1972721091276379524} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6951627270667642102 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3195656516144668002} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &3303122371167725444 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 6951627270667642102} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Prefabs/Home/BrowserModListItem_Regular.prefab.meta b/UI/Prefabs/Home/BrowserModListItem_Regular.prefab.meta new file mode 100644 index 0000000..3016d6e --- /dev/null +++ b/UI/Prefabs/Home/BrowserModListItem_Regular.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6dab28ac97efe3645a00cfa31697b3e0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Home/BrowserModListItem_RegularSelected.prefab b/UI/Prefabs/Home/BrowserModListItem_RegularSelected.prefab new file mode 100644 index 0000000..ea3409a --- /dev/null +++ b/UI/Prefabs/Home/BrowserModListItem_RegularSelected.prefab @@ -0,0 +1,2219 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &645020853660559956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7651966868919174154} + - component: {fileID: 6486262265191284404} + - component: {fileID: 4426968270457653949} + - component: {fileID: 446002139274487427} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7651966868919174154 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645020853660559956} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 81} + m_SizeDelta: {x: 396, y: 44} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &6486262265191284404 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645020853660559956} + m_CullTransparentMesh: 0 +--- !u!114 &4426968270457653949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645020853660559956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &446002139274487427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645020853660559956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &1889803360405899038 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1749634460728570499} + - component: {fileID: 8331554554530260067} + - component: {fileID: 3921070459970083499} + - component: {fileID: 3996921327601415584} + - component: {fileID: 7330586331907445051} + m_Layer: 5 + m_Name: background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1749634460728570499 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1436449794644405193} + - {fileID: 1673968952686631427} + - {fileID: 1653441100735313900} + - {fileID: 9205103604461440230} + - {fileID: 7651966868919174154} + - {fileID: 814754657598926068} + m_Father: {fileID: 5051807497711647625} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8331554554530260067 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_CullTransparentMesh: 0 +--- !u!114 &3921070459970083499 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3996921327601415584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &7330586331907445051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &2933289215661709816 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1436449794644405193} + - component: {fileID: 998352586935943394} + - component: {fileID: 9164335667942149939} + - component: {fileID: 1431312783179842665} + m_Layer: 5 + m_Name: icon mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1436449794644405193 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2933289215661709816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3616021901724498309} + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -12} + m_SizeDelta: {x: -24, y: 238} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &998352586935943394 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2933289215661709816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!222 &9164335667942149939 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2933289215661709816} + m_CullTransparentMesh: 0 +--- !u!114 &1431312783179842665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2933289215661709816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3616021901724498306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3616021901724498309} + - component: {fileID: 3616021901724498311} + - component: {fileID: 3616021901724498308} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3616021901724498309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901724498306} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1436449794644405193} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 238} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3616021901724498311 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901724498306} + m_CullTransparentMesh: 0 +--- !u!114 &3616021901724498308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901724498306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9433962, g: 0.9433962, b: 0.9433962, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3616021901904687619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3616021901904687618} + - component: {fileID: 7931789081754763228} + - component: {fileID: 6783768072497898932} + - component: {fileID: 2708172086888723316} + m_Layer: 5 + m_Name: BrowserModListItem_RegularSelected + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3616021901904687618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5051807497711647625} + - {fileID: 1416501874772754002} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 960, y: -1141} + m_SizeDelta: {x: 338, y: 300} + m_Pivot: {x: 0.5, y: 0.46} +--- !u!114 &7931789081754763228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 811030f917147504589eb74c563a0d3a, type: 3} + m_Name: + m_EditorClassIdentifier: + animator: {fileID: 6783768072497898932} + image: {fileID: 3616021901724498308} + failedToLoadIcon: {fileID: 7176677892884716255} + loadingIcon: {fileID: 6229365861290620620} + title: {fileID: 4426968270457653949} + subscribeButtonText: {fileID: 696562318495947841} + contextMenuPosition: {fileID: 2875788690058587427} + listItemToReplicate: {fileID: 0} + lastListItemToReplicate: {fileID: 0} + progressTab: {fileID: 2473591249711973333} +--- !u!95 &6783768072497898932 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: e68f79a1540cdeb4fa310b01fc7767e8, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &2708172086888723316 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &4217150747554264227 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 814754657598926068} + - component: {fileID: 5902820373047880424} + - component: {fileID: 6353958695002081936} + m_Layer: 5 + m_Name: Prompts + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &814754657598926068 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4217150747554264227} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 9159029705819095094} + - {fileID: 2875788690058587427} + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 13} + m_SizeDelta: {x: 396, y: 0} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &5902820373047880424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4217150747554264227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 12 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &6353958695002081936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4217150747554264227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &5077742008696250718 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1416501874772754002} + - component: {fileID: 5013974186807037640} + - component: {fileID: 9044266526697615920} + - component: {fileID: 673729491010166022} + m_Layer: 5 + m_Name: highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1416501874772754002 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077742008696250718} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3616021901904687618} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5013974186807037640 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077742008696250718} + m_CullTransparentMesh: 0 +--- !u!114 &9044266526697615920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077742008696250718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ae7af120ee031534f952fdd7a78b80f9, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &673729491010166022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077742008696250718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 9044266526697615920} +--- !u!1 &5390940142783372439 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9205103604461440230} + - component: {fileID: 5207888322267217169} + - component: {fileID: 3499637623289819851} + m_Layer: 5 + m_Name: clickable plate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9205103604461440230 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5390940142783372439} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5207888322267217169 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5390940142783372439} + m_CullTransparentMesh: 0 +--- !u!114 &3499637623289819851 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5390940142783372439} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6229365861290620620 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1673968952686631427} + - component: {fileID: 8822227718111173257} + - component: {fileID: 6909979092271063010} + - component: {fileID: 4366737450781625051} + m_Layer: 5 + m_Name: loadingIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1673968952686631427 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229365861290620620} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7907190722947711224} + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8822227718111173257 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229365861290620620} + m_CullTransparentMesh: 0 +--- !u!114 &6909979092271063010 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229365861290620620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4366737450781625051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229365861290620620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!1 &7048603489793308125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6368705342992439289} + - component: {fileID: 3229997839153152561} + - component: {fileID: 3266743030728280758} + - component: {fileID: 5287226671933637362} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6368705342992439289 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048603489793308125} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1653441100735313900} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 180, y: 104} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3229997839153152561 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048603489793308125} + m_CullTransparentMesh: 0 +--- !u!114 &3266743030728280758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048603489793308125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 33620cc85c18a0742a5a11a1b7d355bb, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5287226671933637362 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048603489793308125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &7176677892884716255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1653441100735313900} + - component: {fileID: 2022550146025502683} + - component: {fileID: 6136641658364150477} + - component: {fileID: 2340793008960482413} + m_Layer: 5 + m_Name: failedToLoad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1653441100735313900 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176677892884716255} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6368705342992439289} + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -12} + m_SizeDelta: {x: -24, y: 238} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &2022550146025502683 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176677892884716255} + m_CullTransparentMesh: 0 +--- !u!114 &6136641658364150477 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176677892884716255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4509804, g: 0.4627451, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2340793008960482413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176677892884716255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 7 +--- !u!1 &7601505989199081831 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5051807497711647625} + - component: {fileID: 5256225937732694484} + - component: {fileID: 6791986599377587745} + - component: {fileID: 8112415773660253173} + m_Layer: 5 + m_Name: Mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5051807497711647625 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7601505989199081831} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1749634460728570499} + - {fileID: 7578584284396596992} + m_Father: {fileID: 3616021901904687618} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5256225937732694484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7601505989199081831} + m_CullTransparentMesh: 0 +--- !u!114 &6791986599377587745 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7601505989199081831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1d7a613ab4eb9984ca2ff61802b05e50, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8112415773660253173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7601505989199081831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1001 &877398192327439759 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 814754657598926068} + m_Modifications: + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.characterCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189428, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.characterCount + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.size + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].target + value: + objectReference: {fileID: 877398191347746425} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].transition + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnPressed + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnHighlight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Normal + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Pressed + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.a + value: 0.5019608 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_SelectedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_SelectedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_SelectedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_SelectedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Disabled + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Highlighted + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7931789081754763228} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_NormalTrigger + value: Normal + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.NormalColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_PressedTrigger + value: Pressed + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.PressedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_DisabledTrigger + value: Disabled + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_SelectedTrigger + value: Selected + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.DisabledColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: SubscribeButton + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_HighlightedTrigger + value: Highlighted + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.HighlightedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 63.9575 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6442999689545999158, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Name + value: Subscribe + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 184 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8502793601590996624, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: config + value: + objectReference: {fileID: 11400000, guid: 7d70f9fe2efe2f6419f680ba2604b7d7, + type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} +--- !u!114 &696562318495947841 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 877398192327439759} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &877398191347746425 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2112189430, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 877398192327439759} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &9159029705819095094 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 877398192327439759} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1044698523055096549 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 814754657598926068} + m_Modifications: + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.characterCount + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 2639670795910479274, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 66.695 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 184 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273406580189357525, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: config + value: + objectReference: {fileID: 11400000, guid: c0f94355830c579428077573555b77e2, + type: 2} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629754, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: More options + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].target + value: + objectReference: {fileID: 5817750717166125528} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[1].target + value: + objectReference: {fileID: 5948596955754438754} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].transition + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[1].transition + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 7931789081754763228} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[1].animationTriggers.m_SelectedTrigger + value: Selected + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: ShowMoreOptions + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: fddb9d650a68b3b46abb9f7e8316cef3, + type: 3} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Color.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Color.r + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 71af8a9a5a69a5648af22465acf51a99, type: 3} +--- !u!224 &2875788690058587427 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 1044698523055096549} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5817750717166125528 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6828387984629629757, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 1044698523055096549} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5948596955754438754 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6697462529236771463, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 1044698523055096549} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2311987569356243850 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1673968952686631427} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &7907190722947711224 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 2311987569356243850} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3122766627735855129 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5051807497711647625} + m_Modifications: + - target: {fileID: 1645162211136672968, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Name + value: ProgressTab + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.x + value: 110 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.y + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fb11aa92a8bf14c40a4f846d52a9caeb, type: 3} +--- !u!224 &7578584284396596992 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 3122766627735855129} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2473591249711973333 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 650134152300667852, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 3122766627735855129} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9b8a49fb798dad40a7bf351ff745a1f, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/Home/BrowserModListItem_RegularSelected.prefab.meta b/UI/Prefabs/Home/BrowserModListItem_RegularSelected.prefab.meta new file mode 100644 index 0000000..dedc885 --- /dev/null +++ b/UI/Prefabs/Home/BrowserModListItem_RegularSelected.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5e57d74c874a1da4b9e2f8b3b1c90e90 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Home/Home.prefab b/UI/Prefabs/Home/Home.prefab new file mode 100644 index 0000000..c1e0c9d --- /dev/null +++ b/UI/Prefabs/Home/Home.prefab @@ -0,0 +1,14582 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &11070247326230723 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5631570825590719846} + - component: {fileID: 7422853957693510067} + - component: {fileID: 293988133779090127} + - component: {fileID: 5777099711251569235} + m_Layer: 5 + m_Name: Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5631570825590719846 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 11070247326230723} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3494463204094689655} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7422853957693510067 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 11070247326230723} + m_CullTransparentMesh: 0 +--- !u!114 &293988133779090127 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 11070247326230723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2331a654c7aa71748b92458aa50e1748, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5777099711251569235 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 11070247326230723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &97387752698190353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6309060602930312063} + - component: {fileID: 80258621391742354} + - component: {fileID: 1738492688917058987} + - component: {fileID: 1194942798608871401} + - component: {fileID: 6388068492771513046} + m_Layer: 5 + m_Name: Page Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6309060602930312063 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97387752698190353} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6227897226854095548} + m_Father: {fileID: 8641512021059779286} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -40, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &80258621391742354 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97387752698190353} + m_CullTransparentMesh: 0 +--- !u!114 &1738492688917058987 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97387752698190353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1194942798608871401 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97387752698190353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1738492688917058987} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2522303128527752034} + m_MethodName: SwipeRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 +--- !u!114 &6388068492771513046 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97387752698190353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &127541905976761173 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7116277562353772175} + - component: {fileID: 3261082233185746101} + - component: {fileID: 7592982887714874102} + - component: {fileID: 1747938029670828209} + m_Layer: 5 + m_Name: Exclamation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7116277562353772175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 127541905976761173} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7368421600720008905} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 12, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3261082233185746101 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 127541905976761173} + m_CullTransparentMesh: 0 +--- !u!114 &7592982887714874102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 127541905976761173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bf3ef0ed793cec648b85261648c43e27, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1747938029670828209 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 127541905976761173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &245082372695515032 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4437617399257212789} + - component: {fileID: 4867713107267764482} + - component: {fileID: 7667303445379613288} + - component: {fileID: 2026078117832356598} + m_Layer: 5 + m_Name: ErrorPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4437617399257212789 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 245082372695515032} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1401505348103715165} + - {fileID: 8103583356223253937} + - {fileID: 8415410797451387438} + m_Father: {fileID: 2482191731014220696} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4867713107267764482 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 245082372695515032} + m_CullTransparentMesh: 0 +--- !u!114 &7667303445379613288 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 245082372695515032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2026078117832356598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 245082372695515032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &328851281575151252 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7762568280606121095} + - component: {fileID: 8024943191695011313} + - component: {fileID: 7362090288503381250} + - component: {fileID: 5402558011166370893} + m_Layer: 5 + m_Name: Highest rated > + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7762568280606121095 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328851281575151252} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1230197134381729914} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 64, y: 0} + m_SizeDelta: {x: 283, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &8024943191695011313 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328851281575151252} + m_CullTransparentMesh: 0 +--- !u!114 &7362090288503381250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328851281575151252} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Highest rated + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5402558011166370893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 328851281575151252} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Highest rated + text: {fileID: 7362090288503381250} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &433141317274427940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1230197134381729914} + m_Layer: 5 + m_Name: ModRow_Highest Rated + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1230197134381729914 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 433141317274427940} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7762568280606121095} + - {fileID: 9144147956179003390} + - {fileID: 2482191731014220696} + m_Father: {fileID: 5760055838395833916} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 359} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &8153928342839849703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 475094077524649575} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 8993986987715273322} +--- !u!1 &570410157883730847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4910128418665223718} + - component: {fileID: 3518402878263451624} + - component: {fileID: 7391298777306148601} + - component: {fileID: 3031840003657360422} + m_Layer: 5 + m_Name: Error Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4910128418665223718 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570410157883730847} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5994240068803344250} + m_Father: {fileID: 6914708581523774563} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 168} + m_SizeDelta: {x: 64, y: 64} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &3518402878263451624 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570410157883730847} + m_CullTransparentMesh: 0 +--- !u!114 &7391298777306148601 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570410157883730847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 91a797609e9a1bf4eafc93d15a99087f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3031840003657360422 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 570410157883730847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 9 +--- !u!114 &7905302555261404140 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 590683819935674035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Retry all failed fetches + text: {fileID: 177976614780747353} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &710315220892219158 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2593279480392021872} + - component: {fileID: 736315037153826895} + - component: {fileID: 430313450865213837} + - component: {fileID: 5640388669300148227} + - component: {fileID: 2023597310369919779} + m_Layer: 5 + m_Name: Page Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2593279480392021872 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 710315220892219158} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5496364542001861773} + m_Father: {fileID: 9205084670609649368} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -40, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &736315037153826895 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 710315220892219158} + m_CullTransparentMesh: 0 +--- !u!114 &430313450865213837 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 710315220892219158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5640388669300148227 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 710315220892219158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 430313450865213837} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 961077494286650393} + m_MethodName: SwipeRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 +--- !u!114 &2023597310369919779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 710315220892219158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &749959132770554003 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6243932859373928863} + m_Layer: 5 + m_Name: Highlights + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6243932859373928863 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 749959132770554003} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6062373609210075511} + - {fileID: 8250385431297364735} + m_Father: {fileID: 6475130985988419546} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7507750654048744374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053227178624738031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 8420324484116408034} +--- !u!1 &1253370059702483237 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4293101959910755915} + - component: {fileID: 7624126277662304001} + - component: {fileID: 2251121041795955683} + - component: {fileID: 2710601352341768161} + - component: {fileID: 8351224907352983450} + m_Layer: 5 + m_Name: RowSelectable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4293101959910755915 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253370059702483237} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3494463204094689655} + m_Father: {fileID: 7224393530279423441} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7624126277662304001 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253370059702483237} + m_CullTransparentMesh: 0 +--- !u!114 &2251121041795955683 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253370059702483237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7c24c539ef8622a49a05be42a385d095, type: 3} + m_Name: + m_EditorClassIdentifier: + ErrorPanel: {fileID: 7046131684741935659} + LoadingPanel: {fileID: 9007992486970540322} + RowPanel: {fileID: 4244282727769094987} + MainSelectableHighlights: {fileID: 5494528124479065311} + ModListItemPrefab: {fileID: 3616021901904687619, guid: 6dab28ac97efe3645a00cfa31697b3e0, + type: 3} + ModListItemContainer: {fileID: 6745736109228068663} + AboveSelection: {fileID: 6820534038293358429} + BelowSelection: {fileID: 0} +--- !u!114 &2710601352341768161 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253370059702483237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 6820534038293358429} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7538567955992291370} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2251121041795955683} + m_MethodName: RetryGetMods + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 293988133779090127} + transition: 1 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: + - {fileID: 5862014079134537912} +--- !u!114 &8351224907352983450 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253370059702483237} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78a172db96e209b41a0f30a5676688e3, type: 3} + m_Name: + m_EditorClassIdentifier: + PercentPaddingHorizontal: 0.05 + PercentPaddingVertical: 0.25 + adjustHorizontally: 0 + adjustVertically: 1 + Viewport: {fileID: 5760055837242226404} + DefaultViewportContainer: {fileID: 5760055838395833916} + HorizontalViewportContainer: {fileID: 0} +--- !u!1 &1338792742464149430 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6501039402507660445} + - component: {fileID: 8529746175187210518} + - component: {fileID: 8301768853015568590} + - component: {fileID: 5743065407633856886} + m_Layer: 5 + m_Name: LoadingPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6501039402507660445 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1338792742464149430} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6325928916897540842} + m_Father: {fileID: 7998808985149902515} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8529746175187210518 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1338792742464149430} + m_CullTransparentMesh: 0 +--- !u!114 &8301768853015568590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1338792742464149430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5743065407633856886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1338792742464149430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &1352001165938647406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7670801858938926441} + - component: {fileID: 7450220595241283651} + - component: {fileID: 81118185051261447} + - component: {fileID: 7157316438578106450} + m_Layer: 5 + m_Name: Most popular > + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7670801858938926441 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1352001165938647406} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6677660644696604223} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 64, y: 0} + m_SizeDelta: {x: 283, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &7450220595241283651 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1352001165938647406} + m_CullTransparentMesh: 0 +--- !u!114 &81118185051261447 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1352001165938647406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Most popular + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7157316438578106450 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1352001165938647406} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Most popular + text: {fileID: 81118185051261447} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &1378544536202932751 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4704575437679125224} + - component: {fileID: 2105476164157540784} + - component: {fileID: 2996112663747418391} + - component: {fileID: 7934289743452109689} + m_Layer: 5 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4704575437679125224 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378544536202932751} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8328906162336430733} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2105476164157540784 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378544536202932751} + m_CullTransparentMesh: 0 +--- !u!114 &2996112663747418391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378544536202932751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7934289743452109689 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378544536202932751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &1395601845996872946 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6475130985988419546} + - component: {fileID: 1215102269778846966} + - component: {fileID: 2522303128527752034} + - component: {fileID: 6820534038293358429} + - component: {fileID: 6704893640079599418} + m_Layer: 5 + m_Name: RowSelectable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6475130985988419546 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1395601845996872946} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6243932859373928863} + m_Father: {fileID: 7775025196942318881} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1215102269778846966 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1395601845996872946} + m_CullTransparentMesh: 0 +--- !u!114 &2522303128527752034 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1395601845996872946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7c24c539ef8622a49a05be42a385d095, type: 3} + m_Name: + m_EditorClassIdentifier: + ErrorPanel: {fileID: 8917182276175077081} + LoadingPanel: {fileID: 1546993955868494829} + RowPanel: {fileID: 4043486660149500513} + MainSelectableHighlights: {fileID: 749959132770554003} + ModListItemPrefab: {fileID: 3616021901904687619, guid: 6dab28ac97efe3645a00cfa31697b3e0, + type: 3} + ModListItemContainer: {fileID: 2808773147583204528} + AboveSelection: {fileID: 126850650622171940} + BelowSelection: {fileID: 2710601352341768161} +--- !u!114 &6820534038293358429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1395601845996872946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 126850650622171940} + m_SelectOnDown: {fileID: 2710601352341768161} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1130147604350774106} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2522303128527752034} + m_MethodName: RetryGetMods + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 5696556794969845046} + transition: 1 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: + - {fileID: 327911496839598646} +--- !u!114 &6704893640079599418 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1395601845996872946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78a172db96e209b41a0f30a5676688e3, type: 3} + m_Name: + m_EditorClassIdentifier: + PercentPaddingHorizontal: 0.05 + PercentPaddingVertical: 0.25 + adjustHorizontally: 0 + adjustVertically: 1 + Viewport: {fileID: 5760055837242226404} + DefaultViewportContainer: {fileID: 5760055838395833916} + HorizontalViewportContainer: {fileID: 0} +--- !u!1 &1403451539240919143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5641179401900381504} + m_Layer: 5 + m_Name: ModRow_Recently added + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5641179401900381504 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1403451539240919143} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2803346249607928766} + - {fileID: 4806150429029691436} + - {fileID: 7224393530279423441} + m_Father: {fileID: 5760055838395833916} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 359} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1457986463006630498 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8250385431297364735} + - component: {fileID: 5871104163087347366} + - component: {fileID: 1130147604350774106} + - component: {fileID: 7046769251477191413} + m_Layer: 5 + m_Name: Outline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8250385431297364735 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1457986463006630498} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6243932859373928863} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5871104163087347366 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1457986463006630498} + m_CullTransparentMesh: 0 +--- !u!114 &1130147604350774106 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1457986463006630498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7046769251477191413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1457986463006630498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &1476840108085325060 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2808773147583204528} + - component: {fileID: 8205911975242926779} + - component: {fileID: 4694757854193222468} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2808773147583204528 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1476840108085325060} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8641512021059779286} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0.000061035156, y: 0.00015258789} + m_SizeDelta: {x: 0, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &8205911975242926779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1476840108085325060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 64 + m_Right: 64 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 28 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &4694757854193222468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1476840108085325060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &1480151805485348262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7768067448636396821} + - component: {fileID: 320065405885883359} + - component: {fileID: 3983408340932677055} + - component: {fileID: 4564631768484734975} + - component: {fileID: 7403937337542730013} + m_Layer: 5 + m_Name: Failed to fetch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7768067448636396821 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1480151805485348262} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6914708581523774563} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 132} + m_SizeDelta: {x: 194.59, y: 25.370003} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &320065405885883359 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1480151805485348262} + m_CullTransparentMesh: 0 +--- !u!114 &3983408340932677055 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1480151805485348262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Failed to fetch mods + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4564631768484734975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1480151805485348262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &7403937337542730013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1480151805485348262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Failed to fetch mods + text: {fileID: 3983408340932677055} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &1546993955868494829 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1752478102183024605} + - component: {fileID: 1669654633145126617} + - component: {fileID: 2697921956662065229} + - component: {fileID: 4356839344878913509} + m_Layer: 5 + m_Name: LoadingPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1752478102183024605 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546993955868494829} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3320766725855603506} + m_Father: {fileID: 7775025196942318881} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1669654633145126617 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546993955868494829} + m_CullTransparentMesh: 0 +--- !u!114 &2697921956662065229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546993955868494829} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4356839344878913509 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546993955868494829} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &1780266890080839772 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2803346249607928766} + - component: {fileID: 6271295819906952991} + - component: {fileID: 1196215932083384563} + - component: {fileID: 7725831019261875553} + m_Layer: 5 + m_Name: Recently added > + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2803346249607928766 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1780266890080839772} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5641179401900381504} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 64, y: 0} + m_SizeDelta: {x: 283, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &6271295819906952991 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1780266890080839772} + m_CullTransparentMesh: 0 +--- !u!114 &1196215932083384563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1780266890080839772} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Recently added + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7725831019261875553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1780266890080839772} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Recently added + text: {fileID: 1196215932083384563} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &1879531236010864850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6062373609210075511} + - component: {fileID: 8540839067045358523} + - component: {fileID: 5696556794969845046} + - component: {fileID: 2810684732723898703} + m_Layer: 5 + m_Name: Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6062373609210075511 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1879531236010864850} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6243932859373928863} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8540839067045358523 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1879531236010864850} + m_CullTransparentMesh: 0 +--- !u!114 &5696556794969845046 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1879531236010864850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2331a654c7aa71748b92458aa50e1748, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2810684732723898703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1879531236010864850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &1908151942859717203 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1401505348103715165} + - component: {fileID: 5563348688492463047} + - component: {fileID: 5628243286308637253} + - component: {fileID: 5516403524265058299} + m_Layer: 5 + m_Name: Error Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1401505348103715165 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1908151942859717203} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1751632060915818272} + m_Father: {fileID: 4437617399257212789} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 168} + m_SizeDelta: {x: 64, y: 64} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5563348688492463047 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1908151942859717203} + m_CullTransparentMesh: 0 +--- !u!114 &5628243286308637253 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1908151942859717203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 91a797609e9a1bf4eafc93d15a99087f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5516403524265058299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1908151942859717203} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 9 +--- !u!1 &1927207057109629574 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3235364141091716426} + - component: {fileID: 5146826607743011230} + - component: {fileID: 149915907078773604} + - component: {fileID: 5383583161969257493} + m_Layer: 5 + m_Name: ErrorPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3235364141091716426 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927207057109629574} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7368421600720008905} + - {fileID: 3348216816584570355} + - {fileID: 6434634874148591815} + m_Father: {fileID: 7998808985149902515} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5146826607743011230 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927207057109629574} + m_CullTransparentMesh: 0 +--- !u!114 &149915907078773604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927207057109629574} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5383583161969257493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1927207057109629574} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &8464749848322113283 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2157579194019695166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Retry all failed fetches + text: {fileID: 1710112062607350484} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &2472415123641102837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4069555545533185230} + - component: {fileID: 1593263483005471525} + - component: {fileID: 8243537630706071994} + - component: {fileID: 4041339027058145426} + - component: {fileID: 5404838525870154722} + m_Layer: 5 + m_Name: Page Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4069555545533185230 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2472415123641102837} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7164317584136557773} + m_Father: {fileID: 9144147956179003390} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -40, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &1593263483005471525 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2472415123641102837} + m_CullTransparentMesh: 0 +--- !u!114 &8243537630706071994 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2472415123641102837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4041339027058145426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2472415123641102837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8243537630706071994} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 8148420632553304631} + m_MethodName: SwipeRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 +--- !u!114 &5404838525870154722 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2472415123641102837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &2476207998803975479 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9205084670609649368} + m_Layer: 5 + m_Name: Mod Items Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9205084670609649368 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2476207998803975479} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7844501160337624107} + - {fileID: 3290575739898776701} + - {fileID: 2593279480392021872} + m_Father: {fileID: 7927652363544414619} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 301} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &2479758565231341164 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7368421600720008905} + - component: {fileID: 2968360200424198684} + - component: {fileID: 2400177678430673415} + - component: {fileID: 2526843259909617786} + m_Layer: 5 + m_Name: Error Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7368421600720008905 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2479758565231341164} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7116277562353772175} + m_Father: {fileID: 3235364141091716426} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 168} + m_SizeDelta: {x: 64, y: 64} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &2968360200424198684 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2479758565231341164} + m_CullTransparentMesh: 0 +--- !u!114 &2400177678430673415 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2479758565231341164} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 91a797609e9a1bf4eafc93d15a99087f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2526843259909617786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2479758565231341164} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 9 +--- !u!1 &2568159562269395929 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3957435482710495932} + - component: {fileID: 6046819173387982623} + - component: {fileID: 2174866340546522330} + - component: {fileID: 3373974870820831446} + m_Layer: 5 + m_Name: Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3957435482710495932 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2568159562269395929} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6568531377770842912} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6046819173387982623 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2568159562269395929} + m_CullTransparentMesh: 0 +--- !u!114 &2174866340546522330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2568159562269395929} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2331a654c7aa71748b92458aa50e1748, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3373974870820831446 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2568159562269395929} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &2588865420982281680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1904005893992199385} + - component: {fileID: 2550473727274960489} + m_Layer: 5 + m_Name: Details + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1904005893992199385 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2588865420982281680} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3227478787108492107} + - {fileID: 5760055837487575704} + m_Father: {fileID: 5760055837527483279} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -606} + m_SizeDelta: {x: 952, y: 40} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &2550473727274960489 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2588865420982281680} + m_CullTransparentMesh: 0 +--- !u!1 &2600583094430124613 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3782631751476734999} + - component: {fileID: 4330768493583425699} + - component: {fileID: 7451764348666117991} + - component: {fileID: 2081181276672269927} + m_Layer: 5 + m_Name: Error Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3782631751476734999 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2600583094430124613} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5968799625567422273} + m_Father: {fileID: 8041509762575082362} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 168} + m_SizeDelta: {x: 64, y: 64} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &4330768493583425699 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2600583094430124613} + m_CullTransparentMesh: 0 +--- !u!114 &7451764348666117991 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2600583094430124613} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.85882354, g: 0.3254902, b: 0.33333334, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 91a797609e9a1bf4eafc93d15a99087f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2081181276672269927 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2600583094430124613} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 9 +--- !u!114 &6843359528159565496 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2717753144887088218} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Retry all failed fetches + text: {fileID: 3458110382779991216} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &2958830027415675204 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4174226357644456727} + - component: {fileID: 744685741333805579} + - component: {fileID: 7608431339814648936} + - component: {fileID: 7756081635136469634} + m_Layer: 5 + m_Name: Dropshadow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4174226357644456727 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2958830027415675204} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2714744016542651328} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &744685741333805579 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2958830027415675204} + m_CullTransparentMesh: 0 +--- !u!114 &7608431339814648936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2958830027415675204} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2331a654c7aa71748b92458aa50e1748, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7756081635136469634 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2958830027415675204} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &2960945229545667041 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2960945229545667046} + - component: {fileID: 2960945229545667044} + - component: {fileID: 2960945229545667047} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2960945229545667046 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945229545667041} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5760055837684760253} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2960945229545667044 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945229545667041} + m_CullTransparentMesh: 0 +--- !u!114 &2960945229545667047 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945229545667041} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 0774b14b39d939b4f80ff528506c94ba, type: 3} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: '>' +--- !u!1 &2960945230357676419 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2960945230357676416} + - component: {fileID: 2960945230357676422} + - component: {fileID: 2960945230357676417} + - component: {fileID: 8776311618546079018} + m_Layer: 5 + m_Name: highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2960945230357676416 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945230357676419} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5346609901548097613} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -37} + m_SizeDelta: {x: 72, y: 146} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2960945230357676422 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945230357676419} + m_CullTransparentMesh: 0 +--- !u!114 &2960945230357676417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945230357676419} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ae7af120ee031534f952fdd7a78b80f9, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8776311618546079018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945230357676419} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 4 + colorScheme: {fileID: 0} + image: {fileID: 2960945230357676417} +--- !u!1 &2960945230977109644 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2960945230977109645} + - component: {fileID: 2960945230977109651} + - component: {fileID: 2960945230977109650} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2960945230977109645 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945230977109644} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5760055838803739576} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2960945230977109651 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945230977109644} + m_CullTransparentMesh: 0 +--- !u!114 &2960945230977109650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2960945230977109644} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 0774b14b39d939b4f80ff528506c94ba, type: 3} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: < +--- !u!1 &3112672401298127875 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9144147956179003390} + m_Layer: 5 + m_Name: Mod Items Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9144147956179003390 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3112672401298127875} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 126841961219918621} + - {fileID: 8328906162336430733} + - {fileID: 4069555545533185230} + m_Father: {fileID: 1230197134381729914} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 301} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &3116137587917310743 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6745736109228068663} + - component: {fileID: 2517525990242219982} + - component: {fileID: 5634563628336214906} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6745736109228068663 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116137587917310743} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4806150429029691436} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0.000061035156, y: 0.000091552734} + m_SizeDelta: {x: 0, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2517525990242219982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116137587917310743} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 64 + m_Right: 64 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 28 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &5634563628336214906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3116137587917310743} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &3227478787108492104 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3227478787108492107} + - component: {fileID: 3227478787108492149} + - component: {fileID: 3227478787108492105} + - component: {fileID: 3227478787108492110} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3227478787108492107 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3227478787108492104} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1904005893992199385} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 560, y: 50} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &3227478787108492149 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3227478787108492104} + m_CullTransparentMesh: 0 +--- !u!114 &3227478787108492105 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3227478787108492104} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3227478787108492110 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3227478787108492104} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &3291266321825260854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1587016007410289970} + - component: {fileID: 8319583104441821876} + - component: {fileID: 4862175249450484632} + m_Layer: 5 + m_Name: Image (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1587016007410289970 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3291266321825260854} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8600105461494756807} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 78, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8319583104441821876 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3291266321825260854} + m_CullTransparentMesh: 0 +--- !u!114 &4862175249450484632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3291266321825260854} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1abe564f196a7a54381c40c8ef7de55c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6538474542240260110 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3297079370921380849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 6307084778738225148} +--- !u!114 &6720307159234867504 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3297079371091848245} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 6307084778903185464} +--- !u!114 &1137320149233190250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3297079371940921515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 6307084779731813542} +--- !u!1 &3320264768757642564 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3485997611994867574} + - component: {fileID: 3467295725025997885} + - component: {fileID: 1496940093244392532} + - component: {fileID: 7966349907561277376} + - component: {fileID: 4601365486572797855} + m_Layer: 5 + m_Name: Page Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3485997611994867574 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3320264768757642564} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2116367503642066428} + m_Father: {fileID: 4806150429029691436} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 40, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &3467295725025997885 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3320264768757642564} + m_CullTransparentMesh: 0 +--- !u!114 &1496940093244392532 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3320264768757642564} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7966349907561277376 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3320264768757642564} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1496940093244392532} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2251121041795955683} + m_MethodName: SwipeRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &4601365486572797855 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3320264768757642564} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &3521332459958875506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6227897226854095548} + - component: {fileID: 8459963202896391222} + - component: {fileID: 3449407196871370004} + - component: {fileID: 6049969254683259799} + m_Layer: 5 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6227897226854095548 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3521332459958875506} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6309060602930312063} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8459963202896391222 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3521332459958875506} + m_CullTransparentMesh: 0 +--- !u!114 &3449407196871370004 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3521332459958875506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6049969254683259799 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3521332459958875506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &3523072480072553783 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7844501160337624107} + - component: {fileID: 1886042395428889335} + - component: {fileID: 2545105405946113996} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7844501160337624107 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3523072480072553783} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 9205084670609649368} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0.000061035156, y: 0.00012207031} + m_SizeDelta: {x: 0, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1886042395428889335 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3523072480072553783} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 64 + m_Right: 64 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 28 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &2545105405946113996 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3523072480072553783} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &3624343745448278397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7927652363544414619} + m_Layer: 5 + m_Name: ModRow_Trending + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7927652363544414619 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3624343745448278397} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1624031526298744626} + - {fileID: 9205084670609649368} + - {fileID: 7998808985149902515} + m_Father: {fileID: 5760055838395833916} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 359} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3749877678463142544 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1103860912737953195} + - component: {fileID: 8348018521158070724} + - component: {fileID: 8148420632553304631} + - component: {fileID: 936357247105290562} + - component: {fileID: 3582902114692079943} + m_Layer: 5 + m_Name: RowSelectable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1103860912737953195 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3749877678463142544} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6568531377770842912} + m_Father: {fileID: 2482191731014220696} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8348018521158070724 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3749877678463142544} + m_CullTransparentMesh: 0 +--- !u!114 &8148420632553304631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3749877678463142544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7c24c539ef8622a49a05be42a385d095, type: 3} + m_Name: + m_EditorClassIdentifier: + ErrorPanel: {fileID: 245082372695515032} + LoadingPanel: {fileID: 7923603635805538967} + RowPanel: {fileID: 3112672401298127875} + MainSelectableHighlights: {fileID: 5367179396481162880} + ModListItemPrefab: {fileID: 3616021901904687619, guid: 6dab28ac97efe3645a00cfa31697b3e0, + type: 3} + ModListItemContainer: {fileID: 126841961219918621} + AboveSelection: {fileID: 5346609901548097610} + BelowSelection: {fileID: 126850650622171940} +--- !u!114 &936357247105290562 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3749877678463142544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 5346609901548097610} + m_SelectOnDown: {fileID: 126850650622171940} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 934736042653034038} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 8148420632553304631} + m_MethodName: RetryGetMods + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 2174866340546522330} + transition: 1 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: + - {fileID: 1247282491650438843} +--- !u!114 &3582902114692079943 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3749877678463142544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78a172db96e209b41a0f30a5676688e3, type: 3} + m_Name: + m_EditorClassIdentifier: + PercentPaddingHorizontal: 0.05 + PercentPaddingVertical: 0.25 + adjustHorizontally: 0 + adjustVertically: 1 + Viewport: {fileID: 5760055837242226404} + DefaultViewportContainer: {fileID: 5760055838395833916} + HorizontalViewportContainer: {fileID: 0} +--- !u!1 &3762395240228533553 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8600105461494756807} + - component: {fileID: 5889646863311440989} + m_Layer: 5 + m_Name: Mod support by mod.io (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8600105461494756807 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3762395240228533553} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7400556031270052247} + - {fileID: 7320064122044428091} + - {fileID: 1587016007410289970} + m_Father: {fileID: 5760055838864409643} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 40} + m_SizeDelta: {x: 300, y: 40} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &5889646863311440989 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3762395240228533553} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &1695487116257317269 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3867584340805876192} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 2388764337699028120} +--- !u!1 &4026786283838639177 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8328906162336430733} + - component: {fileID: 6127584244989458099} + - component: {fileID: 5188640205442599329} + - component: {fileID: 7366051303024596544} + - component: {fileID: 2863812867318801946} + m_Layer: 5 + m_Name: Page Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8328906162336430733 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4026786283838639177} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4704575437679125224} + m_Father: {fileID: 9144147956179003390} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 40, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &6127584244989458099 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4026786283838639177} + m_CullTransparentMesh: 0 +--- !u!114 &5188640205442599329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4026786283838639177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7366051303024596544 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4026786283838639177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5188640205442599329} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 8148420632553304631} + m_MethodName: SwipeRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &2863812867318801946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4026786283838639177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &4043486660149500513 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8641512021059779286} + m_Layer: 5 + m_Name: Mod Items Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8641512021059779286 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4043486660149500513} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2808773147583204528} + - {fileID: 7410283501995677904} + - {fileID: 6309060602930312063} + m_Father: {fileID: 6677660644696604223} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 301} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &4112205902619754174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5994240068803344250} + - component: {fileID: 1932629793787846620} + - component: {fileID: 4572471208612021213} + - component: {fileID: 6524785743173480090} + m_Layer: 5 + m_Name: Exclamation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5994240068803344250 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4112205902619754174} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4910128418665223718} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 12, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1932629793787846620 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4112205902619754174} + m_CullTransparentMesh: 0 +--- !u!114 &4572471208612021213 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4112205902619754174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bf3ef0ed793cec648b85261648c43e27, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6524785743173480090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4112205902619754174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &4147900354361302846 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7775025196942318881} + m_Layer: 5 + m_Name: Mod Row Panels + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7775025196942318881 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4147900354361302846} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8041509762575082362} + - {fileID: 1752478102183024605} + - {fileID: 6475130985988419546} + m_Father: {fileID: 6677660644696604223} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -128, y: 301} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &4190229415124150194 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7224393530279423441} + m_Layer: 5 + m_Name: Mod Row Panels + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7224393530279423441 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4190229415124150194} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6914708581523774563} + - {fileID: 8913687650595004255} + - {fileID: 4293101959910755915} + m_Father: {fileID: 5641179401900381504} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -128, y: 301} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &4244282727769094987 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4806150429029691436} + m_Layer: 5 + m_Name: Mod Items Container + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4806150429029691436 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4244282727769094987} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6745736109228068663} + - {fileID: 3485997611994867574} + - {fileID: 435819020512209117} + m_Father: {fileID: 5641179401900381504} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 301} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &4705547689762703881 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7410283501995677904} + - component: {fileID: 19178733436391055} + - component: {fileID: 5488247330623424171} + - component: {fileID: 7191323588121564811} + - component: {fileID: 2902040373895889027} + m_Layer: 5 + m_Name: Page Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7410283501995677904 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4705547689762703881} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5105266302533462081} + m_Father: {fileID: 8641512021059779286} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 40, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &19178733436391055 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4705547689762703881} + m_CullTransparentMesh: 0 +--- !u!114 &5488247330623424171 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4705547689762703881} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7191323588121564811 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4705547689762703881} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5488247330623424171} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2522303128527752034} + m_MethodName: SwipeRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &2902040373895889027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4705547689762703881} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &3822552800568194711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4949908849466198011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Subscribe + text: {fileID: 5691231456873797393} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &1214643860068779282 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5199324008714223792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Retry all failed fetches + text: {fileID: 4786621237777485914} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &5346609901548097612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5346609901548097613} + - component: {fileID: 5346609901548097611} + - component: {fileID: 5346609901548097610} + - component: {fileID: 5346609901548097609} + - component: {fileID: 8065266053913587260} + m_Layer: 5 + m_Name: Center + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5346609901548097613 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5346609901548097612} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2960945230357676416} + m_Father: {fileID: 5760055838897582319} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 960, y: 540} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5346609901548097611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5346609901548097612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bbcd964da59403d42930ac6a72f8f2c5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5346609901548097610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5346609901548097612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 936357247105290562} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2960945230357676417} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2481775387260960443} + m_MethodName: SelectFeaturedMod + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 2960945230090701357} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: + - {fileID: 6758813166262263795} + - {fileID: 3109181258600622993} +--- !u!114 &5346609901548097609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5346609901548097612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78a172db96e209b41a0f30a5676688e3, type: 3} + m_Name: + m_EditorClassIdentifier: + PercentPaddingHorizontal: 0.05 + PercentPaddingVertical: 0.25 + adjustHorizontally: 0 + adjustVertically: 1 + Viewport: {fileID: 5760055837242226404} + DefaultViewportContainer: {fileID: 5760055838395833916} + HorizontalViewportContainer: {fileID: 0} +--- !u!114 &8065266053913587260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5346609901548097612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9e842de213b82ba4d90c8520c94f83b1, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5367179396481162880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6568531377770842912} + m_Layer: 5 + m_Name: Highlights + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6568531377770842912 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5367179396481162880} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3957435482710495932} + - {fileID: 7839671431057247510} + m_Father: {fileID: 1103860912737953195} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2079228338589458093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5420402675149203750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 3566837209152023851} +--- !u!1 &5494528124479065311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3494463204094689655} + m_Layer: 5 + m_Name: Highlights + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3494463204094689655 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5494528124479065311} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5631570825590719846} + - {fileID: 6096481924973618296} + m_Father: {fileID: 4293101959910755915} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5520052216096794371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2482191731014220696} + m_Layer: 5 + m_Name: Mod Row Panels + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2482191731014220696 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5520052216096794371} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4437617399257212789} + - {fileID: 3276554920018460687} + - {fileID: 1103860912737953195} + m_Father: {fileID: 1230197134381729914} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -128, y: 301} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &5556574696940862768 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 479681365169336812} + - component: {fileID: 7912919166892577537} + - component: {fileID: 5747839885396506897} + - component: {fileID: 764427360637293203} + m_Layer: 5 + m_Name: Outline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &479681365169336812 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5556574696940862768} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2714744016542651328} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7912919166892577537 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5556574696940862768} + m_CullTransparentMesh: 0 +--- !u!114 &5747839885396506897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5556574696940862768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &764427360637293203 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5556574696940862768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &5746618046289893688 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7839671431057247510} + - component: {fileID: 6610656722942964461} + - component: {fileID: 934736042653034038} + - component: {fileID: 522720805008148458} + m_Layer: 5 + m_Name: Outline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7839671431057247510 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5746618046289893688} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6568531377770842912} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6610656722942964461 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5746618046289893688} + m_CullTransparentMesh: 0 +--- !u!114 &934736042653034038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5746618046289893688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &522720805008148458 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5746618046289893688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &5760055837231720817 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055837231720816} + - component: {fileID: 5760055837231720831} + m_Layer: 5 + m_Name: RightMost + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055837231720816 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837231720817} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5760055838897582319} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1920, y: 0} + m_SizeDelta: {x: 906, y: 510} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5760055837231720831 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837231720817} + m_CullTransparentMesh: 0 +--- !u!1 &5760055837242226405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055837242226404} + - component: {fileID: 2481775387260960443} + m_Layer: 5 + m_Name: Home + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055837242226404 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837242226405} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5760055838456421178} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2481775387260960443 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837242226405} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9a181712313aa74597d2fd0cad977f4, type: 3} + m_Name: + m_EditorClassIdentifier: + BrowserPanel: {fileID: 5760055837242226405} + BrowserPanelContent: {fileID: 5760055838395833916} + BrowserPanelModListRow_HighestRated: {fileID: 8148420632553304631} + BrowserPanelModListRow_Trending: {fileID: 961077494286650393} + BrowserPanelModListRow_MostPopular: {fileID: 2522303128527752034} + BrowserPanelModListRow_RecentlyAdded: {fileID: 2251121041795955683} + BrowserPanelHeaderBackground: {fileID: 0} + BrowserPanelContentScrollBar: {fileID: 5760055838370208910} + featuredSlotListItems: + - {fileID: 1712571296581473621} + - {fileID: 1712571297289990801} + - {fileID: 3789781511054597007} + - {fileID: 8159661877114048582} + - {fileID: 1712571296287095243} + featuredSlotPositions: + - {fileID: 5760055837362136015} + - {fileID: 5760055839057535352} + - {fileID: 5346609901548097613} + - {fileID: 5760055837879226655} + - {fileID: 5760055837231720816} + featuredSelectedName: {fileID: 3227478787108492110} + featuredSelectedSubscribeButtonText: {fileID: 5691231456873797393} + featuredSelectedMoreOptionsButtonPosition: {fileID: 6661404417012533100} + browserFeaturedSlotSelectionHighlightBorder: {fileID: 2960945230357676419} + browserFeaturedSlotBackplate: {fileID: 5760055838203041011} + browserFeaturedSlotInfo: {fileID: 2588865420982281680} + featuredOptionsButtons: {fileID: 5760055837487575705} + scrollRect: {fileID: 5760055838456421158} + browserFeaturedSlotSelection: {fileID: 5346609901548097610} +--- !u!1 &5760055837362136000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055837362136015} + - component: {fileID: 5760055837362136014} + m_Layer: 5 + m_Name: LeftMost + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055837362136015 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837362136000} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5760055838897582319} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -1920, y: 0} + m_SizeDelta: {x: 906, y: 510} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5760055837362136014 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837362136000} + m_CullTransparentMesh: 0 +--- !u!1 &5760055837487575705 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055837487575704} + - component: {fileID: 5760055837487575687} + - component: {fileID: 4849105315695901175} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055837487575704 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837487575705} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4056221102521404262} + - {fileID: 6661404417012533100} + m_Father: {fileID: 1904005893992199385} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &5760055837487575687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837487575705} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 20 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &4849105315695901175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837487575705} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &5760055837527483264 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055837527483279} + - component: {fileID: 5760055837527483278} + m_Layer: 5 + m_Name: Featured Rect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055837527483279 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837527483264} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5760055838203041013} + - {fileID: 5760055838067006261} + - {fileID: 5760055838803739576} + - {fileID: 5760055837684760253} + - {fileID: 1904005893992199385} + m_Father: {fileID: 5760055839024060862} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5760055837527483278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837527483264} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &5760055837684760254 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055837684760253} + - component: {fileID: 5760055837684760250} + - component: {fileID: 5760055837684760251} + - component: {fileID: 5760055837684760252} + - component: {fileID: 3904946412240464002} + m_Layer: 5 + m_Name: Page Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055837684760253 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837684760254} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2960945229545667046} + m_Father: {fileID: 5760055837527483279} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 920, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5760055837684760250 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837684760254} + m_CullTransparentMesh: 0 +--- !u!114 &5760055837684760251 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837684760254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5760055837684760252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837684760254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5760055837684760251} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2481775387260960443} + m_MethodName: PageFeaturedRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 +--- !u!114 &3904946412240464002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837684760254} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &5760055837879226640 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055837879226655} + - component: {fileID: 5760055837879226653} + - component: {fileID: 5760055837879226652} + - component: {fileID: 5760055837879226654} + m_Layer: 5 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055837879226655 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837879226640} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5760055838897582319} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 980, y: 0} + m_SizeDelta: {x: 906, y: 510} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5760055837879226653 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837879226640} + m_CullTransparentMesh: 0 +--- !u!114 &5760055837879226652 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837879226640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5760055837879226654} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2481775387260960443} + m_MethodName: PageFeaturedRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 +--- !u!114 &5760055837879226654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837879226640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5760055837943744820 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055837943744819} + - component: {fileID: 5760055837943744817} + - component: {fileID: 5760055837943744818} + - component: {fileID: 388787987728770390} + m_Layer: 5 + m_Name: Featured mods > + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055837943744819 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837943744820} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5760055839024060862} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: 0} + m_SizeDelta: {x: 283, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5760055837943744817 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837943744820} + m_CullTransparentMesh: 0 +--- !u!114 &5760055837943744818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837943744820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Featured mods + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &388787987728770390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055837943744820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Featured mods + text: {fileID: 5760055837943744818} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &5760055838030722349 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838030722348} + - component: {fileID: 5760055838030722345} + - component: {fileID: 5760055838030722346} + - component: {fileID: 5760055838030722347} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838030722348 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838030722349} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5760055838385861465} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5760055838030722345 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838030722349} + m_CullTransparentMesh: 0 +--- !u!114 &5760055838030722346 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838030722349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5760055838030722347 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838030722349} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &5760055838067006262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838067006261} + m_Layer: 5 + m_Name: Featured List Items + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838067006261 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838067006262} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2401922753284782821} + - {fileID: 2401922753114184993} + - {fileID: 146680028341728319} + - {fileID: 5165047952197910518} + - {fileID: 2401922754124945019} + - {fileID: 5760055838897582319} + m_Father: {fileID: 5760055837527483279} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -36} + m_SizeDelta: {x: 1920, y: 540} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &5760055838203041014 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838203041013} + - component: {fileID: 5760055838203041010} + - component: {fileID: 5760055838203041011} + - component: {fileID: 5760055838203041012} + m_Layer: 5 + m_Name: Featured Backplate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838203041013 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838203041014} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5760055837527483279} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 992, y: 646} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &5760055838203041010 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838203041014} + m_CullTransparentMesh: 0 +--- !u!114 &5760055838203041011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838203041014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1d7a613ab4eb9984ca2ff61802b05e50, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5760055838203041012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838203041014} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5760055838370208896 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838370208911} + - component: {fileID: 5760055838370208908} + - component: {fileID: 5760055838370208909} + - component: {fileID: 5760055838370208910} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838370208911 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838370208896} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5760055838385861465} + m_Father: {fileID: 5760055838456421178} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -8, y: -50.00049} + m_SizeDelta: {x: 8, y: -180} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5760055838370208908 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838370208896} + m_CullTransparentMesh: 0 +--- !u!114 &5760055838370208909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838370208896} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5760055838370208910 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838370208896} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5760055838030722346} + m_HandleRect: {fileID: 5760055838030722348} + m_Direction: 2 + m_Value: 1 + m_Size: 0.313105 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2481775387260960443} + m_MethodName: OnScrollValueChange + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &5760055838385861466 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838385861465} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838385861465 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838385861466} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5760055838030722348} + m_Father: {fileID: 5760055838370208911} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5760055838395833917 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838395833916} + - component: {fileID: 5760055838395833915} + - component: {fileID: 5760055838395833914} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838395833916 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838395833917} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 9061634454445475437} + - {fileID: 5760055839024060862} + - {fileID: 1230197134381729914} + - {fileID: 7927652363544414619} + - {fileID: 6677660644696604223} + - {fileID: 5641179401900381504} + - {fileID: 5760055838864409643} + m_Father: {fileID: 5760055838456421178} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &5760055838395833915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838395833917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 164 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 64 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &5760055838395833914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838395833917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &5760055838456421179 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838456421178} + - component: {fileID: 5760055838456421158} + - component: {fileID: 5760055838456421159} + - component: {fileID: 5760055838456421176} + - component: {fileID: 5760055838456421177} + m_Layer: 5 + m_Name: Main View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838456421178 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838456421179} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5760055838395833916} + - {fileID: 5760055838370208911} + m_Father: {fileID: 5760055837242226404} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5760055838456421158 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838456421179} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 5760055838395833916} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.1 + m_ScrollSensitivity: 100 + m_Viewport: {fileID: 5760055838456421178} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 5760055838370208910} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2481775387260960443} + m_MethodName: OnScrollValueChange + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &5760055838456421159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838456421179} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!222 &5760055838456421176 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838456421179} + m_CullTransparentMesh: 0 +--- !u!114 &5760055838456421177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838456421179} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.003921569} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5760055838803739577 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838803739576} + - component: {fileID: 5760055838803739557} + - component: {fileID: 5760055838803739558} + - component: {fileID: 5760055838803739559} + - component: {fileID: 8804625801360902364} + m_Layer: 5 + m_Name: Page Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838803739576 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838803739577} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2960945230977109645} + m_Father: {fileID: 5760055837527483279} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -920, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &5760055838803739557 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838803739577} + m_CullTransparentMesh: 0 +--- !u!114 &5760055838803739558 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838803739577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5760055838803739559 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838803739577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5760055838803739558} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2481775387260960443} + m_MethodName: PageFeaturedRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &8804625801360902364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838803739577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &5760055838864409644 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838864409643} + m_Layer: 5 + m_Name: Footer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838864409643 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838864409644} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8600105461494756807} + m_Father: {fileID: 5760055838395833916} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5760055838897582304 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055838897582319} + m_Layer: 5 + m_Name: Featured Index Positions + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055838897582319 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055838897582304} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5760055837362136015} + - {fileID: 5760055839057535352} + - {fileID: 5346609901548097613} + - {fileID: 5760055837879226655} + - {fileID: 5760055837231720816} + m_Father: {fileID: 5760055838067006261} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 540} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &5760055839024060863 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055839024060862} + m_Layer: 5 + m_Name: Featured Row + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055839024060862 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055839024060863} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5760055837943744819} + - {fileID: 5760055837527483279} + m_Father: {fileID: 5760055838395833916} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 686} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &5760055839057535353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5760055839057535352} + - component: {fileID: 5760055839057535334} + - component: {fileID: 5760055839057535333} + - component: {fileID: 5760055839057535335} + m_Layer: 5 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5760055839057535352 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055839057535353} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5760055838897582319} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -980, y: 0} + m_SizeDelta: {x: 906, y: 510} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5760055839057535334 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055839057535353} + m_CullTransparentMesh: 0 +--- !u!114 &5760055839057535333 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055839057535353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5760055839057535335} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2481775387260960443} + m_MethodName: PageFeaturedRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &5760055839057535335 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5760055839057535353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5789345133428465438 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1751632060915818272} + - component: {fileID: 1786240713247735334} + - component: {fileID: 6576051325308167545} + - component: {fileID: 5390375339313144390} + m_Layer: 5 + m_Name: Exclamation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1751632060915818272 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5789345133428465438} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1401505348103715165} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 12, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1786240713247735334 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5789345133428465438} + m_CullTransparentMesh: 0 +--- !u!114 &6576051325308167545 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5789345133428465438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bf3ef0ed793cec648b85261648c43e27, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5390375339313144390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5789345133428465438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &5804057820792998972 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 126841961219918621} + - component: {fileID: 1141188336913183789} + - component: {fileID: 5779329535300732311} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &126841961219918621 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5804057820792998972} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 9144147956179003390} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0.000061035156, y: 0.000061035156} + m_SizeDelta: {x: 0, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1141188336913183789 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5804057820792998972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 64 + m_Right: 64 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 28 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &5779329535300732311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5804057820792998972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &5816005563908331636 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5496364542001861773} + - component: {fileID: 3559016184031477060} + - component: {fileID: 6114259360687288236} + - component: {fileID: 4399013764041935350} + m_Layer: 5 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5496364542001861773 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5816005563908331636} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2593279480392021872} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3559016184031477060 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5816005563908331636} + m_CullTransparentMesh: 0 +--- !u!114 &6114259360687288236 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5816005563908331636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4399013764041935350 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5816005563908331636} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5827141898950107625 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3348216816584570355} + - component: {fileID: 1863393141006451123} + - component: {fileID: 3822325950947159988} + - component: {fileID: 6338540391755388299} + - component: {fileID: 8586183340922413435} + m_Layer: 5 + m_Name: Failed to fetch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3348216816584570355 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5827141898950107625} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3235364141091716426} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 132} + m_SizeDelta: {x: 194.59, y: 25.370003} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &1863393141006451123 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5827141898950107625} + m_CullTransparentMesh: 0 +--- !u!114 &3822325950947159988 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5827141898950107625} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Failed to fetch mods + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &6338540391755388299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5827141898950107625} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &8586183340922413435 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5827141898950107625} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Failed to fetch mods + text: {fileID: 3822325950947159988} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &5582723225925148102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6004666974532931693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 5178628546196477205} +--- !u!114 &762097077507522159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6004666975669263159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 5178628547198721615} +--- !u!114 &5948634683712322172 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6004666975772622067} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 5178628547027220875} +--- !u!114 &2960945229548237462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6185195325434835825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8756585969402851012} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2449030627395505075} + m_MethodName: OpenModDetailsForThisModProfile + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &6470082028241754767 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6096481924973618296} + - component: {fileID: 5898105387194535735} + - component: {fileID: 7538567955992291370} + - component: {fileID: 2918540887317537745} + m_Layer: 5 + m_Name: Outline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6096481924973618296 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6470082028241754767} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3494463204094689655} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5898105387194535735 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6470082028241754767} + m_CullTransparentMesh: 0 +--- !u!114 &7538567955992291370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6470082028241754767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f60c6439d2c5aef4680dc039853db562, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2918540887317537745 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6470082028241754767} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &6551494193765274311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5968799625567422273} + - component: {fileID: 7519999191815108146} + - component: {fileID: 2736239428241544586} + - component: {fileID: 637484464769982025} + m_Layer: 5 + m_Name: Exclamation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5968799625567422273 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6551494193765274311} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3782631751476734999} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 12, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7519999191815108146 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6551494193765274311} + m_CullTransparentMesh: 0 +--- !u!114 &2736239428241544586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6551494193765274311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bf3ef0ed793cec648b85261648c43e27, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &637484464769982025 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6551494193765274311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &6728189216756022017 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7998808985149902515} + m_Layer: 5 + m_Name: Mod Row Panels + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7998808985149902515 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6728189216756022017} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3235364141091716426} + - {fileID: 6501039402507660445} + - {fileID: 9142932502483850576} + m_Father: {fileID: 7927652363544414619} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -128, y: 301} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &6858159661338128569 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 435819020512209117} + - component: {fileID: 9155106753853680142} + - component: {fileID: 1990528596262118944} + - component: {fileID: 1500001961907796000} + - component: {fileID: 4937648187081177985} + m_Layer: 5 + m_Name: Page Right + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &435819020512209117 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6858159661338128569} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7957012086486316792} + m_Father: {fileID: 4806150429029691436} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -40, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &9155106753853680142 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6858159661338128569} + m_CullTransparentMesh: 0 +--- !u!114 &1990528596262118944 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6858159661338128569} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1500001961907796000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6858159661338128569} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1990528596262118944} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2251121041795955683} + m_MethodName: SwipeRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 +--- !u!114 &4937648187081177985 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6858159661338128569} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &6958804181134327471 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7320064122044428091} + - component: {fileID: 3243911583827942615} + - component: {fileID: 1611259920501839651} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7320064122044428091 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6958804181134327471} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8600105461494756807} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3243911583827942615 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6958804181134327471} + m_CullTransparentMesh: 0 +--- !u!114 &1611259920501839651 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6958804181134327471} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6970245048652602738 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1624031526298744626} + - component: {fileID: 7503463610766772197} + - component: {fileID: 4338456386790705458} + - component: {fileID: 6590103499955700473} + m_Layer: 5 + m_Name: Trending > + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1624031526298744626 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6970245048652602738} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7927652363544414619} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 64, y: 0} + m_SizeDelta: {x: 283, y: 40} + m_Pivot: {x: 0, y: 1} +--- !u!222 &7503463610766772197 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6970245048652602738} + m_CullTransparentMesh: 0 +--- !u!114 &4338456386790705458 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6970245048652602738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Trending + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 28 + m_fontSizeBase: 28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &6590103499955700473 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6970245048652602738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Trending + text: {fileID: 4338456386790705458} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7000493217150169880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6677660644696604223} + m_Layer: 5 + m_Name: ModRow_Most popular + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6677660644696604223 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7000493217150169880} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7670801858938926441} + - {fileID: 8641512021059779286} + - {fileID: 7775025196942318881} + m_Father: {fileID: 5760055838395833916} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1920, y: 359} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7046131684741935659 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6914708581523774563} + - component: {fileID: 6201865373808570761} + - component: {fileID: 7025909234776504534} + - component: {fileID: 8708248776209235468} + m_Layer: 5 + m_Name: ErrorPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6914708581523774563 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7046131684741935659} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4910128418665223718} + - {fileID: 7768067448636396821} + - {fileID: 3809123786290613293} + m_Father: {fileID: 7224393530279423441} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6201865373808570761 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7046131684741935659} + m_CullTransparentMesh: 0 +--- !u!114 &7025909234776504534 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7046131684741935659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8708248776209235468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7046131684741935659} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7260892844688357895 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5105266302533462081} + - component: {fileID: 285959417149367952} + - component: {fileID: 7682678825094310565} + - component: {fileID: 3378671838576473904} + m_Layer: 5 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5105266302533462081 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260892844688357895} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7410283501995677904} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &285959417149367952 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260892844688357895} + m_CullTransparentMesh: 0 +--- !u!114 &7682678825094310565 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260892844688357895} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3378671838576473904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7260892844688357895} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7350244591244291496 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7164317584136557773} + - component: {fileID: 6852057851942628879} + - component: {fileID: 5173510416939634720} + - component: {fileID: 8127986047100534342} + m_Layer: 5 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7164317584136557773 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7350244591244291496} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4069555545533185230} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6852057851942628879 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7350244591244291496} + m_CullTransparentMesh: 0 +--- !u!114 &5173510416939634720 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7350244591244291496} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8127986047100534342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7350244591244291496} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7480778162944276318 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7957012086486316792} + - component: {fileID: 57073405969563085} + - component: {fileID: 1593655339834263075} + - component: {fileID: 1751786305359861364} + m_Layer: 5 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7957012086486316792 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7480778162944276318} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 435819020512209117} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &57073405969563085 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7480778162944276318} + m_CullTransparentMesh: 0 +--- !u!114 &1593655339834263075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7480778162944276318} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1751786305359861364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7480778162944276318} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7568424668732415792 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7400556031270052247} + - component: {fileID: 5007974329950115878} + - component: {fileID: 2666328831239230183} + - component: {fileID: 388757779518125694} + m_Layer: 5 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7400556031270052247 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7568424668732415792} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8600105461494756807} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 130, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5007974329950115878 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7568424668732415792} + m_CullTransparentMesh: 0 +--- !u!114 &2666328831239230183 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7568424668732415792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Mod support by + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &388757779518125694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7568424668732415792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &7654624249032854811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1513457552958644243} + - component: {fileID: 5353104926853468334} + - component: {fileID: 9193140308264717574} + - component: {fileID: 8156251311170559818} + m_Layer: 5 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1513457552958644243 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7654624249032854811} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3290575739898776701} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5353104926853468334 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7654624249032854811} + m_CullTransparentMesh: 0 +--- !u!114 &9193140308264717574 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7654624249032854811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8156251311170559818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7654624249032854811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7677036235723793262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1664098654755114668} + - component: {fileID: 2079353304605004878} + - component: {fileID: 6573323893487487196} + - component: {fileID: 1244961684183644020} + - component: {fileID: 1641677791321614757} + m_Layer: 5 + m_Name: Failed to fetch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1664098654755114668 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7677036235723793262} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8041509762575082362} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 132} + m_SizeDelta: {x: 194.59, y: 25.370003} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &2079353304605004878 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7677036235723793262} + m_CullTransparentMesh: 0 +--- !u!114 &6573323893487487196 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7677036235723793262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Failed to fetch mods + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1244961684183644020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7677036235723793262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &1641677791321614757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7677036235723793262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Failed to fetch mods + text: {fileID: 6573323893487487196} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7761927191435843120 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2714744016542651328} + m_Layer: 5 + m_Name: Highlights + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2714744016542651328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7761927191435843120} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4174226357644456727} + - {fileID: 479681365169336812} + m_Father: {fileID: 9142932502483850576} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7850747361532961066 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3290575739898776701} + - component: {fileID: 3708585115004107790} + - component: {fileID: 7383234840435636631} + - component: {fileID: 7867082591680879536} + - component: {fileID: 4664961308672960731} + m_Layer: 5 + m_Name: Page Left + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3290575739898776701 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7850747361532961066} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1513457552958644243} + m_Father: {fileID: 9205084670609649368} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 40, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &3708585115004107790 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7850747361532961066} + m_CullTransparentMesh: 0 +--- !u!114 &7383234840435636631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7850747361532961066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7867082591680879536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7850747361532961066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7383234840435636631} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 961077494286650393} + m_MethodName: SwipeRow + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &4664961308672960731 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7850747361532961066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - eventID: 4 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &7923603635805538967 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3276554920018460687} + - component: {fileID: 7404621394306933416} + - component: {fileID: 1208090450898607754} + - component: {fileID: 8387828397140033858} + m_Layer: 5 + m_Name: LoadingPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &3276554920018460687 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7923603635805538967} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4572481533955290054} + m_Father: {fileID: 2482191731014220696} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7404621394306933416 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7923603635805538967} + m_CullTransparentMesh: 0 +--- !u!114 &1208090450898607754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7923603635805538967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8387828397140033858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7923603635805538967} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7938089249200574224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2116367503642066428} + - component: {fileID: 8335913957185539974} + - component: {fileID: 3768161416618134728} + - component: {fileID: 5325017955118404512} + m_Layer: 5 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2116367503642066428 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7938089249200574224} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3485997611994867574} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8335913957185539974 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7938089249200574224} + m_CullTransparentMesh: 0 +--- !u!114 &3768161416618134728 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7938089249200574224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 3b4f799ae62d42041ac993e0b2ef8ff5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5325017955118404512 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7938089249200574224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &3016909722375194229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8072869995420742185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 7242469383006943057} +--- !u!114 &6044816181354508990 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8647640806741456545} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 7820611297380938713} +--- !u!1 &8917182276175077081 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8041509762575082362} + - component: {fileID: 4990111275128904987} + - component: {fileID: 8504139325111461145} + - component: {fileID: 5206016459764628226} + m_Layer: 5 + m_Name: ErrorPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8041509762575082362 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8917182276175077081} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3782631751476734999} + - {fileID: 1664098654755114668} + - {fileID: 6992487807974688419} + m_Father: {fileID: 7775025196942318881} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4990111275128904987 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8917182276175077081} + m_CullTransparentMesh: 0 +--- !u!114 &8504139325111461145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8917182276175077081} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5206016459764628226 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8917182276175077081} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5885099853580143000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8920798156313719407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: More options + text: {fileID: 8920798156313719405} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &9007992486970540322 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8913687650595004255} + - component: {fileID: 2888907606410802720} + - component: {fileID: 6310678568168818378} + - component: {fileID: 4548620718517461500} + m_Layer: 5 + m_Name: LoadingPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8913687650595004255 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9007992486970540322} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4767083568656321468} + m_Father: {fileID: 7224393530279423441} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2888907606410802720 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9007992486970540322} + m_CullTransparentMesh: 0 +--- !u!114 &6310678568168818378 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9007992486970540322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4548620718517461500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9007992486970540322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &9057478845284533333 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9142932502483850576} + - component: {fileID: 4668995753238682046} + - component: {fileID: 961077494286650393} + - component: {fileID: 126850650622171940} + - component: {fileID: 8076003954540550152} + m_Layer: 5 + m_Name: RowSelectable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9142932502483850576 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9057478845284533333} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2714744016542651328} + m_Father: {fileID: 7998808985149902515} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4668995753238682046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9057478845284533333} + m_CullTransparentMesh: 0 +--- !u!114 &961077494286650393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9057478845284533333} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7c24c539ef8622a49a05be42a385d095, type: 3} + m_Name: + m_EditorClassIdentifier: + ErrorPanel: {fileID: 1927207057109629574} + LoadingPanel: {fileID: 1338792742464149430} + RowPanel: {fileID: 2476207998803975479} + MainSelectableHighlights: {fileID: 7761927191435843120} + ModListItemPrefab: {fileID: 3616021901904687619, guid: 6dab28ac97efe3645a00cfa31697b3e0, + type: 3} + ModListItemContainer: {fileID: 7844501160337624107} + AboveSelection: {fileID: 936357247105290562} + BelowSelection: {fileID: 6820534038293358429} +--- !u!114 &126850650622171940 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9057478845284533333} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 4 + m_SelectOnUp: {fileID: 936357247105290562} + m_SelectOnDown: {fileID: 6820534038293358429} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5747839885396506897} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 961077494286650393} + m_MethodName: RetryGetMods + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 7608431339814648936} + transition: 1 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: + - {fileID: 4380556625283861586} +--- !u!114 &8076003954540550152 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9057478845284533333} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 78a172db96e209b41a0f30a5676688e3, type: 3} + m_Name: + m_EditorClassIdentifier: + PercentPaddingHorizontal: 0.05 + PercentPaddingVertical: 0.25 + adjustHorizontally: 0 + adjustVertically: 1 + Viewport: {fileID: 5760055837242226404} + DefaultViewportContainer: {fileID: 5760055838395833916} + HorizontalViewportContainer: {fileID: 0} +--- !u!1 &9199711342294974878 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8103583356223253937} + - component: {fileID: 6669722855109062111} + - component: {fileID: 4897917125442554111} + - component: {fileID: 5207041807206620523} + - component: {fileID: 7041225697667395692} + m_Layer: 5 + m_Name: Failed to fetch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8103583356223253937 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9199711342294974878} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4437617399257212789} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 132} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &6669722855109062111 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9199711342294974878} + m_CullTransparentMesh: 0 +--- !u!114 &4897917125442554111 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9199711342294974878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Failed to fetch mods + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5207041807206620523 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9199711342294974878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &7041225697667395692 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9199711342294974878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Failed to fetch mods + text: {fileID: 4897917125442554111} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1001 &576397482866874263 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4437617399257212789} + m_Modifications: + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_text + value: LS + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189428, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.x + value: 167.265 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_text + value: Retry all failed fetches + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 8148420632553304631} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: RetryGetMods + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 100.5 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6442999689545999158, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Name + value: Button with Cue Variant + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 201 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 68 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} +--- !u!1 &590683819935674035 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1138638543927884068, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 576397482866874263} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1247282491650438843 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 576397482866874263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &8415410797451387438 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 576397482866874263} + m_PrefabAsset: {fileID: 0} +--- !u!114 &177976614780747353 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 576397482866874263} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 590683819935674035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1118649038973274318 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8913687650595004255} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &4767083568656321468 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 1118649038973274318} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1313928908180222746 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8041509762575082362} + m_Modifications: + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_text + value: LS + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.characterCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189428, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.x + value: 167.265 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_text + value: Retry all failed fetches + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.wordCount + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.characterCount + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2522303128527752034} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: RetryGetMods + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 130.06 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 100.5 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 6442999689545999158, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Name + value: Button with Cue Variant + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 201 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 68 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} +--- !u!114 &1710112062607350484 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 1313928908180222746} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2157579194019695166} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &2157579194019695166 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1138638543927884068, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 1313928908180222746} + m_PrefabAsset: {fileID: 0} +--- !u!114 &327911496839598646 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 1313928908180222746} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6992487807974688419 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 1313928908180222746} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1901678705630357912 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6501039402507660445} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &6325928916897540842 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 1901678705630357912} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2960945229119092631 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5760055838067006261} + m_Modifications: + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4580715859929486334, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5384421881642650634, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5461561580308136585, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6263590729001574840, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: rowIndex + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: profileIndex + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6485702370369012655, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6835143412918618022, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899110051886, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299680, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Name + value: BrowserModListItem_Featured + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.x + value: 906 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.y + value: 510 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 980 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9025299317110473926, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7274536023900411211, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + - {fileID: 2395107722392766565, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} +--- !u!224 &5165047952197910518 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 2960945229119092631} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3867584340805876192 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2070257837969182327, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 2960945229119092631} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5420402675149203750 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7074662966819266225, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 2960945229119092631} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3566837209152023851 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1758814485367298748, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 2960945229119092631} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5420402675149203750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2388764337699028120 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 2960945229119092631} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3867584340805876192} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8159661877114048582 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 2960945229119092631} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a89e843efc4975840844b6f3376f59fc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &3060802529698884990 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3235364141091716426} + m_Modifications: + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_text + value: LS + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.characterCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189428, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.x + value: 167.265 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_text + value: Retry all failed fetches + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.wordCount + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.characterCount + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 961077494286650393} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: RetryGetMods + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 130.06 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 100.5 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 6442999689545999158, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Name + value: Button with Cue Variant + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 201 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 68 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} +--- !u!114 &3458110382779991216 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 3060802529698884990} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2717753144887088218} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &2717753144887088218 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1138638543927884068, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 3060802529698884990} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4380556625283861586 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 3060802529698884990} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6434634874148591815 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 3060802529698884990} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5182222716198058388 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6914708581523774563} + m_Modifications: + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_text + value: LS + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.characterCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189428, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.x + value: 167.265 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_text + value: Retry all failed fetches + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.wordCount + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.characterCount + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2251121041795955683} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: RetryGetMods + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 130.06 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 100.5 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 6442999689545999158, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Name + value: Button with Cue Variant + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 201 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 68 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} +--- !u!224 &3809123786290613293 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 5182222716198058388} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5862014079134537912 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 5182222716198058388} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5199324008714223792 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1138638543927884068, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 5182222716198058388} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4786621237777485914 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 5182222716198058388} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5199324008714223792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5439462583199170271 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5760055837487575704} + m_Modifications: + - target: {fileID: 2112189428, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.x + value: 108.207504 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.characterCount + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 633481555297344425, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: setting + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 633481555297344425, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_TargetGraphic + value: + objectReference: {fileID: 5790463146231801133} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.data[3].isControllerButtonIcon + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2481775387260960443} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: SubscribeToFeaturedMod + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 73.5 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5368131105586753606, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5368131105586753606, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5368131105586753606, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5368131105586753606, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5378085518999316719, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6442999689545999158, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Name + value: Subscribe Button + objectReference: {fileID: 0} + - target: {fileID: 8018215697222549953, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8018215697222549953, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8018215697222549953, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8018215697222549953, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8018215697222549953, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8018215697222549953, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8018215697222549953, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 147 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8502793601590996624, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: config + value: + objectReference: {fileID: 11400000, guid: 7d70f9fe2efe2f6419f680ba2604b7d7, + type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} +--- !u!224 &4056221102521404262 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 5439462583199170271} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4949908849466198011 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1138638543927884068, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 5439462583199170271} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5691231456873797393 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 5439462583199170271} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4949908849466198011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6758813166262263795 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 5439462583199170271} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5790463146231801133 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1956534672024296434, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 5439462583199170271} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5760055837304107652 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5760055838067006261} + m_Modifications: + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4580715859929486334, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5384421881642650634, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5461561580308136585, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6263590729001574840, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: rowIndex + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: profileIndex + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6485702370369012655, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6835143412918618022, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899110051886, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299680, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Name + value: BrowserModListItem_Featured (2) + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.x + value: 906 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.y + value: 510 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -1920 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9025299317110473926, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7274536023900411211, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + - {fileID: 2395107722392766565, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} +--- !u!114 &1712571296581473621 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837304107652} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a89e843efc4975840844b6f3376f59fc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2401922753284782821 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837304107652} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6307084778903185464 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1758814485367298748, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837304107652} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3297079371091848245} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3297079371091848245 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7074662966819266225, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837304107652} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5178628547027220875 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837304107652} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6004666975772622067} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6004666975772622067 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2070257837969182327, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837304107652} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5760055837738800448 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5760055838067006261} + m_Modifications: + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4580715859929486334, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5384421881642650634, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5461561580308136585, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6263590729001574840, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: rowIndex + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: profileIndex + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 6485702370369012655, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6835143412918618022, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899110051886, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299680, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Name + value: BrowserModListItem_Featured (3) + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299680, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.x + value: 906 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.y + value: 510 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -980 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9025299317110473926, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7274536023900411211, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + - {fileID: 2395107722392766565, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} +--- !u!1 &6004666975669263159 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2070257837969182327, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837738800448} + m_PrefabAsset: {fileID: 0} +--- !u!224 &2401922753114184993 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837738800448} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1712571297289990801 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837738800448} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a89e843efc4975840844b6f3376f59fc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &5178628547198721615 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837738800448} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6004666975669263159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3297079370921380849 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7074662966819266225, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837738800448} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6307084778738225148 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1758814485367298748, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055837738800448} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3297079370921380849} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5760055838732525082 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5760055838067006261} + m_Modifications: + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 80111883152325677, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2162522345605876853, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4580715859929486334, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5384421881642650634, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5461561580308136585, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6263590729001574840, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: rowIndex + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: profileIndex + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6485702370369012655, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6835143412918618022, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899110051886, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299680, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Name + value: BrowserModListItem_Featured (1) + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.x + value: 906 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.y + value: 510 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1920 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8203825838756300506, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9025299317110473926, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7274536023900411211, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + - {fileID: 2395107722392766565, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} +--- !u!224 &2401922754124945019 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055838732525082} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5178628546196477205 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055838732525082} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6004666974532931693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6004666974532931693 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2070257837969182327, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055838732525082} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1712571296287095243 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055838732525082} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a89e843efc4975840844b6f3376f59fc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6307084779731813542 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1758814485367298748, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055838732525082} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3297079371940921515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3297079371940921515 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7074662966819266225, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 5760055838732525082} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5760055838943638639 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5760055838395833916} + m_Modifications: + - target: {fileID: 541849603711283299, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 541849603711283299, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 541849603711283299, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 541849603711283299, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 814754657598926068, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 877398191347746427, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Name + value: Controller Icon + objectReference: {fileID: 0} + - target: {fileID: 1497362752889298759, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1889803360405899038, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1915919669524071720, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Color.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 1915919669524071720, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Color.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 1915919669524071720, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Color.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 1915919669524071720, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1917934913591039139, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 2551202114154678198, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2869868154930389731, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2869868154930389731, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2869868154930389731, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2869868154930389731, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3266743030728280758, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3354268172942122790, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3354268172942122790, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenModDetailsForThisModProfile + objectReference: {fileID: 0} + - target: {fileID: 3469231551091659516, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3499637623289819851, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3556892131274572887, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901724498306, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3616021901724498308, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Pivot.y + value: 0.46 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_SizeDelta.x + value: 350 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_SizeDelta.y + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -1141 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687619, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Name + value: HomeModListItem_RegularSelected + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687619, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4255172645848949671, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4255172645848949671, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: cedacde8e3a148a49a326faa6fa7b03b, + type: 3} + - target: {fileID: 4255172645848949671, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Color.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4255172645848949671, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Color.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4255172645848949671, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Color.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4255172645848949671, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4426968270457653949, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4472506411479461173, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4472506411479461173, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4532371848063114792, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4812071449842232249, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5071994613544811926, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5457086324036416015, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5817750717166125534, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 5844491058598557209, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5844491058598557209, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5844491058598557209, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5844491058598557209, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5948596955754438752, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_Name + value: Controller Icon + objectReference: {fileID: 0} + - target: {fileID: 6136641658364150477, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6411666585038676078, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6599813852594125216, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6791986599377587745, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6909979092271063010, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6944212229858793141, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6944212229858793141, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6944212229858793141, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6944212229858793141, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7757145674990701872, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8033423023662680377, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8739098830093771662, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8739098830093771662, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8739098830093771662, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8739098830093771662, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8821531628258348054, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9044266526697615920, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 3548787241582390949, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, type: 3} + - {fileID: 0} + - {fileID: 0} + - {fileID: 5738179984268958194, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, type: 3} + - {fileID: 750810840369874140, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, type: 3} +--- !u!1 &475094077524649575 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5293994348530749960, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + m_PrefabInstance: {fileID: 5760055838943638639} + m_PrefabAsset: {fileID: 0} +--- !u!224 &9061634454445475437 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3616021901904687618, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + m_PrefabInstance: {fileID: 5760055838943638639} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8993986987715273322 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3692630392971941381, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + m_PrefabInstance: {fileID: 5760055838943638639} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 475094077524649575} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &7820611297380938713 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2551202114154678198, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + m_PrefabInstance: {fileID: 5760055838943638639} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8647640806741456545} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8647640806741456545 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4029951163999273678, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + m_PrefabInstance: {fileID: 5760055838943638639} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2449030627395505075 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7931789081754763228, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + m_PrefabInstance: {fileID: 5760055838943638639} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 811030f917147504589eb74c563a0d3a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8756585969402851012 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3921070459970083499, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + m_PrefabInstance: {fileID: 5760055838943638639} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6185195325434835825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6185195325434835825 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1889803360405899038, guid: 5e57d74c874a1da4b9e2f8b3b1c90e90, + type: 3} + m_PrefabInstance: {fileID: 5760055838943638639} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7186500213509875776 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1752478102183024605} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &3320766725855603506 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 7186500213509875776} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7832763562549935198 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5760055838067006261} + m_Modifications: + - target: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Color.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 3585144004920789393, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4580715859929486334, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5461561580308136585, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6263590729001574840, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6485702370369012655, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6835143412918618022, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899110051886, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299680, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Name + value: BrowserModListItem_Featured + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_SizeDelta.y + value: 540 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9025299317110473926, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 7274536023900411211, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + - {fileID: 2395107722392766565, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 6b73fb45c04f95140b44e918b7f02337, type: 3} +--- !u!1 &1053227178624738031 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7074662966819266225, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 7832763562549935198} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7242469383006943057 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 590529543902333711, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 7832763562549935198} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8072869995420742185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8420324484116408034 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1758814485367298748, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 7832763562549935198} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1053227178624738031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8072869995420742185 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2070257837969182327, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 7832763562549935198} + m_PrefabAsset: {fileID: 0} +--- !u!224 &146680028341728319 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7978843899359299681, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 7832763562549935198} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3789781511054597007 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6353333058533976017, guid: 6b73fb45c04f95140b44e918b7f02337, + type: 3} + m_PrefabInstance: {fileID: 7832763562549935198} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a89e843efc4975840844b6f3376f59fc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &8276103027211448500 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3276554920018460687} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &4572481533955290054 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 8276103027211448500} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8495276881012336810 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5760055837487575704} + m_Modifications: + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.characterCount + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 2639670795910479274, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 73.5 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 147 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 5484685534411531537, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629754, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: More options + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].isControllerButtonIcon + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2481775387260960443} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenMoreOptionsForFeaturedSlot + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OpenMoreOptionsForFeaturedSlot + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: b5e6f0530d906a24f9cc4124ecbdee6b, + type: 3} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Color.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8440295978673225185, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Color.r + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 71af8a9a5a69a5648af22465acf51a99, type: 3} +--- !u!114 &8920798156313719405 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 8495276881012336810} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8920798156313719407} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8920798156313719407 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1020140050670541509, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 8495276881012336810} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3109181258600622993 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 8495276881012336810} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &6661404417012533100 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 8495276881012336810} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2960945230090701357 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6697462529236771463, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 8495276881012336810} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/Home/Home.prefab.meta b/UI/Prefabs/Home/Home.prefab.meta new file mode 100644 index 0000000..e8c828d --- /dev/null +++ b/UI/Prefabs/Home/Home.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e7c972a3b0c92ba4f8be9938d0c63a43 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Input Navigation.prefab b/UI/Prefabs/Input Navigation.prefab new file mode 100644 index 0000000..bc07757 --- /dev/null +++ b/UI/Prefabs/Input Navigation.prefab @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1152965179246734492 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5190045006183204375} + - component: {fileID: 6163454308962251714} + m_Layer: 0 + m_Name: Input Navigation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5190045006183204375 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152965179246734492} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 400.79144, y: 252.08183, z: 3.0401669} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6163454308962251714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152965179246734492} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 259f78a9175690845be8152999e84074, type: 3} + m_Name: + m_EditorClassIdentifier: + ControllerButtonIcons: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + MouseButtonIcons: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + mouseNavigation: 0 diff --git a/UI/Prefabs/Input Navigation.prefab.meta b/UI/Prefabs/Input Navigation.prefab.meta new file mode 100644 index 0000000..ec46807 --- /dev/null +++ b/UI/Prefabs/Input Navigation.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8c6ca06ea3133cd4f8c7798a423b65f8 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Loading Icon.prefab b/UI/Prefabs/Loading Icon.prefab new file mode 100644 index 0000000..b33d162 --- /dev/null +++ b/UI/Prefabs/Loading Icon.prefab @@ -0,0 +1,298 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1109184991508138457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1605047053456390961} + - component: {fileID: 2787663480342566759} + - component: {fileID: 5722289367893068467} + m_Layer: 5 + m_Name: Cog 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1605047053456390961 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1109184991508138457} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5597455781261280114} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 89.5, y: -12} + m_SizeDelta: {x: 23, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2787663480342566759 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1109184991508138457} + m_CullTransparentMesh: 0 +--- !u!114 &5722289367893068467 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1109184991508138457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &5722966312418943757 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8347411079730978168} + - component: {fileID: 2754236620333061660} + - component: {fileID: 6519440083403100060} + m_Layer: 5 + m_Name: Cog 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8347411079730978168 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5722966312418943757} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5597455781261280114} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 50.5, y: -12} + m_SizeDelta: {x: 23, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2754236620333061660 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5722966312418943757} + m_CullTransparentMesh: 0 +--- !u!114 &6519440083403100060 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5722966312418943757} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.78431374} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &8355616287565517601 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2007409334573999886} + - component: {fileID: 3016801652627475871} + - component: {fileID: 5454772385634733754} + m_Layer: 5 + m_Name: Cog 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2007409334573999886 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8355616287565517601} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5597455781261280114} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 11.5, y: -12} + m_SizeDelta: {x: 23, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3016801652627475871 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8355616287565517601} + m_CullTransparentMesh: 0 +--- !u!114 &5454772385634733754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8355616287565517601} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.3137255} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &8497503018571144132 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5597455781261280114} + - component: {fileID: 9004829202920558610} + - component: {fileID: 4210839010567786544} + m_Layer: 5 + m_Name: Loading Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5597455781261280114 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8497503018571144132} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2007409334573999886} + - {fileID: 8347411079730978168} + - {fileID: 1605047053456390961} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 351} + m_SizeDelta: {x: 101, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!95 &9004829202920558610 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8497503018571144132} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 826562ecbea8a4049b2126fe9b4f4478, type: 2} + m_CullingMode: 0 + m_UpdateMode: 2 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!223 &4210839010567786544 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8497503018571144132} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 diff --git a/UI/Prefabs/Loading Icon.prefab.meta b/UI/Prefabs/Loading Icon.prefab.meta new file mode 100644 index 0000000..d43abca --- /dev/null +++ b/UI/Prefabs/Loading Icon.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d5fdf02cff5c92349853772a91817fbc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Log In & Settings.meta b/UI/Prefabs/Log In & Settings.meta new file mode 100644 index 0000000..a873e15 --- /dev/null +++ b/UI/Prefabs/Log In & Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4f9f53a555458fb4bb93afc69099c860 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Log In & Settings/Log in & settings.prefab b/UI/Prefabs/Log In & Settings/Log in & settings.prefab new file mode 100644 index 0000000..069031f --- /dev/null +++ b/UI/Prefabs/Log In & Settings/Log in & settings.prefab @@ -0,0 +1,1125 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &492517761590509820 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8069636408411776629} + - component: {fileID: 8798355825203015350} + - component: {fileID: 3473582989448630086} + - component: {fileID: 5050229037235686441} + - component: {fileID: 1698667522127877474} + m_Layer: 5 + m_Name: Alternate Platform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8069636408411776629 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492517761590509820} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6235027345524414359} + m_Father: {fileID: 2635385768219430554} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8798355825203015350 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492517761590509820} + m_CullTransparentMesh: 0 +--- !u!114 &3473582989448630086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492517761590509820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5050229037235686441 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492517761590509820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &1698667522127877474 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 492517761590509820} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &692372752566181458 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4038997292926213209} + - component: {fileID: 7864253269811821758} + - component: {fileID: 3321750138378995776} + - component: {fileID: 7447796154557079637} + m_Layer: 5 + m_Name: Settings Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4038997292926213209 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 692372752566181458} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6249688957269115881} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7864253269811821758 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 692372752566181458} + m_CullTransparentMesh: 0 +--- !u!114 &3321750138378995776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 692372752566181458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ea6c2bed6b5cad84aa3d9e515f40883f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7447796154557079637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 692372752566181458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 3321750138378995776} + config: {fileID: 11400000, guid: 39a46c89e1cfb8d4c91c13db830e3b5c, type: 2} +--- !u!1 &2635385767444069040 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2635385767444069043} + - component: {fileID: 2635385767444069052} + - component: {fileID: 2635385767444069053} + - component: {fileID: 2635385767444069042} + m_Layer: 5 + m_Name: No User + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2635385767444069043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385767444069040} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4785763858176646974} + m_Father: {fileID: 2635385768219430554} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2635385767444069052 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385767444069040} + m_CullTransparentMesh: 0 +--- !u!114 &2635385767444069053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385767444069040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2635385767444069042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385767444069040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &2635385768032112951 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2635385768032112950} + - component: {fileID: 2635385768032112947} + - component: {fileID: 2635385768032112944} + - component: {fileID: 3703042453049406470} + m_Layer: 5 + m_Name: Settings Icon Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2635385768032112950 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385768032112951} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2635385768219430554} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 20, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &2635385768032112947 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385768032112951} + m_CullTransparentMesh: 0 +--- !u!114 &2635385768032112944 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385768032112951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: cedacde8e3a148a49a326faa6fa7b03b, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3703042453049406470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385768032112951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 2635385768032112944} + config: {fileID: 0} +--- !u!1 &2635385768219430555 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2635385768219430554} + - component: {fileID: 2635385768219430503} + - component: {fileID: 2635385768219430501} + - component: {fileID: 7422655373767724808} + m_Layer: 5 + m_Name: Log in & settings + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2635385768219430554 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385768219430555} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2635385767444069043} + - {fileID: 4785763858148713970} + - {fileID: 8069636408411776629} + - {fileID: 2635385769336968311} + - {fileID: 2635385768032112950} + - {fileID: 6249688957269115881} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -80, y: -40} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 1, y: 1} +--- !u!222 &2635385768219430503 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385768219430555} + m_CullTransparentMesh: 0 +--- !u!114 &2635385768219430501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385768219430555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: OpenMenuProfile + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 0} + m_MethodName: PlayClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &7422655373767724808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385768219430555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: PlayHover + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &2635385769247464048 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2635385769247464051} + - component: {fileID: 2635385769247464061} + - component: {fileID: 2635385769247464050} + m_Layer: 5 + m_Name: Avatar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2635385769247464051 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385769247464048} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4785763858148713970} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2635385769247464061 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385769247464048} + m_CullTransparentMesh: 0 +--- !u!114 &2635385769247464050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385769247464048} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2635385769336968308 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2635385769336968311} + - component: {fileID: 2635385769336968304} + - component: {fileID: 2635385769336968305} + - component: {fileID: 2635385769336968310} + m_Layer: 5 + m_Name: Progress bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2635385769336968311 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385769336968308} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4785763858246432504} + m_Father: {fileID: 2635385768219430554} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 64, y: 64} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2635385769336968304 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385769336968308} + m_CullTransparentMesh: 0 +--- !u!114 &2635385769336968305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385769336968308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.2} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8c6d8c412d9adc54d9b2c740823870d1, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2635385769336968310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2635385769336968308} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &4785763858148713969 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4785763858148713970} + - component: {fileID: 4785763858148713973} + - component: {fileID: 4785763858148713972} + - component: {fileID: 4785763858148713971} + m_Layer: 5 + m_Name: Mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4785763858148713970 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858148713969} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2635385769247464051} + m_Father: {fileID: 2635385768219430554} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 48, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4785763858148713973 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858148713969} + m_CullTransparentMesh: 0 +--- !u!114 &4785763858148713972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858148713969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4785763858148713971 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858148713969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &4785763858176646973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4785763858176646974} + - component: {fileID: 4785763858176646945} + - component: {fileID: 4785763858176646944} + - component: {fileID: 4785763858176646975} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4785763858176646974 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858176646973} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2635385767444069043} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 28, y: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4785763858176646945 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858176646973} + m_CullTransparentMesh: 0 +--- !u!114 &4785763858176646944 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858176646973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d548629b1a283544bb1a5ac261d5678c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4785763858176646975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858176646973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!1 &4785763858246432503 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4785763858246432504} + - component: {fileID: 4785763858246432507} + - component: {fileID: 4785763858246432506} + - component: {fileID: 6974348143228534723} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4785763858246432504 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858246432503} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2635385769336968311} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 64, y: 64} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4785763858246432507 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858246432503} + m_CullTransparentMesh: 0 +--- !u!114 &4785763858246432506 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858246432503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.49411765, g: 0.9372549, b: 0.54901963, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8c6d8c412d9adc54d9b2c740823870d1, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 0 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6974348143228534723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4785763858246432503} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 4785763858246432506} +--- !u!1 &5343684403193737378 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6235027345524414359} + - component: {fileID: 6337517235193370061} + - component: {fileID: 3670592316288033229} + - component: {fileID: 876281999150142088} + m_Layer: 5 + m_Name: Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6235027345524414359 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5343684403193737378} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8069636408411776629} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6337517235193370061 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5343684403193737378} + m_CullTransparentMesh: 0 +--- !u!114 &3670592316288033229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5343684403193737378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7469d4b74c68de041b524683e4783f04, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &876281999150142088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5343684403193737378} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &8253798538732382468 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6249688957269115881} + - component: {fileID: 8116522375390579113} + - component: {fileID: 4606767314790387840} + - component: {fileID: 3057023817460824506} + m_Layer: 5 + m_Name: Settings Icon Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6249688957269115881 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8253798538732382468} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4038997292926213209} + m_Father: {fileID: 2635385768219430554} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 20, y: 0} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &8116522375390579113 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8253798538732382468} + m_CullTransparentMesh: 0 +--- !u!114 &4606767314790387840 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8253798538732382468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3057023817460824506 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8253798538732382468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 4606767314790387840} + config: {fileID: 11400000, guid: e0420b28badf13c4aacb5ff5743e5fdd, type: 2} diff --git a/UI/Prefabs/Log In & Settings/Log in & settings.prefab.meta b/UI/Prefabs/Log In & Settings/Log in & settings.prefab.meta new file mode 100644 index 0000000..83a4ee8 --- /dev/null +++ b/UI/Prefabs/Log In & Settings/Log in & settings.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e3560bff46556f4b8dcdd3e31f54a32 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/NavBar.meta b/UI/Prefabs/NavBar.meta new file mode 100644 index 0000000..82a3ffd --- /dev/null +++ b/UI/Prefabs/NavBar.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aefdff6542591dd46ae2d2917c7f683f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/NavBar/Top Nav Bar.prefab b/UI/Prefabs/NavBar/Top Nav Bar.prefab new file mode 100644 index 0000000..eb287e0 --- /dev/null +++ b/UI/Prefabs/NavBar/Top Nav Bar.prefab @@ -0,0 +1,2917 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &560606088983585423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606088983585422} + - component: {fileID: 560606088983585411} + - component: {fileID: 560606088983585408} + - component: {fileID: 560606088983585409} + m_Layer: 5 + m_Name: Selection Divider (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606088983585422 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606088983585423} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606089427905394} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: -0.000030517578, y: 0} + m_SizeDelta: {x: 4, y: 30} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &560606088983585411 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606088983585423} + m_CullTransparentMesh: 0 +--- !u!114 &560606088983585408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606088983585423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &560606088983585409 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606088983585423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &560606089267834898 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606089267834901} + - component: {fileID: 560606089267834902} + - component: {fileID: 560606089267834903} + - component: {fileID: 560606089267834900} + m_Layer: 5 + m_Name: Selection Divider (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606089267834901 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089267834898} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606089427905394} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -0.000030517578, y: 0} + m_SizeDelta: {x: 4, y: 30} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &560606089267834902 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089267834898} + m_CullTransparentMesh: 0 +--- !u!114 &560606089267834903 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089267834898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &560606089267834900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089267834898} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &560606089335302677 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606089335302676} + - component: {fileID: 560606089335302697} + - component: {fileID: 560606089335302679} + m_Layer: 5 + m_Name: Collection + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606089335302676 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089335302677} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7007350328586836469} + - {fileID: 7007350329056984918} + - {fileID: 560606089427905394} + m_Father: {fileID: 560606089867562704} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &560606089335302697 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089335302677} + m_CullTransparentMesh: 0 +--- !u!114 &560606089335302679 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089335302677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7007350328586836470} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: Open + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 7007350329056984912} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!1 &560606089427905395 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606089427905394} + m_Layer: 5 + m_Name: 'Dividers ' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606089427905394 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089427905395} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 560606088983585422} + - {fileID: 560606089267834901} + m_Father: {fileID: 560606089335302676} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.000030517578, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &560606089488124069 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606089488124068} + - component: {fileID: 560606089488124089} + - component: {fileID: 560606089488124070} + - component: {fileID: 560606089488124071} + m_Layer: 5 + m_Name: Selection Divider (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606089488124068 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089488124069} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606090165666796} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 4, y: 30} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &560606089488124089 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089488124069} + m_CullTransparentMesh: 0 +--- !u!114 &560606089488124070 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089488124069} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &560606089488124071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089488124069} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &560606089740920545 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606089740920544} + - component: {fileID: 560606089740920549} + - component: {fileID: 560606089740920546} + - component: {fileID: 560606089740920547} + m_Layer: 5 + m_Name: Selection Divider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606089740920544 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089740920545} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606090165666796} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 4, y: 30} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &560606089740920549 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089740920545} + m_CullTransparentMesh: 0 +--- !u!114 &560606089740920546 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089740920545} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &560606089740920547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089740920545} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &560606089867562705 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606089867562704} + - component: {fileID: 560606089867562706} + - component: {fileID: 560606089867562707} + m_Layer: 5 + m_Name: Nav Options + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606089867562704 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089867562705} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4730910680235919201} + - {fileID: 560606090239388177} + - {fileID: 560606089335302676} + - {fileID: 560606090551311676} + m_Father: {fileID: 560606090467960150} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &560606089867562706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089867562705} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &560606089867562707 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606089867562705} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 44 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 12 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &560606090044140640 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606090044140643} + - component: {fileID: 560606090044140644} + - component: {fileID: 560606090044140645} + - component: {fileID: 560606090044140642} + - component: {fileID: 3021822676196731903} + m_Layer: 5 + m_Name: HighlightedTextOverlay + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &560606090044140643 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090044140640} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606090239388177} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &560606090044140644 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090044140640} + m_CullTransparentMesh: 0 +--- !u!114 &560606090044140645 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090044140640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: BROWSE + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292395271 + m_fontColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &560606090044140642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090044140640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &3021822676196731903 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090044140640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: BROWSE + text: {fileID: 560606090044140645} +--- !u!1 &560606090165666797 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606090165666796} + m_Layer: 5 + m_Name: Dividers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606090165666796 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090165666797} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 560606089740920544} + - {fileID: 560606089488124068} + m_Father: {fileID: 560606090239388177} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &560606090239388190 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606090239388177} + - component: {fileID: 560606090239388178} + - component: {fileID: 560606090239388176} + m_Layer: 5 + m_Name: Home + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606090239388177 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090239388190} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7007350328933744513} + - {fileID: 560606090044140643} + - {fileID: 560606090165666796} + m_Father: {fileID: 560606089867562704} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 120, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &560606090239388178 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090239388190} + m_CullTransparentMesh: 0 +--- !u!114 &560606090239388176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090239388190} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7007350328933744514} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: Open + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 560606090044140645} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!1 &560606090383989697 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606090383989696} + - component: {fileID: 560606090383989698} + - component: {fileID: 560606090383989699} + - component: {fileID: 7007350327579172437} + - component: {fileID: 6354488166368890661} + m_Layer: 5 + m_Name: RS + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606090383989696 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090383989697} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7007350329050589388} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &560606090383989698 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090383989697} + m_CullTransparentMesh: 0 +--- !u!114 &560606090383989699 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090383989697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1f5c03735f86c174ab7cf07e0de082f4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7007350327579172437 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090383989697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &6354488166368890661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090383989697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 560606090383989699} + config: {fileID: 11400000, guid: b84b9b55d5fe5d34ab014b1eee895eb1, type: 2} +--- !u!1 &560606090467960151 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606090467960150} + - component: {fileID: 7782945172804304016} + m_Layer: 5 + m_Name: Top Nav Bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606090467960150 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090467960151} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7007350328927686891} + - {fileID: 560606089867562704} + - {fileID: 562619462984882778} + - {fileID: 562619463613292778} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &7782945172804304016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090467960151} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 95584c6bde68549429676799c0ef2d6b, type: 3} + m_Name: + m_EditorClassIdentifier: + BrowserPanelNavButton: {fileID: 7007350328933744514} + BrowserPanelNavButtonHighlights: {fileID: 560606090165666797} + BrowserPanelHeaderBackground: {fileID: 7007350328927686886} + CollectionPanelNavButton: {fileID: 7007350328586836470} + CollectionPanelNavButtonHighlights: {fileID: 560606089427905395} +--- !u!1 &560606090551311677 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560606090551311676} + - component: {fileID: 560606090551311678} + - component: {fileID: 560606090551311679} + - component: {fileID: 4026689590348806006} + m_Layer: 5 + m_Name: Controller RB Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560606090551311676 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090551311677} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3755882370428062791} + m_Father: {fileID: 560606089867562704} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &560606090551311678 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090551311677} + m_CullTransparentMesh: 0 +--- !u!114 &560606090551311679 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090551311677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 4a7e410ddf7779b4498501f99817db32, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4026689590348806006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560606090551311677} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 560606090551311679} + config: {fileID: 11400000, guid: e57a7dbec9af7454fa759234deaa3042, type: 2} +--- !u!1 &1718483100618491655 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3755882370428062791} + - component: {fileID: 711757495012717250} + - component: {fileID: 7485530171299775269} + - component: {fileID: 4877087394672728624} + m_Layer: 5 + m_Name: RB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3755882370428062791 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1718483100618491655} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606090551311676} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -1.57} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &711757495012717250 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1718483100618491655} + m_CullTransparentMesh: 0 +--- !u!114 &7485530171299775269 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1718483100618491655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ae77b0e026d27cb44b367ea392e2c423, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4877087394672728624 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1718483100618491655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 7485530171299775269} + config: {fileID: 11400000, guid: df1d1f97fb954fb43b6087dfe4e8301d, type: 2} +--- !u!1 &2792924766965019680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4730910680235919201} + - component: {fileID: 1517436235164908399} + - component: {fileID: 3809534266735092323} + - component: {fileID: 3095540058760457367} + m_Layer: 5 + m_Name: Controller LB Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4730910680235919201 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2792924766965019680} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8063813768924384500} + m_Father: {fileID: 560606089867562704} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &1517436235164908399 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2792924766965019680} + m_CullTransparentMesh: 0 +--- !u!114 &3809534266735092323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2792924766965019680} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d0321bfbd06fb2649aefe04056d3e620, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3095540058760457367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2792924766965019680} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 3809534266735092323} + config: {fileID: 11400000, guid: 42498adbd513e4f42b11d744efe971d4, type: 2} +--- !u!114 &7007350327278405936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3115273393319714859} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &560606089474578951 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3283894349386878165} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 20 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &3851356965864075827 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8063813768924384500} + - component: {fileID: 2524757562353737845} + - component: {fileID: 7157042685231522040} + - component: {fileID: 9104117602940566050} + m_Layer: 5 + m_Name: LB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8063813768924384500 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3851356965864075827} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4730910680235919201} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2524757562353737845 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3851356965864075827} + m_CullTransparentMesh: 0 +--- !u!114 &7157042685231522040 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3851356965864075827} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2c665852e658d7b4aa13b825d7cce91f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9104117602940566050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3851356965864075827} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 7157042685231522040} + config: {fileID: 11400000, guid: 3f84a33e80b94774e8161856c3780ae4, type: 2} +--- !u!114 &7007350327278405937 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4040697098115365457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &7007350328586836468 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7007350328586836469} + - component: {fileID: 7007350328586836471} + - component: {fileID: 7007350328586836470} + - component: {fileID: 7007350328586836464} + - component: {fileID: 1462811408825003576} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7007350328586836469 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328586836468} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606089335302676} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7007350328586836471 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328586836468} + m_CullTransparentMesh: 0 +--- !u!114 &7007350328586836470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328586836468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: COLLECTION + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7007350328586836464 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328586836468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &1462811408825003576 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328586836468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: COLLECTION + text: {fileID: 7007350328586836470} +--- !u!1 &7007350328927686890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7007350328927686891} + - component: {fileID: 7007350328927686885} + - component: {fileID: 7007350328927686886} + - component: {fileID: 7007350328927686884} + m_Layer: 5 + m_Name: HeaderBackground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7007350328927686891 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328927686890} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606090467960150} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 120} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &7007350328927686885 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328927686890} + m_CullTransparentMesh: 0 +--- !u!114 &7007350328927686886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328927686890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7007350328927686884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328927686890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!1 &7007350328933744512 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7007350328933744513} + - component: {fileID: 7007350328933744515} + - component: {fileID: 7007350328933744514} + - component: {fileID: 7007350328933743740} + - component: {fileID: 3664537928833879793} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7007350328933744513 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328933744512} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606090239388177} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7007350328933744515 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328933744512} + m_CullTransparentMesh: 0 +--- !u!114 &7007350328933744514 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328933744512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: BROWSE + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7007350328933743740 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328933744512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &3664537928833879793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350328933744512} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: BROWSE + text: {fileID: 7007350328933744514} +--- !u!1 &7007350329050589395 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7007350329050589388} + - component: {fileID: 7007350329050589390} + - component: {fileID: 7007350329050589389} + - component: {fileID: 5957684260442304284} + m_Layer: 5 + m_Name: Controller Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7007350329050589388 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350329050589395} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 560606090383989696} + m_Father: {fileID: 562619462984882778} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &7007350329050589390 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350329050589395} + m_CullTransparentMesh: 0 +--- !u!114 &7007350329050589389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350329050589395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5957684260442304284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350329050589395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 7007350329050589389} + config: {fileID: 11400000, guid: 34d5a2682375b1b4cb4ed887d7f0c032, type: 2} +--- !u!1 &7007350329056984917 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7007350329056984918} + - component: {fileID: 7007350329056984913} + - component: {fileID: 7007350329056984912} + - component: {fileID: 7007350329056984919} + - component: {fileID: 7958029758119965186} + m_Layer: 5 + m_Name: HighlightedTextOverlay + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7007350329056984918 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350329056984917} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 560606089335302676} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7007350329056984913 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350329056984917} + m_CullTransparentMesh: 0 +--- !u!114 &7007350329056984912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350329056984917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: COLLECTION + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292395271 + m_fontColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7007350329056984919 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350329056984917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &7958029758119965186 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7007350329056984917} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: COLLECTION + text: {fileID: 7007350329056984912} +--- !u!114 &5892151161115263390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8878247632055676023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Back + text: {fileID: 8178277621283601565} +--- !u!114 &7435689386660960107 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8878247632752531143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Search & filter + text: {fileID: 8178277622735291949} +--- !u!1001 &560606089474578956 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 560606090467960150} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: -164 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Search & filter + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: 82.73 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].target + value: + objectReference: {fileID: 7007350329050589389} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].transition + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnPressed + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].enableOnHighlight + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.g + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_NormalColor.r + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Normal + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_PressedColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Pressed + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.a + value: 0.5019608 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.b + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.g + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_DisabledColor.r + value: 0.78431374 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Disabled + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.b + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.g + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colors.m_HighlightedColor.r + value: 0.9607843 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.Highlighted + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.FadeDuration + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.ColorMultiplier + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_NormalTrigger + value: Normal + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.NormalColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_PressedTrigger + value: Pressed + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.PressedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_DisabledTrigger + value: Disabled + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.DisabledColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Open + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].animationTriggers.m_HighlightedTrigger + value: Highlighted + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: extraTargets.Array.data[3].colorSchemeBlock.HighlightedColorAlpha + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Search & filter + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 15 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &3115273393319714859 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3241466802278087207, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 560606089474578956} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8878247632752531143 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 560606089474578956} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8178277622735291949 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 560606089474578956} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8878247632752531143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &3283894349386878165 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 560606089474578956} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4040697098115365457 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4599543967843065949, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 560606089474578956} + m_PrefabAsset: {fileID: 0} +--- !u!224 &562619462984882778 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 560606089474578956} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &560606090120061116 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 560606090467960150} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 69 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -36 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Back / Exit + objectReference: {fileID: 0} + - target: {fileID: 5303711281568416601, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Text + value: Back + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CloseBrowserPanel + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Back + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &562619463613292778 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 560606090120061116} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8878247632055676023 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 560606090120061116} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8178277621283601565 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 560606090120061116} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8878247632055676023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/NavBar/Top Nav Bar.prefab.meta b/UI/Prefabs/NavBar/Top Nav Bar.prefab.meta new file mode 100644 index 0000000..edd805e --- /dev/null +++ b/UI/Prefabs/NavBar/Top Nav Bar.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6b45abbbd75a04c4eba1c3b9ad9e5ad7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Notification Popup.meta b/UI/Prefabs/Notification Popup.meta new file mode 100644 index 0000000..9bc2ddf --- /dev/null +++ b/UI/Prefabs/Notification Popup.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 03a4612c1bc17394ca35fc1d3a07504e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Notification Popup/NotificationPopup.prefab b/UI/Prefabs/Notification Popup/NotificationPopup.prefab new file mode 100644 index 0000000..9861297 --- /dev/null +++ b/UI/Prefabs/Notification Popup/NotificationPopup.prefab @@ -0,0 +1,1446 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &5115784740035807657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 349032057411264696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4ed7e5f6348c14141b73dabc8dc4bb24, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonName: {fileID: 6356173810534656576} +--- !u!1 &586084122694290036 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1936326553840626492} + - component: {fileID: 5808116366262842003} + m_Layer: 5 + m_Name: NotificationPopup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1936326553840626492 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 586084122694290036} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.9692074, y: 0.9692074, z: 0.9692074} + m_Children: + - {fileID: 8159060605806491179} + - {fileID: 5177535383745759776} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5808116366262842003 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 586084122694290036} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 176c3b7c66eb46d4296946b8bd7468b4, type: 3} + m_Name: + m_EditorClassIdentifier: + header: {fileID: 2291605711092030175} + body: {fileID: 8183038671153281646} + buttons: + - {fileID: 3581085300474030642} + - {fileID: 225879717160323687} + - {fileID: 5115784740035807657} +--- !u!1 &667258222386454879 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8159060605806491179} + - component: {fileID: 8920211771747505910} + - component: {fileID: 7808028384343292653} + - component: {fileID: 6579522763927717232} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8159060605806491179 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667258222386454879} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1936326553840626492} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 1.5, y: 0.21972656} + m_SizeDelta: {x: 59.687378, y: 32.23181} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8920211771747505910 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667258222386454879} + m_CullTransparentMesh: 0 +--- !u!114 &7808028384343292653 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667258222386454879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.78431374} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6579522763927717232 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667258222386454879} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &225879717160323687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2352151985738947715} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4ed7e5f6348c14141b73dabc8dc4bb24, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonName: {fileID: 8955739280731592315} +--- !u!114 &3581085300474030642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2640600915461231640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4ed7e5f6348c14141b73dabc8dc4bb24, type: 3} + m_Name: + m_EditorClassIdentifier: + buttonName: {fileID: 8667428322538725088} +--- !u!1 &3286069535153469129 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5177535383745759776} + - component: {fileID: 2093580235175941094} + - component: {fileID: 3758613313790957339} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5177535383745759776 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3286069535153469129} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 627998196169661787} + - {fileID: 8455823989236894556} + - {fileID: 3828614211710297357} + m_Father: {fileID: 1936326553840626492} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -34.74} + m_SizeDelta: {x: 639.63, y: 322.47552} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2093580235175941094 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3286069535153469129} + m_CullTransparentMesh: 0 +--- !u!114 &3758613313790957339 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3286069535153469129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c05eab6045e68c1449e9a85be63f1495, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3751066745689194396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3828614211710297357} + - component: {fileID: 5137315916687633554} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3828614211710297357 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3751066745689194396} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1078932491597906583} + - {fileID: 790639211219929612} + - {fileID: 3351924033330984503} + m_Father: {fileID: 5177535383745759776} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 4.52, y: -110.67} + m_SizeDelta: {x: 605.83734, y: 75.18146} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5137315916687633554 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3751066745689194396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &5173195781447039283 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8455823989236894556} + - component: {fileID: 759843422744914307} + - component: {fileID: 2291605711092030175} + - component: {fileID: 8342224096680950022} + - component: {fileID: 2992557335997717890} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8455823989236894556 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5173195781447039283} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5177535383745759776} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 120.350006} + m_SizeDelta: {x: 0, y: -280.7} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &759843422744914307 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5173195781447039283} + m_CullTransparentMesh: 0 +--- !u!114 &2291605711092030175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5173195781447039283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Notification + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8342224096680950022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5173195781447039283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &2992557335997717890 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5173195781447039283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Notification + text: {fileID: 2291605711092030175} +--- !u!1 &8736735622399979313 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 627998196169661787} + - component: {fileID: 2953824629903411265} + - component: {fileID: 8183038671153281646} + - component: {fileID: 1335656226370938819} + - component: {fileID: 9215053920270513854} + m_Layer: 5 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &627998196169661787 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8736735622399979313} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5177535383745759776} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 11.9} + m_SizeDelta: {x: -200, y: -179.61981} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2953824629903411265 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8736735622399979313} + m_CullTransparentMesh: 0 +--- !u!114 &8183038671153281646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8736735622399979313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1335656226370938819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8736735622399979313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &9215053920270513854 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8736735622399979313} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1001 &788575251605785178 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3828614211710297357} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 302.91867 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -57.59073 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Button (1) + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3241466802278087207, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4599543967843065949, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 225879717160323687} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnClick + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Confirm + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &2352151985738947715 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 788575251605785178} + m_PrefabAsset: {fileID: 0} +--- !u!224 &790639211219929612 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 788575251605785178} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8955739280731592315 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 788575251605785178} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1076461798580863681 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3828614211710297357} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 100.97289 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -57.59073 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Button + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3241466802278087207, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4599543967843065949, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 3581085300474030642} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnClick + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Confirm + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &2640600915461231640 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 1076461798580863681} + m_PrefabAsset: {fileID: 0} +--- !u!224 &1078932491597906583 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 1076461798580863681} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8667428322538725088 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 1076461798580863681} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &3354357128334374497 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3828614211710297357} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 504.86447 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -57.59073 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 55f176a6fe560d24bb3e650f8677edaa, + type: 3} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Button (2) + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3241466802278087207, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4599543967843065949, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 5115784740035807657} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnClick + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Type + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7873473676537387376, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Confirm + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &349032057411264696 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3354357128334374497} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6356173810534656576 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3354357128334374497} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &3351924033330984503 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 3354357128334374497} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Prefabs/Notification Popup/NotificationPopup.prefab.meta b/UI/Prefabs/Notification Popup/NotificationPopup.prefab.meta new file mode 100644 index 0000000..23b0915 --- /dev/null +++ b/UI/Prefabs/Notification Popup/NotificationPopup.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8d555f103a7dc374c9fe923c5a06f8d3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/ProgressTab.prefab b/UI/Prefabs/ProgressTab.prefab new file mode 100644 index 0000000..124a074 --- /dev/null +++ b/UI/Prefabs/ProgressTab.prefab @@ -0,0 +1,565 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1645162211136672968 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4790354403107458841} + - component: {fileID: 650134152300667852} + m_Layer: 5 + m_Name: ProgressTab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4790354403107458841 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1645162211136672968} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7705046893321116249} + - {fileID: 704624176966553163} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -12, y: -12} + m_SizeDelta: {x: 110, y: 32} + m_Pivot: {x: 1, y: 1} +--- !u!114 &650134152300667852 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1645162211136672968} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9b8a49fb798dad40a7bf351ff745a1f, type: 3} + m_Name: + m_EditorClassIdentifier: + progressBar: {fileID: 8068880088806200931} + progressBarFill: {fileID: 590529543652616111} + progressBarText: {fileID: 4580715861328658270} + progressBarQueuedOutline: {fileID: 7074662967068471825} + profile: + id: + id: 0 + tags: [] + status: 0 + visible: 0 + name: + summary: + description: + contentWarnings: 0 + galleryImages_Original: [] + galleryImages_320x180: [] + galleryImages_640x360: [] + logoImage_320x180: + modId: + id: 0 + url: + filename: + logoImage_640x360: + modId: + id: 0 + url: + filename: + logoImage_1280x720: + modId: + id: 0 + url: + filename: + logoImage_Original: + modId: + id: 0 + url: + filename: + creatorUsername: + creatorAvatar_50x50: + modId: + id: 0 + url: + filename: + creatorAvatar_100x100: + modId: + id: 0 + url: + filename: + creatorAvatar_Original: + modId: + id: 0 + url: + filename: + metadata: + stats: + modId: + id: 0 + popularityRankPosition: 0 + popularityRankTotalMods: 0 + downloadsToday: 0 + downloadsTotal: 0 + subscriberTotal: 0 + ratingsTotal: 0 + ratingsPositive: 0 + ratingsNegative: 0 + ratingsPercentagePositive: 0 + ratingsWeightedAggregate: 0 + ratingsDisplayText: + archiveFileSize: 0 +--- !u!1 &2070257836112913111 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3305099864406105401} + - component: {fileID: 7769511567973109012} + - component: {fileID: 590529543652616111} + - component: {fileID: 2395107723254539461} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3305099864406105401 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070257836112913111} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2465109234513872572} + m_Father: {fileID: 7705046893321116249} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 110, y: 32} + m_Pivot: {x: 1, y: 1} +--- !u!222 &7769511567973109012 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070257836112913111} + m_CullTransparentMesh: 0 +--- !u!114 &590529543652616111 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070257836112913111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.49411765, g: 0.9372549, b: 0.54901963, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a86a3c1037087404990351a2386cdf3b, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 0 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &2395107723254539461 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2070257836112913111} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 8 +--- !u!1 &7074662967068471825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 704624176966553163} + - component: {fileID: 5977610762115635356} + - component: {fileID: 1758814485621290524} + - component: {fileID: 7274536024149621227} + m_Layer: 5 + m_Name: Queued border highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &704624176966553163 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7074662967068471825} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4790354403107458841} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 110, y: 32} + m_Pivot: {x: 1, y: 1} +--- !u!222 &5977610762115635356 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7074662967068471825} + m_CullTransparentMesh: 0 +--- !u!114 &1758814485621290524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7074662967068471825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.49411765, g: 0.9372549, b: 0.54901963, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9ae8334c5762228449c08579000dc44a, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &7274536024149621227 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7074662967068471825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 8 +--- !u!1 &8068880088806200931 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7705046893321116249} + - component: {fileID: 6363001364960026971} + - component: {fileID: 3585144004662617393} + - component: {fileID: 1009570377571250706} + - component: {fileID: 2441934227850142884} + m_Layer: 5 + m_Name: Progress Bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7705046893321116249 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8068880088806200931} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3305099864406105401} + m_Father: {fileID: 4790354403107458841} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 110, y: 32} + m_Pivot: {x: 1, y: 1} +--- !u!222 &6363001364960026971 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8068880088806200931} + m_CullTransparentMesh: 0 +--- !u!114 &3585144004662617393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8068880088806200931} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 0.5019608} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f12eeb8dd0927a249aeec61fdfc3eba7, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 0 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &1009570377571250706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8068880088806200931} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &2441934227850142884 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8068880088806200931} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 6 +--- !u!1 &8560467354807798120 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2465109234513872572} + - component: {fileID: 4939297043555399797} + - component: {fileID: 4580715861328658270} + - component: {fileID: 5277917591309904539} + m_Layer: 5 + m_Name: Bar text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2465109234513872572 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8560467354807798120} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3305099864406105401} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4939297043555399797 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8560467354807798120} + m_CullTransparentMesh: 0 +--- !u!114 &4580715861328658270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8560467354807798120} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Subscribed + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4580715861328658270} + characterCount: 0 + spriteCount: 0 + spaceCount: 0 + wordCount: 0 + linkCount: 0 + lineCount: 0 + pageCount: 0 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5277917591309904539 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8560467354807798120} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 diff --git a/UI/Prefabs/ProgressTab.prefab.meta b/UI/Prefabs/ProgressTab.prefab.meta new file mode 100644 index 0000000..25ef7ff --- /dev/null +++ b/UI/Prefabs/ProgressTab.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fb11aa92a8bf14c40a4f846d52a9caeb +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Report Panel.meta b/UI/Prefabs/Report Panel.meta new file mode 100644 index 0000000..db1fa3f --- /dev/null +++ b/UI/Prefabs/Report Panel.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d6c546b2c0f4a4841a2590b90b0a4ab7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Report Panel/Report Panel.prefab b/UI/Prefabs/Report Panel/Report Panel.prefab new file mode 100644 index 0000000..b418dbf --- /dev/null +++ b/UI/Prefabs/Report Panel/Report Panel.prefab @@ -0,0 +1,8181 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &5172607165973715851 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 622839552717027456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &2391549339589373396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2391549339589373397} + - component: {fileID: 2391549339589373399} + - component: {fileID: 2391549339589373398} + m_Layer: 5 + m_Name: Details section + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2391549339589373397 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549339589373396} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607165541929410} + - {fileID: 5172607165532123091} + m_Father: {fileID: 5172607165694230319} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 360, y: -217.66} + m_SizeDelta: {x: 672, y: 125.3} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &2391549339589373399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549339589373396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &2391549339589373398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549339589373396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 16 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &2391549339723379886 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2391549339723379887} + - component: {fileID: 2391549339723379890} + - component: {fileID: 2391549339723379889} + - component: {fileID: 2391549339723379888} + - component: {fileID: 3387561884616411318} + m_Layer: 5 + m_Name: Caption + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2391549339723379887 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549339723379886} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -328.48} + m_SizeDelta: {x: 720, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2391549339723379890 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549339723379886} + m_CullTransparentMesh: 0 +--- !u!114 &2391549339723379889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549339723379886} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Reason for reporting:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2391549339723379888 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549339723379886} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &3387561884616411318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549339723379886} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Reason for reporting:' + text: {fileID: 2391549339723379889} +--- !u!1 &2391549340146156330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2391549340146156331} + - component: {fileID: 2490486611824912638} + m_Layer: 5 + m_Name: Report Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2391549340146156331 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340146156330} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607166731483653} + - {fileID: 5172607165931077460} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2490486611824912638 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340146156330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45b570e339fe8e14ca5751aad6d692a3, type: 3} + m_Name: + m_EditorClassIdentifier: + Panel: {fileID: 2391549340146156330} + ReportPanelHeader: {fileID: 5172607166017534745} + ReportPanelSubHeader: {fileID: 2391549340436633847} + ReportPanelSubSubHeader: {fileID: 2391549340956669951} + ReportPanelText: {fileID: 5172607165356868034} + ReportPanelCaption: {fileID: 2391549339723379889} + ReportPanelReportOptions: {fileID: 2391549341199285174} + ReportPanelEmailSection: {fileID: 5172607165298037104} + ReportPanelEmailField: {fileID: 5172607166188576072} + ReportPanelDetailsSection: {fileID: 2391549340376708266} + ReportPanelDetailsField: {fileID: 5172607164592828405} + ReportPanelSummary: {fileID: 5172607166735554723} + ReportPanelSummaryReason: {fileID: 5172607164909478829} + ReportPanelSummaryEmail: {fileID: 5172607166568055521} + ReportPanelSummaryDetails: {fileID: 5172607165532123100} + ReportPanelButtons: {fileID: 5172607166144280155} + ReportPanelBackButton: {fileID: 2469945915458081697} + ReportPanelCancelButton: {fileID: 2469945915816321701} + ReportPanelSubmitButton: {fileID: 4953877137672268503} + ReportPanelNextButton: {fileID: 4953877138741667721} + ReportPanelDoneButton: {fileID: 4953877137789660210} + ReportPanelLoadingAnimation: {fileID: 3613570487818305609} +--- !u!1 &2391549340376708266 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2391549340376708267} + m_Layer: 5 + m_Name: Report InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2391549340376708267 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340376708266} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607164592827403} + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -455.31} + m_SizeDelta: {x: 720, y: 168} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2391549340436633844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2391549340436633845} + - component: {fileID: 2391549340436633848} + - component: {fileID: 2391549340436633847} + - component: {fileID: 2391549340436633846} + - component: {fileID: 686795022750109565} + m_Layer: 5 + m_Name: Subheader + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2391549340436633845 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340436633844} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -140} + m_SizeDelta: {x: 720, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2391549340436633848 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340436633844} + m_CullTransparentMesh: 0 +--- !u!114 &2391549340436633847 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340436633844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Obviously explicit mod + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 258 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2391549340436633846 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340436633844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &686795022750109565 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340436633844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Obviously explicit mod + text: {fileID: 2391549340436633847} +--- !u!1 &2391549340580683847 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2391549340580683848} + - component: {fileID: 2391549340580683850} + - component: {fileID: 2391549340580683849} + m_Layer: 5 + m_Name: Reason section + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2391549340580683848 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340580683847} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607165143276910} + - {fileID: 5172607164909478816} + m_Father: {fileID: 5172607165694230319} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 360, y: -24} + m_SizeDelta: {x: 672, y: 56.83} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &2391549340580683850 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340580683847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &2391549340580683849 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340580683847} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 16 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &2391549340956669947 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2391549340956669948} + - component: {fileID: 2391549340956669824} + - component: {fileID: 2391549340956669951} + - component: {fileID: 2391549340956669950} + - component: {fileID: 2391549340956669949} + m_Layer: 5 + m_Name: Subsubheader + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2391549340956669948 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340956669947} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -211.415} + m_SizeDelta: {x: 720, y: 22.83} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2391549340956669824 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340956669947} + m_CullTransparentMesh: 0 +--- !u!114 &2391549340956669951 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340956669947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Details of infringement + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2391549340956669950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340956669947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &2391549340956669949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549340956669947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &2391549341144760224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2391549341144760225} + - component: {fileID: 2391549341144760227} + - component: {fileID: 2391549341144760226} + m_Layer: 5 + m_Name: Email section + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2391549341144760225 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549341144760224} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607166508539322} + - {fileID: 5172607166568055524} + m_Father: {fileID: 5172607165694230319} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 360, y: -120.83} + m_SizeDelta: {x: 672, y: 56.83} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &2391549341144760227 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549341144760224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &2391549341144760226 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549341144760224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 16 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &2391549341199285174 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2391549341199285175} + - component: {fileID: 2391549341199285177} + - component: {fileID: 2391549341199285176} + m_Layer: 5 + m_Name: Report options + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2391549341199285175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549341199285174} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2393947266920828515} + - {fileID: 2393947267471775711} + - {fileID: 2393947268412176762} + - {fileID: 2393947267490590491} + - {fileID: 2393947267733933814} + - {fileID: 2393947266964531585} + - {fileID: 2393947266963045074} + - {fileID: 2393947267143899202} + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -418.48} + m_SizeDelta: {x: 720, y: 220} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2391549341199285177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549341199285174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 314, y: 40} + m_Spacing: {x: 20, y: 20} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!114 &2391549341199285176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2391549341199285174} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &5172607165973715850 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3764400646674925740} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &4983395974720420552 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4267927719200361385} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Back + text: {fileID: 3562473344663558979} +--- !u!114 &2395556085609599812 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4267927719403977389} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Cancel + text: {fileID: 3562473344313780807} +--- !u!1 &5172607164592827400 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607164592827403} + - component: {fileID: 5172607164592828407} + - component: {fileID: 5172607164592828404} + - component: {fileID: 5172607164592828405} + - component: {fileID: 5172607164592827402} + - component: {fileID: 5172607164592828406} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607164592827403 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164592827400} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607165658296420} + m_Father: {fileID: 2391549340376708267} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607164592828407 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164592827400} + m_CullTransparentMesh: 0 +--- !u!114 &5172607164592828404 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164592827400} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8471ca04d7df332408a7a99c388ec2bd, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5172607164592828405 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164592827400} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8831ad7cc6913f64791202833e0e7ded, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8831ad7cc6913f64791202833e0e7ded, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8831ad7cc6913f64791202833e0e7ded, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 8471ca04d7df332408a7a99c388ec2bd, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5172607164592828404} + m_TextViewport: {fileID: 5172607165658296420} + m_TextComponent: {fileID: 5172607166659453509} + m_Placeholder: {fileID: 5172607165611800062} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 2 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 500 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_CustomCaretColor: 1 + m_SelectionColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 3 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &5172607164592827402 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164592827400} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &5172607164592828406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164592827400} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + editOnFocus: 0 + inputFieldTitle: Summary + inputFieldPlaceholderText: Summary... + keyboardtype: 0 + inputField: {fileID: 5172607164592828405} +--- !u!1 &5172607164649981183 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607164649981182} + m_Layer: 5 + m_Name: email field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607164649981182 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164649981183} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607166367839473} + - {fileID: 5172607166188576078} + - {fileID: 5172607165589984894} + m_Father: {fileID: 5172607165298037107} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 64} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &5172607164684209410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607164684209421} + - component: {fileID: 5172607164684209422} + - component: {fileID: 5172607164684209423} + - component: {fileID: 5172607164684209420} + - component: {fileID: 1397579380601191990} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607164684209421 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164684209410} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607166243421133} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607164684209422 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164684209410} + m_CullTransparentMesh: 0 +--- !u!114 &5172607164684209423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164684209410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Email address + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2132480014 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607164684209420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164684209410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &1397579380601191990 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164684209410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Email address + text: {fileID: 5172607164684209423} +--- !u!1 &5172607164856312805 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607164856312804} + - component: {fileID: 5172607164856312801} + - component: {fileID: 5172607164856312806} + - component: {fileID: 5172607164856312807} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607164856312804 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164856312805} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607164988890485} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.00000009566639, y: 0} + m_AnchorMax: {x: 0.9373041, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607164856312801 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164856312805} + m_CullTransparentMesh: 0 +--- !u!114 &5172607164856312806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164856312805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5172607164856312807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164856312805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &5172607164876907777 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607164876907776} + - component: {fileID: 5172607164876907778} + - component: {fileID: 5172607164876907779} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607164876907776 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164876907777} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607164988890485} + m_Father: {fileID: 5172607166735554722} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -18, y: 0} + m_SizeDelta: {x: 8, y: -32} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &5172607164876907778 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164876907777} + m_CullTransparentMesh: 0 +--- !u!114 &5172607164876907779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164876907777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5172607164856312806} + m_HandleRect: {fileID: 5172607164856312804} + m_Direction: 0 + m_Value: 0.0000015258789 + m_Size: 0.9373041 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5172607164909478817 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607164909478816} + - component: {fileID: 5172607164909478828} + - component: {fileID: 5172607164909478829} + - component: {fileID: 5172607164909478818} + - component: {fileID: 5172607164909478819} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607164909478816 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164909478817} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2391549340580683848} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -34} + m_SizeDelta: {x: 672, y: 22.83} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5172607164909478828 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164909478817} + m_CullTransparentMesh: 0 +--- !u!114 &5172607164909478829 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164909478817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Not Working + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607164909478818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164909478817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5172607164909478819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164909478817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &5172607164988890506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607164988890485} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607164988890485 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607164988890506} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607164856312804} + m_Father: {fileID: 5172607164876907776} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5172607165143276911 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165143276910} + - component: {fileID: 5172607165143276907} + - component: {fileID: 5172607165143276904} + - component: {fileID: 5172607165143276905} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165143276910 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165143276911} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2391549340580683848} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 240, y: 18} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5172607165143276907 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165143276911} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165143276904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165143276911} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Reason for reporting + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607165143276905 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165143276911} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5172607165189137795 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165189137794} + - component: {fileID: 5172607165189137807} + - component: {fileID: 5172607165189137804} + - component: {fileID: 5172607165189137805} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165189137794 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165189137795} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607166243421133} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607165189137807 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165189137795} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165189137804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165189137795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607165189137805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165189137795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5172607165298037104 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165298037107} + - component: {fileID: 5172607165298037106} + m_Layer: 5 + m_Name: Email field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5172607165298037107 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165298037104} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607165303505425} + - {fileID: 5172607164649981182} + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -308.48} + m_SizeDelta: {x: 720, y: 109} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &5172607165298037106 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165298037104} + m_CullTransparentMesh: 0 +--- !u!1 &5172607165303505430 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165303505425} + - component: {fileID: 5172607165303505426} + - component: {fileID: 5172607165303505427} + - component: {fileID: 5172607165303505424} + - component: {fileID: 4086154193015809472} + m_Layer: 5 + m_Name: Your email title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165303505425 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165303505430} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607165298037107} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 24} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &5172607165303505426 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165303505430} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165303505427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165303505430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Your email + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607165303505424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165303505430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &4086154193015809472 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165303505430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Your email + text: {fileID: 5172607165303505427} +--- !u!1 &5172607165356868038 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165356868033} + - component: {fileID: 5172607165356868045} + - component: {fileID: 5172607165356868034} + - component: {fileID: 5172607165356868035} + - component: {fileID: 5172607165356868032} + - component: {fileID: 4706084420240106491} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165356868033 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165356868038} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -234.24} + m_SizeDelta: {x: 720, y: 68.48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607165356868045 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165356868038} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165356868034 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165356868038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Report content violating the sites Terms of Use or submit a DMCA complaint + using the form below. Make sure you include all relevant information and links. + If you'd like to report Copyright infringement and are the copyright holder, + select 'DMCA' below. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607165356868035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165356868038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5172607165356868032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165356868038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &4706084420240106491 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165356868038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Report content violating the sites Terms of Use or submit a DMCA complaint + using the form below. Make sure you include all relevant information and links. + If you'd like to report Copyright infringement and are the copyright holder, + select 'DMCA' below. + text: {fileID: 5172607165356868034} +--- !u!1 &5172607165532123088 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165532123091} + - component: {fileID: 5172607165532123103} + - component: {fileID: 5172607165532123100} + - component: {fileID: 5172607165532123101} + - component: {fileID: 5172607165532123090} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165532123091 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165532123088} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2391549339589373397} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -34} + m_SizeDelta: {x: 672, y: 91.3} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5172607165532123103 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165532123088} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165532123100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165532123088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum curabitur + enim feugiat vel nunc iaculis eget felis dolor. Placerat arcu ullamcorper sed + metus. In facilisis nam elit, gravida. Mattis ligula urna libero bibendum duis + in aenean etiam nunc. In eget porttitor risus dolor tellus, praesent magna. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607165532123101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165532123088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5172607165532123090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165532123088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &5172607165541929411 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165541929410} + - component: {fileID: 5172607165541929423} + - component: {fileID: 5172607165541929420} + - component: {fileID: 5172607165541929421} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165541929410 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165541929411} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2391549339589373397} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 240, y: 18} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5172607165541929423 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165541929411} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165541929420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165541929411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Details of infringement + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607165541929421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165541929411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5172607165589984895 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165589984894} + - component: {fileID: 5172607165589984891} + - component: {fileID: 5172607165589984888} + - component: {fileID: 5172607165589984889} + m_Layer: 5 + m_Name: pinline + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165589984894 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165589984895} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607164649981182} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 1} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &5172607165589984891 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165589984895} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165589984888 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165589984895} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5172607165589984889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165589984895} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &5172607165611800061 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165611800060} + - component: {fileID: 5172607165611800057} + - component: {fileID: 5172607165611800062} + - component: {fileID: 5172607165611800063} + - component: {fileID: 8134380458390083768} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165611800060 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165611800061} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607165658296420} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -12, y: 0} + m_SizeDelta: {x: -72, y: -48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607165611800057 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165611800061} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165611800062 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165611800061} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Describe the report... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 1679495182 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.39215687} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607165611800063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165611800061} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &8134380458390083768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165611800061} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Describe the report... + text: {fileID: 5172607165611800062} +--- !u!1 &5172607165658296421 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165658296420} + - component: {fileID: 5172607165658296423} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165658296420 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165658296421} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607165611800060} + - {fileID: 5172607166659453531} + m_Father: {fileID: 5172607164592827403} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5172607165658296423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165658296421} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &5172607165694230316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165694230319} + - component: {fileID: 5172607165694230312} + - component: {fileID: 5172607165694230313} + - component: {fileID: 5172607165694230318} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165694230319 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165694230316} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2391549340580683848} + - {fileID: 2391549341144760225} + - {fileID: 2391549339589373397} + m_Father: {fileID: 5172607166664520583} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 4.5, y: 20} + m_SizeDelta: {x: 720, y: 319} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &5172607165694230312 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165694230316} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165694230313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165694230316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5172607165694230318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165694230316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 24 + m_Right: 48 + m_Top: 24 + m_Bottom: 24 + m_ChildAlignment: 0 + m_Spacing: 40 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &5172607165931077461 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607165931077460} + - component: {fileID: 5172607165931077459} + - component: {fileID: 5172607165931077456} + - component: {fileID: 5172607165931077457} + - component: {fileID: 5172607165931077462} + - component: {fileID: 5172607165931077463} + m_Layer: 5 + m_Name: Main Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607165931077460 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165931077461} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607166017534751} + - {fileID: 2391549340436633845} + - {fileID: 2391549340956669948} + - {fileID: 5172607165356868033} + - {fileID: 2391549339723379887} + - {fileID: 5172607165298037107} + - {fileID: 5172607166735554722} + - {fileID: 2391549340376708267} + - {fileID: 2391549341199285175} + - {fileID: 5172607166144280154} + m_Father: {fileID: 2391549340146156331} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 880, y: 656.48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607165931077459 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165931077461} + m_CullTransparentMesh: 0 +--- !u!114 &5172607165931077456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165931077461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f12eeb8dd0927a249aeec61fdfc3eba7, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5172607165931077457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165931077461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &5172607165931077462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165931077461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &5172607165931077463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607165931077461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 40 + m_Bottom: 40 + m_ChildAlignment: 1 + m_Spacing: 40 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &5172607166017534748 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166017534751} + - component: {fileID: 5172607166017534744} + - component: {fileID: 5172607166017534745} + - component: {fileID: 5172607166017534750} + - component: {fileID: 6385111100754155339} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166017534751 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166017534748} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -60} + m_SizeDelta: {x: 720, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607166017534744 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166017534748} + m_CullTransparentMesh: 0 +--- !u!114 &5172607166017534745 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166017534748} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Report a problem + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 258 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607166017534750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166017534748} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &6385111100754155339 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166017534748} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Report a problem + text: {fileID: 5172607166017534745} +--- !u!1 &5172607166144280155 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166144280154} + - component: {fileID: 5172607166144280133} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166144280154 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166144280155} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 749535632246298879} + - {fileID: 5170613823110809396} + - {fileID: 2393947267990208066} + - {fileID: 5170613823339001392} + - {fileID: 2393947266920543004} + - {fileID: 2393947268376000679} + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -568.48} + m_SizeDelta: {x: 800, y: 48} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &5172607166144280133 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166144280155} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 24 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &5172607166188576079 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166188576078} + - component: {fileID: 5172607166188576075} + - component: {fileID: 5172607166188576072} + - component: {fileID: 5172607166188576073} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166188576078 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166188576079} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607166243421133} + m_Father: {fileID: 5172607164649981182} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607166188576075 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166188576079} + m_CullTransparentMesh: 0 +--- !u!114 &5172607166188576072 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166188576079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_TextViewport: {fileID: 5172607166243421133} + m_TextComponent: {fileID: 5172607165189137804} + m_Placeholder: {fileID: 5172607164684209423} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &5172607166188576073 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166188576079} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 65f053af8f7d2fc4c9ce3f4452f26201, type: 3} + m_Name: + m_EditorClassIdentifier: + editOnFocus: 0 + inputFieldTitle: Email address + inputFieldPlaceholderText: Email... + keyboardtype: 1 + inputField: {fileID: 5172607166188576072} +--- !u!1 &5172607166243421122 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166243421133} + - component: {fileID: 5172607166243421132} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166243421133 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166243421122} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607164684209421} + - {fileID: 5172607165189137794} + m_Father: {fileID: 5172607166188576078} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 32, y: 0} + m_SizeDelta: {x: -64, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5172607166243421132 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166243421122} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!1 &5172607166367839478 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166367839473} + - component: {fileID: 5172607166367839474} + - component: {fileID: 5172607166367839475} + - component: {fileID: 5172607166367839472} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166367839473 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166367839478} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607164649981182} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &5172607166367839474 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166367839478} + m_CullTransparentMesh: 0 +--- !u!114 &5172607166367839475 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166367839478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9add6864895115c4587c2a86d9ba1a46, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5172607166367839472 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166367839478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5172607166508539323 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166508539322} + - component: {fileID: 5172607166508539303} + - component: {fileID: 5172607166508539300} + - component: {fileID: 5172607166508539301} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166508539322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166508539323} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2391549341144760225} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 240, y: 18} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5172607166508539303 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166508539323} + m_CullTransparentMesh: 0 +--- !u!114 &5172607166508539300 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166508539323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Email + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607166508539301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166508539323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5172607166568055525 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166568055524} + - component: {fileID: 5172607166568055520} + - component: {fileID: 5172607166568055521} + - component: {fileID: 5172607166568055526} + - component: {fileID: 5172607166568055527} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166568055524 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166568055525} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2391549341144760225} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -34} + m_SizeDelta: {x: 672, y: 22.83} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5172607166568055520 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166568055525} + m_CullTransparentMesh: 0 +--- !u!114 &5172607166568055521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166568055525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: john.doe@gmail.com + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607166568055526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166568055525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5172607166568055527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166568055525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &5172607166659453528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166659453531} + - component: {fileID: 5172607166659453508} + - component: {fileID: 5172607166659453509} + - component: {fileID: 5172607166659453530} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166659453531 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166659453528} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 5172607165658296420} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -12, y: 0} + m_SizeDelta: {x: -72, y: -48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607166659453508 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166659453528} + m_CullTransparentMesh: 0 +--- !u!114 &5172607166659453509 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166659453528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5172607166659453530 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166659453528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &5172607166664520580 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166664520583} + - component: {fileID: 5172607166664520576} + - component: {fileID: 5172607166664520577} + - component: {fileID: 5172607166664520582} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166664520583 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166664520580} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607165694230319} + m_Father: {fileID: 5172607166735554722} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -4.5, y: 0} + m_SizeDelta: {x: -11, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5172607166664520576 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166664520580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!222 &5172607166664520577 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166664520580} + m_CullTransparentMesh: 0 +--- !u!114 &5172607166664520582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166664520580} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5172607166731483674 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166731483653} + - component: {fileID: 5172607166731483649} + - component: {fileID: 5172607166731483654} + - component: {fileID: 5172607166731483655} + - component: {fileID: 5172607166731483652} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5172607166731483653 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166731483674} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2391549340146156331} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5172607166731483649 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166731483674} + m_CullTransparentMesh: 0 +--- !u!114 &5172607166731483654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166731483674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.78431374} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5172607166731483655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166731483674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5172607166731483652 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166731483674} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5172607166731483654} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2490486611824912638} + m_MethodName: Close + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &5172607166735554723 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5172607166735554722} + - component: {fileID: 5172607166735554734} + - component: {fileID: 5172607166735554735} + - component: {fileID: 5172607166735554732} + - component: {fileID: 5172607166735554733} + m_Layer: 5 + m_Name: Summary + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5172607166735554722 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166735554723} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5172607166664520583} + - {fileID: 5172607164876907776} + m_Father: {fileID: 5172607165931077460} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 440, y: -530.81} + m_SizeDelta: {x: 720, y: 319} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5172607166735554734 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166735554723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 5172607165694230319} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.1 + m_ScrollSensitivity: 10 + m_Viewport: {fileID: 5172607166664520583} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 5172607164876907779} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &5172607166735554735 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166735554723} + m_CullTransparentMesh: 0 +--- !u!114 &5172607166735554732 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166735554723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8471ca04d7df332408a7a99c388ec2bd, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5172607166735554733 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5172607166735554723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &5172607165973715848 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5236656194357645908} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7523245058210308002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977913163380199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Not working + text: {fileID: 6307507994464609549} +--- !u!114 &5488055146320904415 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977913815216863} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Submit + text: {fileID: 6307507993941647925} +--- !u!114 &1408320839518170705 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977913932510266} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Done + text: {fileID: 6307507993824453840} +--- !u!114 &3790818238735214924 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914101635906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: DMCA + text: {fileID: 6307507995671169960} +--- !u!114 &3291257504723911091 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914112451462} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Rude content + text: {fileID: 6307507995648308076} +--- !u!114 &1631593738859914021 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914372178539} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Illegal content + text: {fileID: 6307507995388072577} +--- !u!114 &2120518103897270648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914675426895} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: False information + text: {fileID: 6307507995087464101} +--- !u!114 &3221010879056571816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914677044508} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Stolen content + text: {fileID: 6307507995088958966} +--- !u!114 &7516485437026707547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914884342526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Generic + text: {fileID: 6307507995011174932} +--- !u!114 &6165152757606876946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914884652929} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Next + text: {fileID: 6307507995011346283} +--- !u!114 &3761363901502656265 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977915133105375} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Other + text: {fileID: 6307507994773390389} +--- !u!1001 &2391549339333023764 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2391549341199285175} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 314 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 370 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -180 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Other + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnUp + value: + objectReference: {fileID: 4953877138647350548} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 2469945915816321701} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnLeft + value: + objectReference: {fileID: 4953877138650017351} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenEmail + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetReportType + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Other + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 5 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &6307507994773390389 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339333023764} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977915133105375} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2393947267143899202 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339333023764} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4953877138971413719 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339333023764} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6755977915133105375 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339333023764} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2391549339625468746 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5172607166144280154} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 767 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Next + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenDetails + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Next + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &6307507995011346283 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339625468746} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914884652929} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2393947266920543004 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339625468746} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4953877138741667721 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339625468746} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6755977914884652929 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339625468746} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2391549339625819701 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2391549341199285175} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 314 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 36 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Generic + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 4953877138224295407} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnRight + value: + objectReference: {fileID: 4953877139165070154} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenEmail + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetReportType + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Generic + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 7 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &6307507995011174932 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339625819701} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914884342526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6755977914884342526 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339625819701} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4953877138742024950 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339625819701} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2393947266920828515 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339625819701} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2391549339816356311 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2391549341199285175} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 314 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 370 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Solen content + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnUp + value: + objectReference: {fileID: 4953877139179699086} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 4953877138971413719} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnLeft + value: + objectReference: {fileID: 4953877139423009379} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenEmail + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetReportType + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Stolen content + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 14 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &2393947266964531585 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339816356311} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6755977914677044508 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339816356311} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6307507995088958966 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339816356311} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914677044508} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &4953877138647350548 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339816356311} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2391549339819031172 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2391549341199285175} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 314 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 36 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -180 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: False information + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnUp + value: + objectReference: {fileID: 4953877139423009379} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 2469945915816321701} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnRight + value: + objectReference: {fileID: 4953877138971413719} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenEmail + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetReportType + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: False information + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 17 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &4953877138650017351 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339819031172} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2393947266963045074 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339819031172} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6307507995087464101 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339819031172} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914675426895} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6755977914675426895 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549339819031172} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2391549340053048992 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2391549341199285175} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 314 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 36 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Illegal content + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnUp + value: + objectReference: {fileID: 4953877138224295407} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 4953877138650017351} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnRight + value: + objectReference: {fileID: 4953877138647350548} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenEmail + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetReportType + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Illegal content + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 15 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &2393947267733933814 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340053048992} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6755977914372178539 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340053048992} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6307507995388072577 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340053048992} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914372178539} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &4953877139423009379 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340053048992} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2391549340315211657 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2391549341199285175} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 314 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 370 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: DMCA + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 4953877139179699086} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnLeft + value: + objectReference: {fileID: 4953877138742024950} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenEmail + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetReportType + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: DMCA + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 4 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &2393947267471775711 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340315211657} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4953877139165070154 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340315211657} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6755977914101635906 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340315211657} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6307507995671169960 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340315211657} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914101635906} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2391549340329570125 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2391549341199285175} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 314 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 370 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Rude Content + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnUp + value: + objectReference: {fileID: 4953877139165070154} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 4953877138647350548} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnLeft + value: + objectReference: {fileID: 4953877138224295407} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenEmail + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetReportType + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Rude content + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 12 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &6307507995648308076 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340329570125} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977914112451462} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &4953877139179699086 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340329570125} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2393947267490590491 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340329570125} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6755977914112451462 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340329570125} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2391549340552509681 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5172607166144280154} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 981 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Done + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Done + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &6307507993824453840 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340552509681} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977913932510266} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6755977913932510266 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340552509681} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4953877137789660210 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340552509681} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2393947268376000679 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340552509681} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2391549340703292948 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5172607166144280154} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 339 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Submit + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenSummary + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Submit + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &2393947267990208066 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340703292948} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4953877137672268503 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340703292948} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6307507993941647925 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340703292948} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977913815216863} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6755977913815216863 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549340703292948} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2391549341255579948 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2391549341199285175} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 314 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 36 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -60 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Not Working + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnUp + value: + objectReference: {fileID: 4953877138742024950} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 4953877139423009379} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnRight + value: + objectReference: {fileID: 4953877139179699086} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OpenEmail + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetReportType + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_IntArgument + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Not working + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 11 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &6755977913163380199 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549341255579948} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4953877138224295407 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549341255579948} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &2393947268412176762 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549341255579948} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6307507994464609549 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 2391549341255579948} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6755977913163380199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5172607164694050406 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5172607166144280154} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 320 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Cancel + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2490486611824912638} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Cancel + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &3562473344313780807 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5172607164694050406} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4267927719403977389} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &4267927719403977389 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5172607164694050406} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2469945915816321701 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5172607164694050406} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &5170613823339001392 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5172607164694050406} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5172607164889188194 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5172607166144280154} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 190 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 125 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -4 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Back + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7500801496791559709, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Back + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!114 &3562473344663558979 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5172607164889188194} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4267927719200361385} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &4267927719200361385 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5172607164889188194} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2469945915458081697 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5172607164889188194} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &5170613823110809396 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 5172607164889188194} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &5172607165973715853 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5172607166144280154} + m_Modifications: + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.b + value: 0.105882354 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.g + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.r + value: 0.05490196 + objectReference: {fileID: 0} + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 308 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.b + value: 0.105882354 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.g + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.r + value: 0.05490196 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.b + value: 0.105882354 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.g + value: 0.0627451 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Color.r + value: 0.05490196 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9004829202920558610, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_UpdateMode + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!1 &3764400646674925740 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8355616287565517601, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 5172607165973715853} + m_PrefabAsset: {fileID: 0} +--- !u!1 &622839552717027456 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5722966312418943757, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 5172607165973715853} + m_PrefabAsset: {fileID: 0} +--- !u!224 &749535632246298879 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 5172607165973715853} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3613570487818305609 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 5172607165973715853} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5236656194357645908 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1109184991508138457, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 5172607165973715853} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Prefabs/Report Panel/Report Panel.prefab.meta b/UI/Prefabs/Report Panel/Report Panel.prefab.meta new file mode 100644 index 0000000..b4fdfa7 --- /dev/null +++ b/UI/Prefabs/Report Panel/Report Panel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b453efa2342c8cd42bacda122d59b301 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Search Panel.meta b/UI/Prefabs/Search Panel.meta new file mode 100644 index 0000000..ef0ab5a --- /dev/null +++ b/UI/Prefabs/Search Panel.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5952396dac7ff5741b50c72b7d5e018e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Search Panel/Search Panel.prefab b/UI/Prefabs/Search Panel/Search Panel.prefab new file mode 100644 index 0000000..1fbfd52 --- /dev/null +++ b/UI/Prefabs/Search Panel/Search Panel.prefab @@ -0,0 +1,3155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &22727128957527458 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22727128957527461} + - component: {fileID: 3570463100115077834} + m_Layer: 5 + m_Name: Search Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &22727128957527461 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727128957527458} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7397172899977292061} + - {fileID: 22727128965747212} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3570463100115077834 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727128957527458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f256e83bf0cc2d2429e619e70800b638, type: 3} + m_Name: + m_EditorClassIdentifier: + SearchPanelGameObject: {fileID: 22727128957527458} + SearchPanelField: {fileID: 22727129952654041} + SearchPanelTagCategoryPrefab: {fileID: 4573813863739650460, guid: 26683115ede837e4db04f2e6e97afee2, + type: 3} + SearchPanelTagViewport: {fileID: 22727129159149471} + SearchPanelTagParent: {fileID: 7397172900632940655} + SearchPanelTagPrefab: {fileID: 1439602200711500964, guid: 35365a29917c91d4680499b1230f172b, + type: 3} + SearchPanelLeftBumperIcon: {fileID: 4057119837346377926} + SearchPanelRightBumperIcon: {fileID: 3188536477367008893} +--- !u!1 &22727128965747213 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22727128965747212} + - component: {fileID: 22727128965747201} + - component: {fileID: 22727128965747214} + - component: {fileID: 22727128965747215} + m_Layer: 5 + m_Name: Content Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22727128965747212 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727128965747213} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7397172901962415173} + - {fileID: 22727129878138834} + - {fileID: 22727130728885595} + m_Father: {fileID: 22727128957527461} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 640, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &22727128965747201 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727128965747213} + m_CullTransparentMesh: 0 +--- !u!114 &22727128965747214 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727128965747213} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &22727128965747215 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727128965747213} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &22727129159149468 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22727129159149471} + - component: {fileID: 22727129159149457} + - component: {fileID: 22727129159149470} + - component: {fileID: 22727129159149459} + - component: {fileID: 22727129159149456} + m_Layer: 5 + m_Name: ScrollRect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22727129159149471 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129159149468} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7397172900632940655} + m_Father: {fileID: 22727129878138834} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &22727129159149457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129159149468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} +--- !u!114 &22727129159149470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129159149468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 7397172900632940655} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.1 + m_ScrollSensitivity: 100 + m_Viewport: {fileID: 22727129159149471} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 7397172900517969656} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 1 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &22727129159149459 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129159149468} + m_CullTransparentMesh: 0 +--- !u!114 &22727129159149456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129159149468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &22727129878138835 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22727129878138834} + m_Layer: 5 + m_Name: Tags + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22727129878138834 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129878138835} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22727130323297556} + - {fileID: 22727129159149471} + - {fileID: 7397172900517969663} + m_Father: {fileID: 22727128965747212} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -24} + m_SizeDelta: {x: 0, y: -288} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &22727129922752011 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22727129922752010} + - component: {fileID: 22727129922752015} + - component: {fileID: 22727129922752012} + - component: {fileID: 22727129922752013} + - component: {fileID: 6500553655647741255} + m_Layer: 5 + m_Name: Other categories + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22727129922752010 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129922752011} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22727130323297556} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22727129922752015 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129922752011} + m_CullTransparentMesh: 0 +--- !u!114 &22727129922752012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129922752011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Other categories + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &22727129922752013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129922752011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &6500553655647741255 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727129922752011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Other categories + text: {fileID: 22727129922752012} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &22727130323297557 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22727130323297556} + m_Layer: 5 + m_Name: Gamepad info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22727130323297556 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727130323297557} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22727129922752010} + - {fileID: 4794002296397855509} + - {fileID: 7178365821980593143} + m_Father: {fileID: 22727129878138834} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -40, y: -40} + m_SizeDelta: {x: 224, y: 32} + m_Pivot: {x: 1, y: 1} +--- !u!1 &22727130728885592 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22727130728885595} + - component: {fileID: 22727130728885597} + - component: {fileID: 22727130728885594} + - component: {fileID: 22727130728885596} + m_Layer: 5 + m_Name: Footer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22727130728885595 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727130728885592} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 25263594645782598} + - {fileID: 3010629284227733185} + - {fileID: 5710371749272254194} + m_Father: {fileID: 22727128965747212} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 120} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &22727130728885597 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727130728885592} + m_CullTransparentMesh: 0 +--- !u!114 &22727130728885594 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727130728885592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &22727130728885596 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22727130728885592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!1 &181605522699344034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8273232163523552368} + - component: {fileID: 2615668545574721594} + - component: {fileID: 5198119834420567828} + - component: {fileID: 2523257635731855319} + m_Layer: 5 + m_Name: LB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8273232163523552368 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 181605522699344034} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4794002296397855509} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2615668545574721594 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 181605522699344034} + m_CullTransparentMesh: 0 +--- !u!114 &5198119834420567828 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 181605522699344034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2c665852e658d7b4aa13b825d7cce91f, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2523257635731855319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 181605522699344034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 5198119834420567828} + config: {fileID: 11400000, guid: 3f84a33e80b94774e8161856c3780ae4, type: 2} +--- !u!114 &68794116539107359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1042862369128162242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Clear filter + text: {fileID: 1042862369128162240} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &1845603647056042000 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7178365821980593143} + - component: {fileID: 8998789378299543393} + - component: {fileID: 3188536477367008893} + - component: {fileID: 1036125034613280342} + m_Layer: 5 + m_Name: Controller RB Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7178365821980593143 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845603647056042000} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 9066309559006791590} + m_Father: {fileID: 22727130323297556} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 1, y: 0} +--- !u!222 &8998789378299543393 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845603647056042000} + m_CullTransparentMesh: 0 +--- !u!114 &3188536477367008893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845603647056042000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 4a7e410ddf7779b4498501f99817db32, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1036125034613280342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845603647056042000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 3188536477367008893} + config: {fileID: 11400000, guid: e57a7dbec9af7454fa759234deaa3042, type: 2} +--- !u!114 &22727130349640894 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3028018686354904777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 24 + m_Right: 24 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &4248379458315599696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2339557476742008354} + m_Layer: 5 + m_Name: Close Box (Controller Icon) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2339557476742008354 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4248379458315599696} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 502262140643556388} + m_Father: {fileID: 3238835335463288391} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 280, y: -20} + m_SizeDelta: {x: 560, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5083690330531299285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3238835335463288391} + m_Layer: 5 + m_Name: LayoutGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3238835335463288391 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5083690330531299285} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2339557476742008354} + - {fileID: 22727130726863486} + m_Father: {fileID: 7397172901962415173} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 560, y: 108} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5766683204753039951 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9066309559006791590} + - component: {fileID: 7928537014849455179} + - component: {fileID: 4564516781858583896} + - component: {fileID: 3276825321379741770} + m_Layer: 5 + m_Name: RB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9066309559006791590 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5766683204753039951} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7178365821980593143} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7928537014849455179 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5766683204753039951} + m_CullTransparentMesh: 0 +--- !u!114 &4564516781858583896 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5766683204753039951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ae77b0e026d27cb44b367ea392e2c423, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3276825321379741770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5766683204753039951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 4564516781858583896} + config: {fileID: 11400000, guid: df1d1f97fb954fb43b6087dfe4e8301d, type: 2} +--- !u!1 &6775825743092767961 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4794002296397855509} + - component: {fileID: 8641677671266791112} + - component: {fileID: 4057119837346377926} + - component: {fileID: 3767792763909300823} + m_Layer: 5 + m_Name: Controller LB Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4794002296397855509 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6775825743092767961} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8273232163523552368} + m_Father: {fileID: 22727130323297556} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0, y: 0} +--- !u!222 &8641677671266791112 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6775825743092767961} + m_CullTransparentMesh: 0 +--- !u!114 &4057119837346377926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6775825743092767961} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d0321bfbd06fb2649aefe04056d3e620, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3767792763909300823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6775825743092767961} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 4057119837346377926} + config: {fileID: 11400000, guid: 42498adbd513e4f42b11d744efe971d4, type: 2} +--- !u!1 &7397172899977292060 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397172899977292061} + - component: {fileID: 7397172899977292063} + - component: {fileID: 7397172899977292062} + - component: {fileID: 7397172899977292056} + - component: {fileID: 7397172899977292057} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397172899977292061 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172899977292060} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22727128957527461} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7397172899977292063 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172899977292060} + m_CullTransparentMesh: 0 +--- !u!114 &7397172899977292062 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172899977292060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.7019608} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7397172899977292056 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172899977292060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7397172899977292057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172899977292060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7397172899977292062} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3570463100115077834} + m_MethodName: Close + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &7397172900146470764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397172900146470765} + - component: {fileID: 7397172900146470767} + - component: {fileID: 7397172900146470766} + - component: {fileID: 8123277852344968391} + m_Layer: 5 + m_Name: Controller Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397172900146470765 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900146470764} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5586720948890698206} + m_Father: {fileID: 25263594645782598} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 1} +--- !u!222 &7397172900146470767 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900146470764} + m_CullTransparentMesh: 0 +--- !u!114 &7397172900146470766 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900146470764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8123277852344968391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900146470764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 7397172900146470766} + config: {fileID: 11400000, guid: f61575af3474946408f87595370cf4ad, type: 2} +--- !u!1 &7397172900517969662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397172900517969663} + - component: {fileID: 7397172900517969658} + - component: {fileID: 7397172900517969657} + - component: {fileID: 7397172900517969656} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397172900517969663 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900517969662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7397172900913230381} + m_Father: {fileID: 22727129878138834} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -8, y: 0} + m_SizeDelta: {x: 8, y: -80} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &7397172900517969658 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900517969662} + m_CullTransparentMesh: 0 +--- !u!114 &7397172900517969657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900517969662} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7397172900517969656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900517969662} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7397172901726443513} + m_HandleRect: {fileID: 7397172901726443512} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &7397172900632940654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397172900632940655} + - component: {fileID: 7397172900632940649} + - component: {fileID: 7397172900632940648} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397172900632940655 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900632940654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22727129159149471} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 8, y: 0} + m_SizeDelta: {x: -64, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &7397172900632940649 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900632940654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &7397172900632940648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900632940654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 40 + m_ChildAlignment: 0 + m_Spacing: 16 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7397172900913230380 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397172900913230381} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397172900913230381 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172900913230380} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7397172901726443512} + m_Father: {fileID: 7397172900517969663} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7397172901726443519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397172901726443512} + - component: {fileID: 7397172901726443514} + - component: {fileID: 7397172901726443513} + - component: {fileID: 7397172901726443515} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397172901726443512 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901726443519} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7397172900913230381} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7397172901726443514 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901726443519} + m_CullTransparentMesh: 0 +--- !u!114 &7397172901726443513 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901726443519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 0.39215687} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7397172901726443515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901726443519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &5783281730430297684 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901949409973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Enter keyword + text: {fileID: 7397172901949409968} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7397172901962415172 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397172901962415173} + - component: {fileID: 7397172901962415168} + - component: {fileID: 7397172901962415175} + - component: {fileID: 7397172901962415174} + m_Layer: 5 + m_Name: Search Field + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397172901962415173 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901962415172} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3238835335463288391} + m_Father: {fileID: 22727128965747212} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 168} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &7397172901962415168 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901962415172} + m_CullTransparentMesh: 0 +--- !u!114 &7397172901962415175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901962415172} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.12941177, g: 0.16078432, b: 0.27058825, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7397172901962415174 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901962415172} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 1 +--- !u!114 &7942623132079645273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7530100453192074225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Cancel + text: {fileID: 7530100453192074227} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &8243831101844954484 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5586720948890698206} + - component: {fileID: 608576220939534824} + - component: {fileID: 194875817369674506} + - component: {fileID: 5858828448657684440} + m_Layer: 5 + m_Name: Cue (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5586720948890698206 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8243831101844954484} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7397172900146470765} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 12, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &608576220939534824 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8243831101844954484} + m_CullTransparentMesh: 0 +--- !u!114 &194875817369674506 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8243831101844954484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ba4b580110e82844298278a39c624854, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5858828448657684440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8243831101844954484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 194875817369674506} + config: {fileID: 11400000, guid: 7d70f9fe2efe2f6419f680ba2604b7d7, type: 2} +--- !u!114 &6673079262923674015 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8980966412291476699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Search + text: {fileID: 8568105276095994929} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &7397172901466240986 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8980966412291476699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1001 &22727129028247568 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 22727130728885595} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 134 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Search + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 49.455 + objectReference: {fileID: 0} + - target: {fileID: 5802092550609450754, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 3570463100115077834} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: ApplyFilter + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Search + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &3028018686354904777 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22727129028247568} + m_PrefabAsset: {fileID: 0} +--- !u!224 &25263594645782598 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22727129028247568} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8980966412291476699 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22727129028247568} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8568105276095994929 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22727129028247568} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8980966412291476699} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &22727129638402311 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 22727130728885595} + m_Modifications: + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_text + value: Clear filter + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.characterCount + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 2639670795910479274, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 51.07 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 134 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 186 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273406580189357525, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: config + value: + objectReference: {fileID: 11400000, guid: c0f94355830c579428077573555b77e2, + type: 2} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: Controller Icon + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629754, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: Clear filter + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].target + value: + objectReference: {fileID: 6815055118060845626} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].transition + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 3570463100115077834} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: ClearFilter + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 71af8a9a5a69a5648af22465acf51a99, type: 3} +--- !u!224 &3010629284227733185 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 22727129638402311} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6815055118060845626 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6828387984629629757, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 22727129638402311} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1042862369128162242 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1020140050670541509, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 22727129638402311} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1042862369128162240 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 22727129638402311} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1042862369128162242} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2878145334235396503 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2339557476742008354} + m_Modifications: + - target: {fileID: 483652631100272818, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 483652631100272818, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 483652631100272818, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 483652631100272818, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_textInfo.characterCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_SizeDelta.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6223212484800735566, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6223212484800735566, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 3570463100115077834} + - target: {fileID: 6223212484800735566, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 6223212484800735567, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + propertyPath: m_Name + value: Close (X) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, type: 3} +--- !u!224 &502262140643556388 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2380536337945314739, guid: b1ec3ffd2703b1e4e8a5e55c9fdaf66f, + type: 3} + m_PrefabInstance: {fileID: 2878145334235396503} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6274410089655230040 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3238835335463288391} + m_Modifications: + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 3583501032904820061, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_fontColor32.rgba + value: 2164260863 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 4361742436300990387, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: keyboardtype + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4361742436300990387, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: inputFieldTitle + value: Search + objectReference: {fileID: 0} + - target: {fileID: 4361742436300990387, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: inputFieldPlaceholderText + value: Search for... + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_SizeDelta.x + value: 560 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_SizeDelta.y + value: 48 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 280 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -84 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6288028451827600423, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_Name + value: Search bar + objectReference: {fileID: 0} + - target: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 41734941304f2e843ac339b5227f4c8b, type: 3} +--- !u!114 &7397172901949409968 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3583501033932969192, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + m_PrefabInstance: {fileID: 6274410089655230040} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397172901949409973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &22727129952654041 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6288028452663676033, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + m_PrefabInstance: {fileID: 6274410089655230040} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &7397172901949409973 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3583501033932969197, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + m_PrefabInstance: {fileID: 6274410089655230040} + m_PrefabAsset: {fileID: 0} +--- !u!224 &22727130726863486 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6288028451827600422, guid: 41734941304f2e843ac339b5227f4c8b, + type: 3} + m_PrefabInstance: {fileID: 6274410089655230040} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7397172901345515828 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 22727130728885595} + m_Modifications: + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_text + value: Cancel + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_fontSize + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_fontSizeBase + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.characterCount + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2639670795910479274, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 45.622498 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 134 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -40 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3273406580189357525, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: config + value: + objectReference: {fileID: 11400000, guid: 9385cd1af17a68a46804c228c01afe2e, + type: 2} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: Controller Icon + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462530531932021, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_text + value: B + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629754, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: Close (Controller Icon) + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].target + value: + objectReference: {fileID: 4065421421365254665} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].transition + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 3570463100115077834} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Close + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 71af8a9a5a69a5648af22465acf51a99, type: 3} +--- !u!114 &4065421421365254665 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6828387984629629757, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 7397172901345515828} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &7530100453192074225 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1020140050670541509, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 7397172901345515828} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7530100453192074227 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 7397172901345515828} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7530100453192074225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &5710371749272254194 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 7397172901345515828} + m_PrefabAsset: {fileID: 0} diff --git a/UI/Prefabs/Search Panel/Search Panel.prefab.meta b/UI/Prefabs/Search Panel/Search Panel.prefab.meta new file mode 100644 index 0000000..2370469 --- /dev/null +++ b/UI/Prefabs/Search Panel/Search Panel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 767ce36082d6519459c23650a28a5f29 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/SearchResultListItem_Regular.prefab b/UI/Prefabs/SearchResultListItem_Regular.prefab new file mode 100644 index 0000000..f842af6 --- /dev/null +++ b/UI/Prefabs/SearchResultListItem_Regular.prefab @@ -0,0 +1,1051 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &549725685026019156 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1770869648403802325} + - component: {fileID: 2282027126166314946} + - component: {fileID: 2109548746721782677} + - component: {fileID: 4668983035156186177} + m_Layer: 5 + m_Name: Loading + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1770869648403802325 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 549725685026019156} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5534777789990729408} + m_Father: {fileID: 4161955788450601948} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -95} + m_SizeDelta: {x: 338, y: 190} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2282027126166314946 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 549725685026019156} + m_CullTransparentMesh: 0 +--- !u!114 &2109548746721782677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 549725685026019156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &4668983035156186177 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 549725685026019156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!1 &791644431859731025 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 791644431859731030} + - component: {fileID: 791644431859731028} + - component: {fileID: 791644431859731031} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &791644431859731030 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 791644431859731025} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4161955788450601948} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &791644431859731028 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 791644431859731025} + m_CullTransparentMesh: 0 +--- !u!114 &791644431859731031 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 791644431859731025} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &791644432007414224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 791644432007414225} + - component: {fileID: 9013224616036748342} + - component: {fileID: 6982955001401787505} + - component: {fileID: 8091416456969391131} + m_Layer: 5 + m_Name: SearchResultListItem_Regular + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &791644432007414225 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 791644432007414224} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4161955788450601948} + - {fileID: 7488569938085626070} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 338, y: 249} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &9013224616036748342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 791644432007414224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 20f9a16d5e58880448e8a5839594229e, type: 3} + m_Name: + m_EditorClassIdentifier: + viewportRestraint: {fileID: 0} + selectable: {fileID: 6982955001401787505} + isPlaceholder: 0 + colorSetters: [] + buttons: [] + dropdowns: [] + toggles: [] + scheme: {fileID: 0} + image: {fileID: 791644431859731031} + title: {fileID: 6773131554921796058} + loadingIcon: {fileID: 549725685026019156} + failedToLoadIcon: {fileID: 7051282347848406018} + profile: + id: + id: 0 + tags: [] + status: 0 + visible: 0 + name: + summary: + description: + contentWarnings: 0 + galleryImages_Original: [] + galleryImages_320x180: [] + galleryImages_640x360: [] + logoImage_320x180: + modId: + id: 0 + url: + filename: + logoImage_640x360: + modId: + id: 0 + url: + filename: + logoImage_1280x720: + modId: + id: 0 + url: + filename: + logoImage_Original: + modId: + id: 0 + url: + filename: + creatorUsername: + creatorAvatar_50x50: + modId: + id: 0 + url: + filename: + creatorAvatar_100x100: + modId: + id: 0 + url: + filename: + creatorAvatar_Original: + modId: + id: 0 + url: + filename: + metadata: + stats: + modId: + id: 0 + popularityRankPosition: 0 + popularityRankTotalMods: 0 + downloadsToday: 0 + downloadsTotal: 0 + subscriberTotal: 0 + ratingsTotal: 0 + ratingsPositive: 0 + ratingsNegative: 0 + ratingsPercentagePositive: 0 + ratingsWeightedAggregate: 0 + ratingsDisplayText: + archiveFileSize: 0 + progressTab: {fileID: 5332623437911926481} +--- !u!114 &6982955001401787505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 791644432007414224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 0} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 9013224616036748342} + m_MethodName: OpenModDetailsForThisProfile + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!222 &8091416456969391131 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 791644432007414224} + m_CullTransparentMesh: 0 +--- !u!1 &1073569494398876597 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7488569938085626070} + - component: {fileID: 411281463521391583} + - component: {fileID: 6773131554921796058} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7488569938085626070 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1073569494398876597} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 791644432007414225} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -200} + m_SizeDelta: {x: -32, y: 80} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &411281463521391583 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1073569494398876597} + m_CullTransparentMesh: 0 +--- !u!114 &6773131554921796058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1073569494398876597} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 6773131554921796058} + characterCount: 0 + spriteCount: 0 + spaceCount: 0 + wordCount: 0 + linkCount: 0 + lineCount: 0 + pageCount: 0 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1827600135296843395 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3280643516422825984} + - component: {fileID: 8769926473945700090} + - component: {fileID: 3296421769014624701} + - component: {fileID: 7661466473257341084} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3280643516422825984 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1827600135296843395} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4526423562672578792} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 90, y: 52} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8769926473945700090 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1827600135296843395} + m_CullTransparentMesh: 0 +--- !u!114 &3296421769014624701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1827600135296843395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 33620cc85c18a0742a5a11a1b7d355bb, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &7661466473257341084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1827600135296843395} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &4136729952473798050 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4161955788450601948} + - component: {fileID: 4502982661458026340} + - component: {fileID: 1369275378371292391} + - component: {fileID: 6068722114978223550} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4161955788450601948 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4136729952473798050} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1770869648403802325} + - {fileID: 4526423562672578792} + - {fileID: 791644431859731030} + - {fileID: 107581308487617028} + m_Father: {fileID: 791644432007414225} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 1.5} + m_SizeDelta: {x: 338, y: 190} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &4502982661458026340 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4136729952473798050} + m_CullTransparentMesh: 0 +--- !u!114 &1369275378371292391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4136729952473798050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &6068722114978223550 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4136729952473798050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &7051282347848406018 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4526423562672578792} + - component: {fileID: 3788163706048220357} + - component: {fileID: 4926546932310896086} + - component: {fileID: 1948972839408266744} + m_Layer: 5 + m_Name: Failed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4526423562672578792 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7051282347848406018} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3280643516422825984} + m_Father: {fileID: 4161955788450601948} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -95} + m_SizeDelta: {x: 338, y: 190} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3788163706048220357 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7051282347848406018} + m_CullTransparentMesh: 0 +--- !u!114 &4926546932310896086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7051282347848406018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4509804, g: 0.4627451, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &1948972839408266744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7051282347848406018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 7 +--- !u!1001 &99452421022381490 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1770869648403802325} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &5534777789990729408 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 99452421022381490} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4829254434285585693 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 4161955788450601948} + m_Modifications: + - target: {fileID: 704624176966553163, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 704624176966553163, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1645162211136672968, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Name + value: ProgressTab + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.x + value: 110 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.y + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7074662967068471825, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8068880088806200931, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fb11aa92a8bf14c40a4f846d52a9caeb, type: 3} +--- !u!224 &107581308487617028 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 4829254434285585693} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5332623437911926481 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 650134152300667852, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 4829254434285585693} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9b8a49fb798dad40a7bf351ff745a1f, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/SearchResultListItem_Regular.prefab.meta b/UI/Prefabs/SearchResultListItem_Regular.prefab.meta new file mode 100644 index 0000000..59eb776 --- /dev/null +++ b/UI/Prefabs/SearchResultListItem_Regular.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6d729eff984d2fc4fa8a660fff6d3a13 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/SearchResultListItem_RegularSelected.prefab b/UI/Prefabs/SearchResultListItem_RegularSelected.prefab new file mode 100644 index 0000000..1d431ca --- /dev/null +++ b/UI/Prefabs/SearchResultListItem_RegularSelected.prefab @@ -0,0 +1,1944 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &645020853660559956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7651966868919174154} + - component: {fileID: 6486262265191284404} + - component: {fileID: 4426968270457653949} + - component: {fileID: 446002139274487427} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7651966868919174154 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645020853660559956} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 81} + m_SizeDelta: {x: 396, y: 44} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &6486262265191284404 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645020853660559956} + m_CullTransparentMesh: 0 +--- !u!114 &4426968270457653949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645020853660559956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 4426968270457653949} + characterCount: 0 + spriteCount: 0 + spaceCount: 0 + wordCount: 0 + linkCount: 0 + lineCount: 0 + pageCount: 0 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &446002139274487427 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 645020853660559956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &1889803360405899038 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1749634460728570499} + - component: {fileID: 8331554554530260067} + - component: {fileID: 3921070459970083499} + - component: {fileID: 3996921327601415584} + - component: {fileID: 7330586331907445051} + - component: {fileID: 1629364460166145164} + m_Layer: 5 + m_Name: background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1749634460728570499 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1436449794644405193} + - {fileID: 1673968952686631427} + - {fileID: 1653441100735313900} + - {fileID: 9205103604461440230} + - {fileID: 7651966868919174154} + - {fileID: 814754657598926068} + m_Father: {fileID: 5051807497711647625} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8331554554530260067 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_CullTransparentMesh: 0 +--- !u!114 &3921070459970083499 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &3996921327601415584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &7330586331907445051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &1629364460166145164 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1889803360405899038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 4376587973394744487} + m_MethodName: OpenModDetailsForThisModProfile + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &2933289215661709816 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1436449794644405193} + - component: {fileID: 998352586935943394} + - component: {fileID: 9164335667942149939} + - component: {fileID: 1431312783179842665} + m_Layer: 5 + m_Name: icon mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1436449794644405193 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2933289215661709816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 3616021901724498309} + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -12} + m_SizeDelta: {x: -24, y: 238} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &998352586935943394 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2933289215661709816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!222 &9164335667942149939 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2933289215661709816} + m_CullTransparentMesh: 0 +--- !u!114 &1431312783179842665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2933289215661709816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3616021901724498306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3616021901724498309} + - component: {fileID: 3616021901724498311} + - component: {fileID: 3616021901724498308} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3616021901724498309 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901724498306} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1436449794644405193} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 238} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3616021901724498311 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901724498306} + m_CullTransparentMesh: 0 +--- !u!114 &3616021901724498308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901724498306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9433962, g: 0.9433962, b: 0.9433962, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &3616021901904687619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3616021901904687618} + - component: {fileID: 4376587973394744487} + - component: {fileID: 6783768072497898932} + - component: {fileID: 2708172086888723316} + m_Layer: 5 + m_Name: SearchResultListItem_RegularSelected + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3616021901904687618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5051807497711647625} + - {fileID: 1416501874772754002} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 960, y: -1141} + m_SizeDelta: {x: 338, y: 300} + m_Pivot: {x: 0.5, y: 0.46} +--- !u!114 &4376587973394744487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b55ab1eaffd41c24da914363d6dc169b, type: 3} + m_Name: + m_EditorClassIdentifier: + animator: {fileID: 6783768072497898932} + image: {fileID: 3616021901724498308} + failedToLoadIcon: {fileID: 7176677892884716255} + loadingIcon: {fileID: 6229365861290620620} + title: {fileID: 4426968270457653949} + subscribeButtonText: {fileID: 1788115453513566639} + contextMenuPosition: {fileID: 2875788690058587427} + listItemToReplicate: {fileID: 0} + lastListItemToReplicate: {fileID: 0} + progressTab: {fileID: 2473591249711973333} +--- !u!95 &6783768072497898932 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 8b8a13cb054dfca4db49cf75b7b98832, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &2708172086888723316 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3616021901904687619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &4217150747554264227 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 814754657598926068} + - component: {fileID: 5902820373047880424} + - component: {fileID: 6353958695002081936} + m_Layer: 5 + m_Name: Prompts + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &814754657598926068 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4217150747554264227} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7953760216470164952} + - {fileID: 2875788690058587427} + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 13} + m_SizeDelta: {x: 396, y: 0} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &5902820373047880424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4217150747554264227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 12 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 +--- !u!114 &6353958695002081936 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4217150747554264227} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1741964061, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &5077742008696250718 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1416501874772754002} + - component: {fileID: 5013974186807037640} + - component: {fileID: 9044266526697615920} + - component: {fileID: 1230177586950479923} + m_Layer: 5 + m_Name: highlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1416501874772754002 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077742008696250718} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3616021901904687618} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5013974186807037640 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077742008696250718} + m_CullTransparentMesh: 0 +--- !u!114 &9044266526697615920 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077742008696250718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ae7af120ee031534f952fdd7a78b80f9, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &1230177586950479923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5077742008696250718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &5390940142783372439 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9205103604461440230} + - component: {fileID: 5207888322267217169} + - component: {fileID: 3499637623289819851} + m_Layer: 5 + m_Name: clickable plate + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9205103604461440230 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5390940142783372439} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5207888322267217169 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5390940142783372439} + m_CullTransparentMesh: 0 +--- !u!114 &3499637623289819851 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5390940142783372439} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &6229365861290620620 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1673968952686631427} + - component: {fileID: 8822227718111173257} + - component: {fileID: 6909979092271063010} + - component: {fileID: 4366737450781625051} + m_Layer: 5 + m_Name: loadingIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1673968952686631427 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229365861290620620} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7907190722947711224} + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8822227718111173257 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229365861290620620} + m_CullTransparentMesh: 0 +--- !u!114 &6909979092271063010 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229365861290620620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &4366737450781625051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6229365861290620620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!1 &7048603489793308125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6368705342992439289} + - component: {fileID: 3229997839153152561} + - component: {fileID: 3266743030728280758} + - component: {fileID: 5287226671933637362} + m_Layer: 5 + m_Name: icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6368705342992439289 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048603489793308125} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1653441100735313900} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 180, y: 104} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3229997839153152561 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048603489793308125} + m_CullTransparentMesh: 0 +--- !u!114 &3266743030728280758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048603489793308125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 33620cc85c18a0742a5a11a1b7d355bb, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &5287226671933637362 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7048603489793308125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &7176677892884716255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1653441100735313900} + - component: {fileID: 2022550146025502683} + - component: {fileID: 6136641658364150477} + - component: {fileID: 2340793008960482413} + m_Layer: 5 + m_Name: failedToLoad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1653441100735313900 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176677892884716255} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 6368705342992439289} + m_Father: {fileID: 1749634460728570499} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -12} + m_SizeDelta: {x: -24, y: 238} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &2022550146025502683 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176677892884716255} + m_CullTransparentMesh: 0 +--- !u!114 &6136641658364150477 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176677892884716255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4509804, g: 0.4627451, b: 0.5176471, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &2340793008960482413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7176677892884716255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 7 +--- !u!1 &7601505989199081831 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5051807497711647625} + - component: {fileID: 5256225937732694484} + - component: {fileID: 6791986599377587745} + - component: {fileID: 8112415773660253173} + m_Layer: 5 + m_Name: Mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5051807497711647625 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7601505989199081831} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1749634460728570499} + - {fileID: 7578584284396596992} + m_Father: {fileID: 3616021901904687618} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5256225937732694484 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7601505989199081831} + m_CullTransparentMesh: 0 +--- !u!114 &6791986599377587745 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7601505989199081831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1d7a613ab4eb9984ca2ff61802b05e50, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &8112415773660253173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7601505989199081831} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1001 &1044698523055096549 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 814754657598926068} + m_Modifications: + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.characterCount + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.wordCount + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1020140050670541511, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 66.695 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2760373121462030376, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.x + value: 184 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771461, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6697462529236771462, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629754, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Name + value: More options + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4376587973394744487} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: ShowMoreOptions + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].target + value: + objectReference: {fileID: 5817750717166125528} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: extraTargets.Array.data[0].transition + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 6828387984629629755, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 71af8a9a5a69a5648af22465acf51a99, type: 3} +--- !u!224 &2875788690058587427 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2996962303814152134, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 1044698523055096549} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5817750717166125528 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6828387984629629757, guid: 71af8a9a5a69a5648af22465acf51a99, + type: 3} + m_PrefabInstance: {fileID: 1044698523055096549} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2114197285611020385 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 814754657598926068} + m_Modifications: + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.characterCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189428, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.characterCount + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4376587973394744487} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: SubscribeButton + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 63.9575 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6442999689545999158, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Name + value: Subscribe + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 184 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} +--- !u!224 &7953760216470164952 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 2114197285611020385} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1788115453513566639 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 2114197285611020385} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2311987569356243850 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1673968952686631427} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &7907190722947711224 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 2311987569356243850} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3122766627735855129 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5051807497711647625} + m_Modifications: + - target: {fileID: 1645162211136672968, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Name + value: ProgressTab + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.x + value: 110 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_SizeDelta.y + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fb11aa92a8bf14c40a4f846d52a9caeb, type: 3} +--- !u!224 &7578584284396596992 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4790354403107458841, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 3122766627735855129} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2473591249711973333 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 650134152300667852, guid: fb11aa92a8bf14c40a4f846d52a9caeb, + type: 3} + m_PrefabInstance: {fileID: 3122766627735855129} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b9b8a49fb798dad40a7bf351ff745a1f, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/SearchResultListItem_RegularSelected.prefab.meta b/UI/Prefabs/SearchResultListItem_RegularSelected.prefab.meta new file mode 100644 index 0000000..7fedef3 --- /dev/null +++ b/UI/Prefabs/SearchResultListItem_RegularSelected.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bd868a1c0bdae7d4293ab686e8eecfe3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/SearchResults.meta b/UI/Prefabs/SearchResults.meta new file mode 100644 index 0000000..025fb7d --- /dev/null +++ b/UI/Prefabs/SearchResults.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 99455a8d784db6740a13bae8247ec188 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/SearchResults/Search Results Panel.prefab b/UI/Prefabs/SearchResults/Search Results Panel.prefab new file mode 100644 index 0000000..f8458b2 --- /dev/null +++ b/UI/Prefabs/SearchResults/Search Results Panel.prefab @@ -0,0 +1,6959 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &20451693785694903 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451693785694900} + - component: {fileID: 20451693785694898} + - component: {fileID: 20451693785694901} + m_Layer: 5 + m_Name: Gradient + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451693785694900 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693785694903} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448336322547776} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 19, y: -24} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451693785694898 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693785694903} + m_CullTransparentMesh: 0 +--- !u!114 &20451693785694901 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693785694903} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &20451693883547628 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451693883547629} + - component: {fileID: 20451693883547627} + - component: {fileID: 20451693883547626} + - component: {fileID: 8457792729167529117} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451693883547629 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693883547628} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448334992327746} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 0, y: -40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451693883547627 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693883547628} + m_CullTransparentMesh: 0 +--- !u!114 &20451693883547626 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693883547628} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Let's refine your search if you haven't found what you were looking for. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8457792729167529117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693883547628} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Let's refine your search if you haven't found what you were looking + for. + text: {fileID: 20451693883547626} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &20451693953041976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451693953041977} + - component: {fileID: 20451693953041970} + - component: {fileID: 20451693953041973} + - component: {fileID: 20451693953041972} + - component: {fileID: 20451693953041975} + - component: {fileID: 20451693953041974} + m_Layer: 5 + m_Name: Refine filter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &20451693953041977 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693953041976} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451695480898889} + - {fileID: 20451693984808808} + - {fileID: 20451694915335343} + - {fileID: 20451694296090287} + m_Father: {fileID: 20451694011001859} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -164, y: -36} + m_SizeDelta: {x: 210, y: 48} + m_Pivot: {x: 1, y: 1} +--- !u!222 &20451693953041970 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693953041976} + m_CullTransparentMesh: 0 +--- !u!114 &20451693953041973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693953041976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &20451693953041972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693953041976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 20451695480898886} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: Open + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 20451695480898886} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 20451693984808809} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 423546ea7805256409409fecffa70f1a, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 423546ea7805256409409fecffa70f1a, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 20451693953041973} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &20451693953041975 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693953041976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &20451693953041974 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693953041976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &20451693958824620 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451693958824621} + - component: {fileID: 20451693958824619} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451693958824621 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693958824620} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451694572036570} + - {fileID: 20451695717477835} + - {fileID: 9131565354301827666} + m_Father: {fileID: 7399448335370840790} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -60.00049} + m_SizeDelta: {x: 0, y: -120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &20451693958824619 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693958824620} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 20451695717477835} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.1 + m_ScrollSensitivity: 100 + m_Viewport: {fileID: 20451693958824621} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 20451694572036571} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &20451693984808811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451693984808808} + - component: {fileID: 20451693984808806} + - component: {fileID: 20451693984808809} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451693984808808 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693984808811} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451693953041977} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451693984808806 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693984808811} + m_CullTransparentMesh: 0 +--- !u!114 &20451693984808809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693984808811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &20451693991035718 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451693991035719} + - component: {fileID: 20451693991035717} + - component: {fileID: 20451693991035716} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451693991035719 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693991035718} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448335622525175} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 176, y: -20} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451693991035717 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693991035718} + m_CullTransparentMesh: 0 +--- !u!114 &20451693991035716 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451693991035718} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c36e4922adf420842ad3738a5bb00a14, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &20451694011001858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694011001859} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694011001859 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694011001858} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451694465002973} + - {fileID: 20451693953041977} + - {fileID: 18532930564548125} + - {fileID: 7399448335857621764} + - {fileID: 7399448336246222745} + - {fileID: 7399448336322547776} + m_Father: {fileID: 7399448335370840790} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 120} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &20451694200407393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694200407422} + - component: {fileID: 20451694200407421} + - component: {fileID: 20451694200407420} + - component: {fileID: 20451694200407423} + - component: {fileID: 8147942534288975782} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694200407422 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694200407393} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448336322547776} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 94, y: -24} + m_SizeDelta: {x: 110, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451694200407421 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694200407393} + m_CullTransparentMesh: 0 +--- !u!114 &20451694200407420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694200407393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!114 &20451694200407423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694200407393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Refine filter + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8147942534288975782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694200407393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Refine filter + text: {fileID: 20451694200407423} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &20451694245282591 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694245282588} + - component: {fileID: 20451694245282587} + - component: {fileID: 20451694245282586} + - component: {fileID: 20451694245282589} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &20451694245282588 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694245282591} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451694296090287} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451694245282587 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694245282591} + m_CullTransparentMesh: 0 +--- !u!114 &20451694245282586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694245282591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: RS + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &20451694245282589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694245282591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &20451694282229031 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694282229028} + - component: {fileID: 20451694282229026} + - component: {fileID: 20451694282229029} + m_Layer: 5 + m_Name: Controller Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694282229028 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694282229031} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451695590643401} + m_Father: {fileID: 7399448336322547776} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 191, y: -8} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 1, y: 1} +--- !u!222 &20451694282229026 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694282229031} + m_CullTransparentMesh: 0 +--- !u!114 &20451694282229029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694282229031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &20451694296090286 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694296090287} + - component: {fileID: 20451694296090285} + - component: {fileID: 20451694296090284} + - component: {fileID: 3972717941121471431} + m_Layer: 5 + m_Name: Controller Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694296090287 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694296090286} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451694245282588} + - {fileID: 2906360258268803532} + m_Father: {fileID: 20451693953041977} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 32, y: 32} + m_Pivot: {x: 1, y: 1} +--- !u!222 &20451694296090285 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694296090286} + m_CullTransparentMesh: 0 +--- !u!114 &20451694296090284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694296090286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 38fe18e59483a2b47a24bafb02c61c33, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3972717941121471431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694296090286} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 20451694296090284} + config: {fileID: 11400000, guid: 34d5a2682375b1b4cb4ed887d7f0c032, type: 2} +--- !u!1 &20451694465002972 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694465002973} + - component: {fileID: 20451694465002968} + - component: {fileID: 20451694465002971} + - component: {fileID: 20451694465002970} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694465002973 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694465002972} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451694011001859} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 120} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &20451694465002968 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694465002972} + m_CullTransparentMesh: 0 +--- !u!114 &20451694465002971 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694465002972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &20451694465002970 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694465002972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!1 &20451694572036573 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694572036570} + - component: {fileID: 20451694572036569} + - component: {fileID: 20451694572036568} + - component: {fileID: 20451694572036571} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694572036570 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694572036573} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451695488904070} + m_Father: {fileID: 20451693958824621} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -8, y: 10} + m_SizeDelta: {x: 8, y: -60} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &20451694572036569 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694572036573} + m_CullTransparentMesh: 0 +--- !u!114 &20451694572036568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694572036573} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &20451694572036571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694572036573} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 20451695655946033} + m_HandleRect: {fileID: 20451695655946035} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 200825438109838788} + m_MethodName: OnScrollValueChange + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &20451694625781528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694625781529} + - component: {fileID: 20451694625781527} + - component: {fileID: 20451694625781526} + m_Layer: 5 + m_Name: Border + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694625781529 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694625781528} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448336322547776} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 29, y: -24} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451694625781527 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694625781528} + m_CullTransparentMesh: 0 +--- !u!114 &20451694625781526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694625781528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &20451694656047201 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694656047230} + - component: {fileID: 20451694656047228} + - component: {fileID: 20451694656047231} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694656047230 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694656047201} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448334992327746} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 310, y: 40} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &20451694656047228 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694656047201} + m_CullTransparentMesh: 0 +--- !u!114 &20451694656047231 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694656047201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 40 + m_fontSizeBase: 40 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &20451694701466136 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694701466137} + - component: {fileID: 20451694701466135} + - component: {fileID: 20451694701466134} + - component: {fileID: 8318507653111927189} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694701466137 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694701466136} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448336981988833} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 0, y: -40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451694701466135 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694701466136} + m_CullTransparentMesh: 0 +--- !u!114 &20451694701466134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694701466136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Unfortunately we couldn't find any mods matching your search. Let's try + different keywords or tags. + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &8318507653111927189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694701466136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Unfortunately we couldn't find any mods matching your search. Let's + try different keywords or tags. + text: {fileID: 20451694701466134} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &20451694915335342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451694915335343} + - component: {fileID: 20451694915335338} + - component: {fileID: 20451694915335341} + - component: {fileID: 20451694915335340} + - component: {fileID: 2452014468769300545} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451694915335343 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694915335342} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451693953041977} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 110, y: 16} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451694915335338 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694915335342} + m_CullTransparentMesh: 0 +--- !u!114 &20451694915335341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694915335342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!114 &20451694915335340 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694915335342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Refine filter + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &2452014468769300545 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451694915335342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Refine filter + text: {fileID: 20451694915335340} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &20451695243985123 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451695243985120} + - component: {fileID: 20451695243985151} + - component: {fileID: 20451695243985150} + - component: {fileID: 20451695243985121} + - component: {fileID: 4601147750605340437} + m_Layer: 5 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451695243985120 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695243985123} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448335622525175} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 90, y: -20} + m_SizeDelta: {x: 130, y: 18} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451695243985151 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695243985123} + m_CullTransparentMesh: 0 +--- !u!114 &20451695243985150 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695243985123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Mod support by + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &20451695243985121 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695243985123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &4601147750605340437 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695243985123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Mod support by + text: {fileID: 20451695243985150} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &20451695395539521 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451695395539550} + - component: {fileID: 20451695395539548} + - component: {fileID: 20451695395539551} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451695395539550 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695395539521} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448335370840790} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451695395539548 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695395539521} + m_CullTransparentMesh: 0 +--- !u!114 &20451695395539551 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695395539521} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7647c6aceb09bfe4d8fcddaa0db26989, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &20451695480898888 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451695480898889} + - component: {fileID: 20451695480898887} + - component: {fileID: 20451695480898886} + m_Layer: 5 + m_Name: Gradient + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451695480898889 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695480898888} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451693953041977} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451695480898887 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695480898888} + m_CullTransparentMesh: 0 +--- !u!114 &20451695480898886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695480898888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &20451695488904073 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451695488904070} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451695488904070 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695488904073} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451695655946035} + m_Father: {fileID: 20451694572036570} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &20451695590643400 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451695590643401} + - component: {fileID: 20451695590643396} + - component: {fileID: 20451695590643399} + - component: {fileID: 20451695590643398} + m_Layer: 5 + m_Name: Text (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451695590643401 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695590643400} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451694282229028} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451695590643396 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695590643400} + m_CullTransparentMesh: 0 +--- !u!114 &20451695590643399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695590643400} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 0 +--- !u!114 &20451695590643398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695590643400} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: RS + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281868315 + m_fontColor: {r: 0.105882354, g: 0.1254902, b: 0.21960784, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &20451695655946034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451695655946035} + - component: {fileID: 20451695655945934} + - component: {fileID: 20451695655946033} + - component: {fileID: 20451695655946032} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451695655946035 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695655946034} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451695488904070} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &20451695655945934 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695655946034} + m_CullTransparentMesh: 0 +--- !u!114 &20451695655946033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695655946034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &20451695655946032 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695655946034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!1 &20451695717477834 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 20451695717477835} + - component: {fileID: 20451695717477833} + - component: {fileID: 20451695717477832} + - component: {fileID: 20451695717477830} + - component: {fileID: 20451695717477828} + - component: {fileID: 20451695717477831} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &20451695717477835 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695717477834} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7399448336872269238} + - {fileID: 7399448335873651810} + - {fileID: 7399448336696492347} + - {fileID: 6097504236235679312} + m_Father: {fileID: 20451693958824621} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 960, y: 0} + m_SizeDelta: {x: 1920, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &20451695717477833 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695717477834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &20451695717477832 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695717477834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 64 + m_Right: 0 + m_Top: 256 + m_Bottom: 400 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 336, y: 249} + m_Spacing: {x: 28, y: 40} + m_Constraint: 0 + m_ConstraintCount: 2 +--- !u!114 &20451695717477830 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695717477834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: 960 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!222 &20451695717477828 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695717477834} + m_CullTransparentMesh: 0 +--- !u!114 &20451695717477831 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20451695717477834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2684134034374129600 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1118556320843623370} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Refine filter + text: {fileID: 418590708638022432} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &3716457103864941101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2906360258268803532} + - component: {fileID: 8742096476023479770} + - component: {fileID: 3453294216206181689} + - component: {fileID: 402286566747420713} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2906360258268803532 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3716457103864941101} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451694296090287} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8742096476023479770 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3716457103864941101} + m_CullTransparentMesh: 0 +--- !u!114 &3453294216206181689 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3716457103864941101} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1f5c03735f86c174ab7cf07e0de082f4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &402286566747420713 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3716457103864941101} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 855c6deec25285a45b525b71db458251, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 3453294216206181689} + config: {fileID: 11400000, guid: b84b9b55d5fe5d34ab014b1eee895eb1, type: 2} +--- !u!114 &85254446397857022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5862943674925749916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: edb10346a1dac1d41a69f1b9c914fbfd, type: 3} + m_Name: + m_EditorClassIdentifier: + color: 8 + colorScheme: {fileID: 0} + image: {fileID: 5032684350834054116} +--- !u!114 &6087773739427007193 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6537678121077382089} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Sort by:' + text: {fileID: 6763134024028889077} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &5581801285469287552 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6751397233643198287} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Date submitted + text: {fileID: 6012398923422574339} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7399448334992327747 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448334992327746} + - component: {fileID: 7399448334992327745} + m_Layer: 5 + m_Name: End of results message + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7399448334992327746 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448334992327747} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451694656047230} + - {fileID: 20451693883547629} + m_Father: {fileID: 7399448336696492347} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 241} + m_SizeDelta: {x: 546, y: 100} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &7399448334992327745 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448334992327747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &7399448335275155379 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335275155378} + - component: {fileID: 7399448335275155382} + - component: {fileID: 7399448335275155383} + - component: {fileID: 7399448335275155376} + - component: {fileID: 7399448335275155377} + m_Layer: 5 + m_Name: tag category + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448335275155378 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335275155379} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448335921803326} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 144.78, y: -20} + m_SizeDelta: {x: 257.56, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7399448335275155382 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335275155379} + m_CullTransparentMesh: 0 +--- !u!114 &7399448335275155383 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335275155379} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: '30charactersloremipsumloremips:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7399448335275155376 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335275155379} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &7399448335275155377 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335275155379} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &7399448335370840791 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335370840790} + - component: {fileID: 200825438109838788} + m_Layer: 5 + m_Name: Search Results Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7399448335370840790 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335370840791} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451695395539550} + - {fileID: 20451693958824621} + - {fileID: 20451694011001859} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &200825438109838788 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335370840791} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 39e9b7fadd921ea48aa046a7d8fd1d14, type: 3} + m_Name: + m_EditorClassIdentifier: + SearchResultsPanel: {fileID: 7399448335370840791} + SearchResultsHeaderBackground: {fileID: 20451694465002971} + SearchResultsHeaderRefineButton: {fileID: 20451693953041976} + SearchResultsContentRefineButton: {fileID: 8322341264429377367} + SearchResultsListItemPrefab: {fileID: 791644432007414224, guid: 6d729eff984d2fc4fa8a660fff6d3a13, + type: 3} + SearchResultsListItemParent: {fileID: 20451695717477835} + SearchResultsScrollBar: {fileID: 20451694572036571} + SearchResultsFoundText: {fileID: 7399448336246222744} + SearchResultsMainTagName: {fileID: 7399448335569542537} + SearchResultsMainTagCategoryName: {fileID: 7399448335275155383} + SearchResultsMainTag: {fileID: 7399448336662491541} + SearchResultsNumberOfOtherTags: {fileID: 7399448336890308455} + SearchResultsSearchPhrase: {fileID: 7399448336673008570} + SearchResultsSearchPhraseText: {fileID: 7399448335527170513} + SearchResultsSortByDropdown: {fileID: 5294099438039336629} + SearchResultsEndOfResults: {fileID: 7399448334992327747} + SearchResultsNoResultsText: {fileID: 7399448335873651811} + SearchResultsEndOfResultsHeader: {fileID: 20451694656047231} + SearchResultsEndOfResultsText: {fileID: 20451693883547626} + SearchResultsRefineFilter: {fileID: 1655163093905552322} + SearchResultsFilterBy: {fileID: 5294099438039336629} + ProcessingAnimation: {fileID: 5114628845430616804} +--- !u!1 &7399448335430409044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335430409035} + - component: {fileID: 7399448335430409033} + - component: {fileID: 7399448335430409034} + - component: {fileID: 5649234155505803459} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448335430409035 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335430409044} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448336981988833} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 310, y: 40} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &7399448335430409033 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335430409044} + m_CullTransparentMesh: 0 +--- !u!114 &7399448335430409034 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335430409044} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: No results found + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 40 + m_fontSizeBase: 40 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &5649234155505803459 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335430409044} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: No results found + text: {fileID: 7399448335430409034} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7399448335527170525 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335527170524} + - component: {fileID: 7399448335527170512} + - component: {fileID: 7399448335527170513} + - component: {fileID: 7399448335527170514} + - component: {fileID: 7399448335527170515} + m_Layer: 5 + m_Name: phrase + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448335527170524 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335527170525} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448336673008569} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 322.31, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!222 &7399448335527170512 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335527170525} + m_CullTransparentMesh: 0 +--- !u!114 &7399448335527170513 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335527170525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292395271 + m_fontColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 40 + m_fontSizeBase: 40 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7399448335527170514 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335527170525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!114 &7399448335527170515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335527170525} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &7399448335569542549 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335569542548} + - component: {fileID: 7399448335569542536} + - component: {fileID: 7399448335569542537} + - component: {fileID: 7399448335569542538} + - component: {fileID: 7399448335569542539} + m_Layer: 5 + m_Name: tag name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448335569542548 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335569542549} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448335921803326} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 405.15, y: -20} + m_SizeDelta: {x: 253.18, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7399448335569542536 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335569542549} + m_CullTransparentMesh: 0 +--- !u!114 &7399448335569542537 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335569542549} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 30charactersloremipsumloremips + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292330689 + m_fontColor: {r: 0.75686276, g: 0.76862746, b: 0.84313726, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7399448335569542538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335569542549} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 5 +--- !u!114 &7399448335569542539 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335569542549} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &7399448335622525168 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335622525175} + - component: {fileID: 7399448335622525174} + m_Layer: 5 + m_Name: Mod support by mod.io + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448335622525175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335622525168} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451695243985120} + - {fileID: 20451693991035719} + - {fileID: 7399448335760602018} + m_Father: {fileID: 7399448336696492347} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 40} + m_SizeDelta: {x: 300, y: 40} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &7399448335622525174 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335622525168} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7399448335760602019 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335760602018} + - component: {fileID: 7399448335760602016} + - component: {fileID: 7399448335760602017} + m_Layer: 5 + m_Name: Image (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448335760602018 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335760602019} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448335622525175} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 236, y: -20} + m_SizeDelta: {x: 78, y: 22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7399448335760602016 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335760602019} + m_CullTransparentMesh: 0 +--- !u!114 &7399448335760602017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335760602019} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 1abe564f196a7a54381c40c8ef7de55c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7399448335857621765 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335857621764} + - component: {fileID: 7399448335857621242} + - component: {fileID: 7399448335857621243} + - component: {fileID: 4539484336006978877} + m_Layer: 5 + m_Name: Search results header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448335857621764 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335857621765} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451694011001859} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -25} + m_SizeDelta: {x: 268, y: 40} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &7399448335857621242 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335857621765} + m_CullTransparentMesh: 0 +--- !u!114 &7399448335857621243 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335857621765} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Search results + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 40 + m_fontSizeBase: 40 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &4539484336006978877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335857621765} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Search results + text: {fileID: 7399448335857621243} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7399448335873651811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335873651810} + - component: {fileID: 7399448335873651809} + m_Layer: 5 + m_Name: No Results + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448335873651810 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335873651811} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7399448336981988833} + m_Father: {fileID: 20451695717477835} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 500} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &7399448335873651809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335873651811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &7399448335921803327 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448335921803326} + - component: {fileID: 7399448335921803313} + - component: {fileID: 7399448335921803314} + - component: {fileID: 7399448335921803315} + - component: {fileID: 7399448335921803324} + - component: {fileID: 7399448335921803325} + m_Layer: 5 + m_Name: Main Tag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448335921803326 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335921803327} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7399448335275155378} + - {fileID: 7399448335569542548} + m_Father: {fileID: 7399448336662491540} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 273.87, y: -30} + m_SizeDelta: {x: 547.74, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7399448335921803313 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335921803327} + m_CullTransparentMesh: 0 +--- !u!114 &7399448335921803314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335921803327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d68cf6dfa268b9044b39799c19a3d3a1, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7399448335921803315 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335921803327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &7399448335921803324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335921803327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7399448335921803325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448335921803327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 16 + m_Right: 16 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7399448336104255177 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336104255176} + - component: {fileID: 7399448336104255180} + - component: {fileID: 7399448336104255181} + - component: {fileID: 7399448336104255182} + - component: {fileID: 7399448336104255183} + - component: {fileID: 3337315758699014693} + m_Layer: 5 + m_Name: Mods matching + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448336104255176 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336104255177} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448336673008569} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!222 &7399448336104255180 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336104255177} + m_CullTransparentMesh: 0 +--- !u!114 &7399448336104255181 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336104255177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Mods matching:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 40 + m_fontSizeBase: 40 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7399448336104255182 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336104255177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &7399448336104255183 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336104255177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!114 &3337315758699014693 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336104255177} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Mods matching:' + text: {fileID: 7399448336104255181} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1 &7399448336246222746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336246222745} + - component: {fileID: 7399448336246222751} + - component: {fileID: 7399448336246222744} + m_Layer: 5 + m_Name: Number of results + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448336246222745 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336246222746} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 20451694011001859} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -73} + m_SizeDelta: {x: 268, y: 22} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &7399448336246222751 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336246222746} + m_CullTransparentMesh: 0 +--- !u!114 &7399448336246222744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336246222746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7399448336322547777 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336322547776} + - component: {fileID: 7399448336322547771} + - component: {fileID: 7399448336322547780} + - component: {fileID: 7399448336322547781} + - component: {fileID: 7399448336322547782} + - component: {fileID: 7399448336322547783} + m_Layer: 5 + m_Name: Refine filter (Show on scrolldown) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7399448336322547776 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336322547777} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 20451693785694900} + - {fileID: 20451694625781529} + - {fileID: 20451694200407422} + - {fileID: 20451694282229028} + m_Father: {fileID: 20451694011001859} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -164, y: -40} + m_SizeDelta: {x: 210, y: 48} + m_Pivot: {x: 1, y: 1} +--- !u!222 &7399448336322547771 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336322547777} + m_CullTransparentMesh: 0 +--- !u!114 &7399448336322547780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336322547777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: de620a661822071448a42c3581ca6cdf, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7399448336322547781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336322547777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 2 + m_Colors: + m_NormalColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_HighlightedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_PressedColor: {r: 0.85490197, g: 0.8627451, b: 0.90588236, a: 1} + m_SelectedColor: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_DisabledColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, type: 3} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 20451693785694901} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_MethodName: Open + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 20451693785694901} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 8ced871376af90f4db1cf90d760f2100, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: db199e15a6375aa4ba43bbda0d9c8354, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 20451694625781526} + transition: 2 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 21300000, guid: 423546ea7805256409409fecffa70f1a, + type: 3} + m_PressedSprite: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, + type: 3} + m_SelectedSprite: {fileID: 21300000, guid: 423546ea7805256409409fecffa70f1a, + type: 3} + m_DisabledSprite: {fileID: 21300000, guid: 112e36328b6dede48a8400101174e0ce, + type: 3} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + - target: {fileID: 7399448336322547780} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + isControllerButtonIcon: 0 + childButtons: [] +--- !u!114 &7399448336322547782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336322547777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!114 &7399448336322547783 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336322547777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7399448336662491541 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336662491540} + - component: {fileID: 7399448336662491531} + m_Layer: 5 + m_Name: Tags used + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &7399448336662491540 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336662491541} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7399448335921803326} + - {fileID: 7399448336890308450} + m_Father: {fileID: 7399448336852157244} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -50} + m_SizeDelta: {x: 1245, y: 50} + m_Pivot: {x: 0, y: 0} +--- !u!114 &7399448336662491531 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336662491541} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 6 + m_Spacing: 16 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7399448336673008570 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336673008569} + - component: {fileID: 7399448336673008568} + m_Layer: 5 + m_Name: Search phrase + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448336673008569 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336673008570} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7399448336104255176} + - {fileID: 7399448335527170524} + m_Father: {fileID: 7399448336852157244} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1245, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &7399448336673008568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336673008570} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 16 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7399448336696492356 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336696492347} + - component: {fileID: 20451695334876512} + m_Layer: 5 + m_Name: Bottom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448336696492347 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336696492356} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5613315638769484960} + - {fileID: 7399448334992327746} + - {fileID: 7399448335622525175} + m_Father: {fileID: 20451695717477835} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 400} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &20451695334876512 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336696492356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &7399448336852157245 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336852157244} + - component: {fileID: 7399448336852157234} + - component: {fileID: 7399448336852157235} + m_Layer: 5 + m_Name: Search phrase & Tags used + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448336852157244 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336852157245} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7399448336673008569} + - {fileID: 7399448336662491540} + m_Father: {fileID: 7399448336872269238} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: 0} + m_SizeDelta: {x: 1245, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &7399448336852157234 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336852157245} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &7399448336852157235 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336852157245} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &7399448336872269239 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336872269238} + - component: {fileID: 7399448336872269237} + m_Layer: 5 + m_Name: Top + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448336872269238 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336872269239} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8322341264429377367} + - {fileID: 7399448336852157244} + - {fileID: 5294099438039336625} + m_Father: {fileID: 20451695717477835} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -80} + m_SizeDelta: {x: 0, y: 106} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &7399448336872269237 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336872269239} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &7399448336890308451 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336890308450} + - component: {fileID: 7399448336890308454} + - component: {fileID: 7399448336890308455} + - component: {fileID: 7399448336890308448} + - component: {fileID: 7399448336890308449} + m_Layer: 5 + m_Name: and other tags + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448336890308450 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336890308451} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7399448336662491540} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 631.935, y: -30} + m_SizeDelta: {x: 136.39, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7399448336890308454 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336890308451} + m_CullTransparentMesh: 0 +--- !u!114 &7399448336890308455 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336890308451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: and XX other tags + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7399448336890308448 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336890308451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!114 &7399448336890308449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336890308451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &7399448336981988834 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7399448336981988833} + - component: {fileID: 7399448336981988832} + m_Layer: 5 + m_Name: No results texts + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7399448336981988833 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336981988834} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7399448335430409035} + - {fileID: 20451694701466137} + m_Father: {fileID: 7399448335873651810} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 546, y: 100} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &7399448336981988832 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7399448336981988834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &4614790896965231614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7618484748510806106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Subscribed mods + text: {fileID: 7577524452031212973} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!114 &2707075130933006273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8987737758507723392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: 'Back + +' + text: {fileID: 8570368625644730986} + translatedLanguageFontPairingOverrides: {fileID: 0} +--- !u!1001 &20451694505666123 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 20451694011001859} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 69 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: -36 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Back / Exit + objectReference: {fileID: 0} + - target: {fileID: 5303711281568416601, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Text + value: Back + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Open + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Back + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_HorizontalAlignment + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!1 &8987737758507723392 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 20451694505666123} + m_PrefabAsset: {fileID: 0} +--- !u!224 &18532930564548125 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 20451694505666123} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8570368625644730986 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 20451694505666123} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8987737758507723392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &20451694593004270 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7399448336872269238} + m_Modifications: + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_text + value: RS + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1798871725, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189428, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_Name + value: Controller Icon + objectReference: {fileID: 0} + - target: {fileID: 2112189428, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2112189429, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_text + value: Refine filter + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: extraTargets.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Open + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 58.51 + objectReference: {fileID: 0} + - target: {fileID: 2574403931799077613, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4964708182681195730, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: config + value: + objectReference: {fileID: 11400000, guid: 34d5a2682375b1b4cb4ed887d7f0c032, + type: 2} + - target: {fileID: 6442999689545999158, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Name + value: Refine filter + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.x + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -312 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8502793601590996624, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + propertyPath: config + value: + objectReference: {fileID: 11400000, guid: b84b9b55d5fe5d34ab014b1eee895eb1, + type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d63c60c076ced34294aeaf91358d462, type: 3} +--- !u!224 &8322341264429377367 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8301908709888898489, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 20451694593004270} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1655163093905552322 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1635082254379573548, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 20451694593004270} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &418590708638022432 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 398439637101619662, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 20451694593004270} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1118556320843623370} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1118556320843623370 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1138638543927884068, guid: 3d63c60c076ced34294aeaf91358d462, + type: 3} + m_PrefabInstance: {fileID: 20451694593004270} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &20451695092369362 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7399448336696492347} + m_Modifications: + - target: {fileID: 5454772385634733754, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 420 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5722289367893068467, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6519440083403100060, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!224 &5613315638769484960 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 20451695092369362} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3681690699866417440 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 20451693958824621} + m_Modifications: + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.x + value: 101 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 109 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + propertyPath: m_Name + value: Loading Icon + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d5fdf02cff5c92349853772a91817fbc, type: 3} +--- !u!1 &5114628845430616804 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8497503018571144132, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 3681690699866417440} + m_PrefabAsset: {fileID: 0} +--- !u!224 &9131565354301827666 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5597455781261280114, guid: d5fdf02cff5c92349853772a91817fbc, + type: 3} + m_PrefabInstance: {fileID: 3681690699866417440} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4445472745567786909 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7399448336872269238} + m_Modifications: + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 89.29 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 46.940002 + objectReference: {fileID: 0} + - target: {fileID: 3943750464946847986, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 41.17 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 13.41 + objectReference: {fileID: 0} + - target: {fileID: 4502623724393616370, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_text + value: 'Sort by:' + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.b + value: 0.84313726 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.g + value: 0.76862746 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor.r + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_fontColor32.rgba + value: 4292330689 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7926923080811124048, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.b + value: 0.84705883 + objectReference: {fileID: 0} + - target: {fileID: 7926923080811124048, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.g + value: 0.75686276 + objectReference: {fileID: 0} + - target: {fileID: 7926923080811124048, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Color.r + value: 0.02745098 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_text + value: Date submitted + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textAlignment + value: 65535 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_TextStyleHashCode + value: -1183493901 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_VerticalAlignment + value: 512 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.lineCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.pageCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.wordCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.spaceCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_textInfo.characterCount + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_NormalColor.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_NormalColor.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_NormalColor.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_PressedColor.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_PressedColor.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_PressedColor.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_SelectedColor.a + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_SelectedColor.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_SelectedColor.g + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Colors.m_SelectedColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Options.m_Options.Array.size + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Options.m_Options.Array.data[0].m_Text + value: Date submitted + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Options.m_Options.Array.data[1].m_Text + value: Most subscribed + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Options.m_Options.Array.data[2].m_Text + value: Popularity + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Options.m_Options.Array.data[3].m_Text + value: Rating + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Refresh + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Pivot.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.x + value: 212 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -80 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8415282165173031213, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: m_Name + value: Dropdown + objectReference: {fileID: 0} + - target: {fileID: 8415282166504170330, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, type: 3} +--- !u!1 &6537678121077382089 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7425031109443226708, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 4445472745567786909} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5294099438039336629 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8415282165173031208, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 4445472745567786909} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7f173c11dfda5a4c9a9860f473a14b7, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6012398923422574339 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7980705230158606494, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 4445472745567786909} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6751397233643198287} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &6763134024028889077 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6947373515689822312, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 4445472745567786909} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6537678121077382089} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &6751397233643198287 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6917729051966963922, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 4445472745567786909} + m_PrefabAsset: {fileID: 0} +--- !u!1 &7618484748510806106 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6055993957581084615, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 4445472745567786909} + m_PrefabAsset: {fileID: 0} +--- !u!224 &5294099438039336625 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 8415282165173031212, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 4445472745567786909} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7577524452031212973 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6096110003026377264, guid: 50b3a7c8f9573ab4bb339bf803ddeff7, + type: 3} + m_PrefabInstance: {fileID: 4445472745567786909} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7618484748510806106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &7399448336556348498 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 20451695717477835} + m_Modifications: + - target: {fileID: 814754657598926068, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 857893532690956621, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 1915919669524071720, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_Color.b + value: 0.7607843 + objectReference: {fileID: 0} + - target: {fileID: 1915919669524071720, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_Color.g + value: 0.69411767 + objectReference: {fileID: 0} + - target: {fileID: 1915919669524071720, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_Color.r + value: 0.68235296 + objectReference: {fileID: 0} + - target: {fileID: 2114197284975924116, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2114197284975924116, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2114197284975924116, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 135.9575 + objectReference: {fileID: 0} + - target: {fileID: 2114197284975924116, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 2114197284975924117, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_Name + value: Controller Icon + objectReference: {fileID: 0} + - target: {fileID: 2875788690058587427, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2875788690058587427, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2875788690058587427, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 2875788690058587427, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 2896187840642994893, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2896187840642994893, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2896187840642994893, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_SizeDelta.x + value: 74.78 + objectReference: {fileID: 0} + - target: {fileID: 2896187840642994893, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 2896187840642994893, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2896187840642994893, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 3089044245661908815, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_Pivot.y + value: 0.46 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_SizeDelta.x + value: 338 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_SizeDelta.y + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 960 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -1141 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687619, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_Name + value: SearchResultListItem_RegularSelected + objectReference: {fileID: 0} + - target: {fileID: 3616021901904687619, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4534348048363446924, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4534348048363446924, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4534348048363446924, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_SizeDelta.x + value: 55.83 + objectReference: {fileID: 0} + - target: {fileID: 4534348048363446924, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_SizeDelta.y + value: 15.22 + objectReference: {fileID: 0} + - target: {fileID: 4534348048363446924, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 63.9575 + objectReference: {fileID: 0} + - target: {fileID: 4534348048363446924, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 4783394184088365044, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4783394184088365044, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4783394184088365044, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4783394184088365044, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4783394184088365044, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_SizeDelta.x + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 4783394184088365044, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_SizeDelta.y + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 4783394184088365044, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 4783394184088365044, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5817750717166125534, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 5948596955754438752, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_Name + value: Controller Icon + objectReference: {fileID: 0} + - target: {fileID: 5948596955754438755, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5948596955754438755, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5948596955754438755, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 154.695 + objectReference: {fileID: 0} + - target: {fileID: 5948596955754438755, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -20 + objectReference: {fileID: 0} + - target: {fileID: 7953760216470164952, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7953760216470164952, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7953760216470164952, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 4 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 750810840369874140, guid: bd868a1c0bdae7d4293ab686e8eecfe3, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: bd868a1c0bdae7d4293ab686e8eecfe3, type: 3} +--- !u!224 &6097504236235679312 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3616021901904687618, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + m_PrefabInstance: {fileID: 7399448336556348498} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5862943674925749916 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4029951163999273678, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + m_PrefabInstance: {fileID: 7399448336556348498} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5032684350834054116 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2551202114154678198, guid: bd868a1c0bdae7d4293ab686e8eecfe3, + type: 3} + m_PrefabInstance: {fileID: 7399448336556348498} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5862943674925749916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/SearchResults/Search Results Panel.prefab.meta b/UI/Prefabs/SearchResults/Search Results Panel.prefab.meta new file mode 100644 index 0000000..a585f71 --- /dev/null +++ b/UI/Prefabs/SearchResults/Search Results Panel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a358e4ee54a35874e85a5115d9b91b58 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/SelectionManager.prefab b/UI/Prefabs/SelectionManager.prefab new file mode 100644 index 0000000..86309d0 --- /dev/null +++ b/UI/Prefabs/SelectionManager.prefab @@ -0,0 +1,84 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2477131282240615711 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2477131282240615697} + - component: {fileID: 2477131282240615710} + m_Layer: 0 + m_Name: SelectionManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2477131282240615697 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2477131282240615711} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 289.61996, y: 246.03793, z: -13.464658} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2477131282240615710 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2477131282240615711} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b276e6c7ee7344844bd2d09adae7074e, type: 3} + m_Name: + m_EditorClassIdentifier: + defaultViews: + - viewType: 1 + defaultSelectedObject: {fileID: 0} + - viewType: 14 + defaultSelectedObject: {fileID: 0} + - viewType: 6 + defaultSelectedObject: {fileID: 0} + - viewType: 7 + defaultSelectedObject: {fileID: 0} + - viewType: 8 + defaultSelectedObject: {fileID: 0} + - viewType: 9 + defaultSelectedObject: {fileID: 0} + - viewType: 10 + defaultSelectedObject: {fileID: 0} + - viewType: 11 + defaultSelectedObject: {fileID: 0} + - viewType: 12 + defaultSelectedObject: {fileID: 0} + - viewType: 13 + defaultSelectedObject: {fileID: 0} + - viewType: 2 + defaultSelectedObject: {fileID: 0} + - viewType: 3 + defaultSelectedObject: {fileID: 0} + - viewType: 5 + defaultSelectedObject: {fileID: 0} + - viewType: 15 + defaultSelectedObject: {fileID: 0} + - viewType: 16 + defaultSelectedObject: {fileID: 0} + - viewType: 17 + defaultSelectedObject: {fileID: 0} + - viewType: 4 + defaultSelectedObject: {fileID: 0} + - viewType: 18 + defaultSelectedObject: {fileID: 0} + - viewType: 19 + defaultSelectedObject: {fileID: 0} diff --git a/UI/Prefabs/SelectionManager.prefab.meta b/UI/Prefabs/SelectionManager.prefab.meta new file mode 100644 index 0000000..e6b6553 --- /dev/null +++ b/UI/Prefabs/SelectionManager.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ea21e48f38da76543b756b26384f53b2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/SingletonSetup.prefab b/UI/Prefabs/SingletonSetup.prefab new file mode 100644 index 0000000..45ffa7d --- /dev/null +++ b/UI/Prefabs/SingletonSetup.prefab @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4778570498850984549 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1736825614451629809} + - component: {fileID: 4676641786142563895} + m_Layer: 0 + m_Name: SingletonSetup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1736825614451629809 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4778570498850984549} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 400.79144, y: 252.08183, z: 3.0401669} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4676641786142563895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4778570498850984549} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 47405576e9171c7448ffd9a3ef83beed, type: 3} + m_Name: + m_EditorClassIdentifier: + singletons: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} diff --git a/UI/Prefabs/SingletonSetup.prefab.meta b/UI/Prefabs/SingletonSetup.prefab.meta new file mode 100644 index 0000000..753117c --- /dev/null +++ b/UI/Prefabs/SingletonSetup.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d2543bf02915aa745bef70de010359c2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/SoundPlayer.prefab b/UI/Prefabs/SoundPlayer.prefab new file mode 100644 index 0000000..9eaac93 --- /dev/null +++ b/UI/Prefabs/SoundPlayer.prefab @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4149718850367148094 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1022597431898343917} + - component: {fileID: 8468188248645416979} + m_Layer: 0 + m_Name: SoundPlayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1022597431898343917 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4149718850367148094} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 715.8291, y: 509.27173, z: -5.029846} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8468188248645416979 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4149718850367148094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: abcfba95a5a23e141b14a3ae260ab189, type: 3} + m_Name: + m_EditorClassIdentifier: + audioSlider: {fileID: 0} + SoundClick: + clip: {fileID: 8300000, guid: 1d0b2ded031fc884897ca4e1a9f9d806, type: 3} + defaultVolume: 0.3 + SoundHover: + clip: {fileID: 8300000, guid: 3a37ef5a9201957408d515a0fb4cf086, type: 3} + defaultVolume: 0.3 diff --git a/UI/Prefabs/SoundPlayer.prefab.meta b/UI/Prefabs/SoundPlayer.prefab.meta new file mode 100644 index 0000000..f3784e6 --- /dev/null +++ b/UI/Prefabs/SoundPlayer.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 65c74c8b969a6574f919233163cda9d9 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/TagCategoryListItem.prefab b/UI/Prefabs/TagCategoryListItem.prefab new file mode 100644 index 0000000..2ab0d9a --- /dev/null +++ b/UI/Prefabs/TagCategoryListItem.prefab @@ -0,0 +1,239 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4573813863739650460 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1387870534579279517} + - component: {fileID: 3117076594624620992} + - component: {fileID: 6375291926676674477} + m_Layer: 5 + m_Name: TagCategoryListItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1387870534579279517 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4573813863739650460} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 231252750520441275} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 56} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3117076594624620992 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4573813863739650460} + m_CullTransparentMesh: 0 +--- !u!114 &6375291926676674477 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4573813863739650460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0434828020d9ad945b122a6880645c25, type: 3} + m_Name: + m_EditorClassIdentifier: + selectable: {fileID: 0} + isPlaceholder: 0 + colorSetters: + - {fileID: 1758984473053175715} + buttons: [] + dropdowns: [] + toggles: [] + scheme: {fileID: 0} + title: {fileID: 3457190860116712176} +--- !u!1 &8813529336286317158 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 231252750520441275} + - component: {fileID: 5026454336047720690} + - component: {fileID: 3457190860116712176} + - component: {fileID: 1758984473053175715} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &231252750520441275 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8813529336286317158} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1387870534579279517} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 8} + m_SizeDelta: {x: 200, y: 24} + m_Pivot: {x: 0, y: 0} +--- !u!222 &5026454336047720690 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8813529336286317158} + m_CullTransparentMesh: 0 +--- !u!114 &3457190860116712176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8813529336286317158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Category Name + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: 0 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3457190860116712176} + characterCount: 13 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1758984473053175715 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8813529336286317158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 diff --git a/UI/Prefabs/TagCategoryListItem.prefab.meta b/UI/Prefabs/TagCategoryListItem.prefab.meta new file mode 100644 index 0000000..10d1277 --- /dev/null +++ b/UI/Prefabs/TagCategoryListItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 26683115ede837e4db04f2e6e97afee2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/TagListItem.prefab b/UI/Prefabs/TagListItem.prefab new file mode 100644 index 0000000..c964095 --- /dev/null +++ b/UI/Prefabs/TagListItem.prefab @@ -0,0 +1,705 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1439602200711500964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4334691821474859849} + - component: {fileID: 6151383679244113340} + - component: {fileID: 6732438346283858957} + m_Layer: 5 + m_Name: TagListItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4334691821474859849 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439602200711500964} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 764251291901958298} + - {fileID: 7174524384477540403} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 400, y: 24} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &6151383679244113340 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439602200711500964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eef8381d41592e94493a1977360ee05c, type: 3} + m_Name: + m_EditorClassIdentifier: + viewportRestraint: {fileID: 0} + selectable: {fileID: 6732438346283858957} + isPlaceholder: 0 + colorSetters: + - {fileID: 7821462824885265346} + - {fileID: 4727419837963758989} + - {fileID: 3121181564606877031} + buttons: [] + dropdowns: [] + toggles: + - {fileID: 6732438346283858957} + scheme: {fileID: 0} + title: {fileID: 3949221616186017301} + toggle: {fileID: 6732438346283858957} + rectTransform: {fileID: 0} +--- !u!114 &6732438346283858957 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1439602200711500964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c834cada87fd6a740a2602fcb50cc1f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 1, g: 1, b: 1, a: 1} + m_DisabledColor: {r: 1, g: 1, b: 1, a: 1} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5826428126662995658} + toggleTransition: 1 + graphic: {fileID: 1847740829935907873} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 + scheme: {fileID: 0} + extraTargets: + - target: {fileID: 1605141094681376456} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 3 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + - target: {fileID: 5941322035884510230} + transition: 4 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 6 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 + - target: {fileID: 3949221616186017301} + transition: 5 + colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + colorSchemeBlock: + Normal: 3 + NormalColorAlpha: 1 + Highlighted: 4 + HighlightedColorAlpha: 1 + Pressed: 4 + PressedColorAlpha: 1 + Disabled: 2 + DisabledColorAlpha: 1 + ColorMultiplier: 1 + FadeDuration: 0.1 + spriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + animationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + animator: {fileID: 0} + enableOnNormal: 0 + enableOnHighlight: 1 + enableOnPressed: 1 + enableOnDisabled: 0 +--- !u!1 &1682231041742570671 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5753483131151867429} + - component: {fileID: 8750298437483543407} + - component: {fileID: 5826428126662995658} + - component: {fileID: 7821462824885265346} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5753483131151867429 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682231041742570671} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 764251291901958298} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8750298437483543407 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682231041742570671} + m_CullTransparentMesh: 0 +--- !u!114 &5826428126662995658 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682231041742570671} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &7821462824885265346 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682231041742570671} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &4135788812307257106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 983268751772158450} + - component: {fileID: 5717611289703572626} + - component: {fileID: 1847740829935907873} + - component: {fileID: 4727419837963758989} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &983268751772158450 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4135788812307257106} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 764251291901958298} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5717611289703572626 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4135788812307257106} + m_CullTransparentMesh: 0 +--- !u!114 &1847740829935907873 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4135788812307257106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.02745098, g: 0.75686276, b: 0.84705883, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: dcb50c4098334d540ab560993d32b3c6, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &4727419837963758989 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4135788812307257106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 4 +--- !u!1 &6686175105002487519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7174524384477540403} + - component: {fileID: 6190636922570710623} + - component: {fileID: 3949221616186017301} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7174524384477540403 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6686175105002487519} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4334691821474859849} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 20, y: 0} + m_SizeDelta: {x: -40, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6190636922570710623 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6686175105002487519} + m_CullTransparentMesh: 0 +--- !u!114 &3949221616186017301 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6686175105002487519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Label + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 3949221616186017301} + characterCount: 5 + spriteCount: 0 + spaceCount: 0 + wordCount: 1 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7129698138670384457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 764251291901958298} + - component: {fileID: 6402830166071600707} + - component: {fileID: 1605141094681376456} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &764251291901958298 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7129698138670384457} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5753483131151867429} + - {fileID: 983268751772158450} + - {fileID: 6200252903226745547} + m_Father: {fileID: 4334691821474859849} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 24, y: 24} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &6402830166071600707 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7129698138670384457} + m_CullTransparentMesh: 0 +--- !u!114 &1605141094681376456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7129698138670384457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 2893e30b6b8e1d4499b8e78fc633923e, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!1 &8582205873472448355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6200252903226745547} + - component: {fileID: 7035169031639982109} + - component: {fileID: 5941322035884510230} + - component: {fileID: 3121181564606877031} + m_Layer: 5 + m_Name: Highlighted Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6200252903226745547 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8582205873472448355} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 764251291901958298} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.728, y: 0.56} + m_SizeDelta: {x: 15.755939, y: 12.119953} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7035169031639982109 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8582205873472448355} + m_CullTransparentMesh: 0 +--- !u!114 &5941322035884510230 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8582205873472448355} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 17246f095eb0117449cc0b791d708f2b, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!114 &3121181564606877031 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8582205873472448355} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 diff --git a/UI/Prefabs/TagListItem.prefab.meta b/UI/Prefabs/TagListItem.prefab.meta new file mode 100644 index 0000000..4d62fe0 --- /dev/null +++ b/UI/Prefabs/TagListItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 35365a29917c91d4680499b1230f172b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Toast Notifications.meta b/UI/Prefabs/Toast Notifications.meta new file mode 100644 index 0000000..f0ed436 --- /dev/null +++ b/UI/Prefabs/Toast Notifications.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0709d944f1168ee4fbc979483f9603a2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Toast Notifications/Toast Notifications.prefab b/UI/Prefabs/Toast Notifications/Toast Notifications.prefab new file mode 100644 index 0000000..e448e48 --- /dev/null +++ b/UI/Prefabs/Toast Notifications/Toast Notifications.prefab @@ -0,0 +1,807 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &873207984212787038 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 873207984212787039} + - component: {fileID: 7958022432766918413} + m_Layer: 5 + m_Name: Toast Notifications + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &873207984212787039 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207984212787038} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 873207985687346277} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0, y: 0} +--- !u!114 &7958022432766918413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207984212787038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 35aff338c9c6cbb4fbc101eb0e1bdae5, type: 3} + m_Name: + m_EditorClassIdentifier: + NotificationPanel: {fileID: 873207985687346276} + NotificationPanelImage: {fileID: 873207984268156265} + NotificationPanelIconBackgroundImage: {fileID: 873207985097786798} + NotificationPanelIconImage: {fileID: 7703114361446140984} + NotificationPanelTitle: {fileID: 7703114359895959914} + NotificationPanelDescription: {fileID: 7703114361069084782} + NotificationErrorIcon: {fileID: 21300000, guid: 9b31e17cc7037c44a89ba3260f0b53d6, + type: 3} + NotificationCheckmarkIcon: {fileID: 21300000, guid: 6c3c868153362974893b1a2dbf46b5f3, + type: 3} +--- !u!1 &873207984268156270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 873207984268156271} + - component: {fileID: 873207984268156266} + - component: {fileID: 873207984268156265} + - component: {fileID: 873207984268156264} + m_Layer: 5 + m_Name: Notice Info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &873207984268156271 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207984268156270} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 873207984743515457} + m_Father: {fileID: 873207985687346277} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 20, y: 0} + m_SizeDelta: {x: -40, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &873207984268156266 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207984268156270} + m_CullTransparentMesh: 0 +--- !u!114 &873207984268156265 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207984268156270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &873207984268156264 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207984268156270} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!1 &873207984743515456 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 873207984743515457} + - component: {fileID: 873207984743515459} + - component: {fileID: 873207984743515458} + m_Layer: 5 + m_Name: Vertical Group + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &873207984743515457 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207984743515456} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7703114359895959913} + - {fileID: 7703114361069084781} + m_Father: {fileID: 873207984268156271} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 280, y: 40.59} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &873207984743515459 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207984743515456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!114 &873207984743515458 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207984743515456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &873207985097786786 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 873207985097786787} + - component: {fileID: 873207985097786797} + - component: {fileID: 873207985097786798} + - component: {fileID: 873207985097786796} + m_Layer: 5 + m_Name: Icon Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &873207985097786787 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207985097786786} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7703114361446140982} + m_Father: {fileID: 873207985687346277} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 100} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &873207985097786797 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207985097786786} + m_CullTransparentMesh: 0 +--- !u!114 &873207985097786798 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207985097786786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.49411765, g: 0.9372549, b: 0.54901963, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &873207985097786796 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207985097786786} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 8 +--- !u!1 &873207985687346276 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 873207985687346277} + - component: {fileID: 873207985687346272} + - component: {fileID: 873207985687346278} + - component: {fileID: 873207985687346279} + m_Layer: 5 + m_Name: Notice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &873207985687346277 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207985687346276} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 873207985097786787} + - {fileID: 873207984268156271} + m_Father: {fileID: 873207984212787039} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 24, y: 24} + m_SizeDelta: {x: 320, y: 64} + m_Pivot: {x: 0, y: 0} +--- !u!222 &873207985687346272 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207985687346276} + m_CullTransparentMesh: 0 +--- !u!114 &873207985687346278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207985687346276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d68cf6dfa268b9044b39799c19a3d3a1, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &873207985687346279 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 873207985687346276} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &7703114359895959910 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7703114359895959913} + - component: {fileID: 7703114359895959915} + - component: {fileID: 7703114359895959914} + - component: {fileID: 7703114359895959912} + - component: {fileID: 7703114359895959917} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7703114359895959913 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114359895959910} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 873207984743515457} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 140, y: -12.685} + m_SizeDelta: {x: 232, y: 25.37} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7703114359895959915 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114359895959910} + m_CullTransparentMesh: 0 +--- !u!114 &7703114359895959914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114359895959910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Notice Title + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7703114359895959912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114359895959910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7703114359895959917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114359895959910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &7703114361069084778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7703114361069084781} + - component: {fileID: 7703114361069084783} + - component: {fileID: 7703114361069084782} + - component: {fileID: 7703114361069084780} + - component: {fileID: 7703114361069084785} + m_Layer: 5 + m_Name: Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7703114361069084781 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114361069084778} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 873207984743515457} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 140, y: -32.98} + m_SizeDelta: {x: 232, y: 15.22} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7703114361069084783 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114361069084778} + m_CullTransparentMesh: 0 +--- !u!114 &7703114361069084782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114361069084778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Information about the notice + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 12 + m_fontSizeBase: 12 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 513 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7703114361069084780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114361069084778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &7703114361069084785 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114361069084778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &7703114361446140983 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7703114361446140982} + - component: {fileID: 7703114361446140987} + - component: {fileID: 7703114361446140984} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7703114361446140982 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114361446140983} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 873207985097786787} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7703114361446140987 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114361446140983} + m_CullTransparentMesh: 0 +--- !u!114 &7703114361446140984 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7703114361446140983} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/UI/Prefabs/Toast Notifications/Toast Notifications.prefab.meta b/UI/Prefabs/Toast Notifications/Toast Notifications.prefab.meta new file mode 100644 index 0000000..d8a9788 --- /dev/null +++ b/UI/Prefabs/Toast Notifications/Toast Notifications.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4ebcda84dcabb7c478414af24f21764b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Translations.prefab b/UI/Prefabs/Translations.prefab new file mode 100644 index 0000000..d00d9ac --- /dev/null +++ b/UI/Prefabs/Translations.prefab @@ -0,0 +1,55 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1375868373587918581 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 839962838998309421} + - component: {fileID: 831390455187149096} + m_Layer: 0 + m_Name: Translations + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &839962838998309421 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375868373587918581} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &831390455187149096 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1375868373587918581} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a5880547a3785034eb3020c7e7a48fac, type: 3} + m_Name: + m_EditorClassIdentifier: + markUntranslatedStringsWithRed: 0 + attemptToTranslate: + translationsTextAssets: + - {fileID: 4900000, guid: c5dd3fa88a173d14ca72b04e14daf5d4, type: 3} + - {fileID: 4900000, guid: 537b5c01e60e20244b052bb739c690b8, type: 3} + defaultTranslatedLanguageFontPairings: {fileID: 11400000, guid: e5d661ecb7b314e5693122e5d28cc154, + type: 2} + untranslatedStringsRuntime: + - name: asdasd + item: {fileID: 0} diff --git a/UI/Prefabs/Translations.prefab.meta b/UI/Prefabs/Translations.prefab.meta new file mode 100644 index 0000000..15f11d0 --- /dev/null +++ b/UI/Prefabs/Translations.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ce4f233ac71f0ec4cb6bcdf3b0a37791 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Uninstall Confirmation Menu.meta b/UI/Prefabs/Uninstall Confirmation Menu.meta new file mode 100644 index 0000000..a6fcab6 --- /dev/null +++ b/UI/Prefabs/Uninstall Confirmation Menu.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2b3178f2ce6f5d54ab687dce59bd0fbb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Prefabs/Uninstall Confirmation Menu/Uninstall Confirmation Menu.prefab b/UI/Prefabs/Uninstall Confirmation Menu/Uninstall Confirmation Menu.prefab new file mode 100644 index 0000000..1f66670 --- /dev/null +++ b/UI/Prefabs/Uninstall Confirmation Menu/Uninstall Confirmation Menu.prefab @@ -0,0 +1,1238 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &22805387498254736 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22805387498254737} + - component: {fileID: 22805387498254742} + m_Layer: 5 + m_Name: Uninstall Confirmation Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &22805387498254737 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805387498254736} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22805388736611908} + - {fileID: 22805387986566477} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22805387498254742 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805387498254736} + m_CullTransparentMesh: 0 +--- !u!1 &22805387986566476 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22805387986566477} + - component: {fileID: 22805387986566467} + - component: {fileID: 22805387986566466} + m_Layer: 5 + m_Name: Main Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22805387986566477 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805387986566476} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22805388960424912} + m_Father: {fileID: 22805387498254737} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 880, y: 315} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22805387986566467 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805387986566476} + m_CullTransparentMesh: 0 +--- !u!114 &22805387986566466 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805387986566476} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f12eeb8dd0927a249aeec61fdfc3eba7, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &22805388228484052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22805388228484053} + - component: {fileID: 22805388228484072} + - component: {fileID: 22805388228484075} + - component: {fileID: 22805388228484074} + m_Layer: 5 + m_Name: Freed up space + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22805388228484053 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805388228484052} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22805388960424912} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -158} + m_SizeDelta: {x: 800, y: 50} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &22805388228484072 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805388228484052} + m_CullTransparentMesh: 0 +--- !u!114 &22805388228484075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805388228484052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: This will free up your space by 0 MB + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} + m_sharedMaterial: {fileID: 21319758026491476, guid: 7357c164f341b0147a6115fd4f243f6b, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &22805388228484074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805388228484052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &22805388736611911 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22805388736611908} + - component: {fileID: 22805388736611930} + - component: {fileID: 22805388736611909} + - component: {fileID: 22805388736611931} + m_Layer: 5 + m_Name: Background / Raycast block + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22805388736611908 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805388736611911} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22805387498254737} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &22805388736611930 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805388736611911} + m_CullTransparentMesh: 0 +--- !u!114 &22805388736611909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805388736611911} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 0.78431374} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &22805388736611931 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805388736611911} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &22805388960424915 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 22805388960424912} + m_Layer: 5 + m_Name: Confirm Uninstall + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &22805388960424912 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22805388960424915} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 7397640516553946528} + - {fileID: 7397640514918816573} + - {fileID: 22805388228484053} + - {fileID: 7397640516432446196} + m_Father: {fileID: 22805387986566477} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7397640514918816574 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397640514918816573} + - component: {fileID: 7397640514918816570} + - component: {fileID: 7397640514918816571} + - component: {fileID: 7397640514918816572} + m_Layer: 5 + m_Name: Mod name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397640514918816573 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640514918816574} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22805388960424912} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -118} + m_SizeDelta: {x: 800, y: 50} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &7397640514918816570 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640514918816574} + m_CullTransparentMesh: 0 +--- !u!114 &7397640514918816571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640514918816574} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: '''Mod name''' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7397640514918816572 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640514918816574} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!1 &7397640516432446197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397640516432446196} + - component: {fileID: 7397640516432446195} + m_Layer: 5 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397640516432446196 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640516432446197} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 24904273618854618} + - {fileID: 24904274827312511} + m_Father: {fileID: 22805388960424912} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &7397640516432446195 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640516432446197} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 24 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 +--- !u!1 &7397640516553946529 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7397640516553946528} + - component: {fileID: 7397640516553946525} + - component: {fileID: 7397640516553946526} + - component: {fileID: 7397640516553946527} + - component: {fileID: 2025916444162341573} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7397640516553946528 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640516553946529} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22805388960424912} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -40} + m_SizeDelta: {x: 800, y: 50} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &7397640516553946525 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640516553946529} + m_CullTransparentMesh: 0 +--- !u!114 &7397640516553946526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640516553946529} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Are you sure you would like to uninstall? + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} + m_sharedMaterial: {fileID: 21301536800525264, guid: 07eb140c74981ed4aab6d34ebb2e5737, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4279963662 + m_fontColor: {r: 0.05490196, g: 0.0627451, b: 0.105882354, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 32 + m_fontSizeBase: 32 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 514 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 1 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7397640516553946527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640516553946529} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0bb7d01b14ae58d489b1d0e368d78625, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 2 +--- !u!114 &2025916444162341573 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7397640516553946529} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Are you sure you would like to uninstall? + text: {fileID: 7397640516553946526} +--- !u!114 &7045730479639450981 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8981151872576254434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: Yes + text: {fileID: 8568587638259245320} +--- !u!114 &6634618351033828178 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8981151873246785095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9649349969635e94ab9545060496a7ee, type: 3} + m_Name: + m_EditorClassIdentifier: + reference: No + text: {fileID: 8568587639735090861} +--- !u!1001 &22805387729314444 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7397640516432446196} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: No + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnRight + value: + objectReference: {fileID: 7340529943912688106} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: CloseUninstallConfirmation + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: No + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &24904273618854618 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22805387729314444} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7340529944583222863 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22805387729314444} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &8981151873246785095 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22805387729314444} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8568587639735090861 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22805387729314444} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8981151873246785095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &22805388400966953 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 7397640516432446196} + m_Modifications: + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_SizeDelta.y + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1100119940201048372, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Name + value: Yes + objectReference: {fileID: 0} + - target: {fileID: 3050362772334548697, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: scheme + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_Mode + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_Navigation.m_SelectOnLeft + value: + objectReference: {fileID: 7340529944583222863} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: ConfirmUninstall + objectReference: {fileID: 0} + - target: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_text + value: Yes + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_RaycastTarget + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.lineCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.pageCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.wordCount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + propertyPath: m_textInfo.characterCount + value: 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9bde00a16f32d6d42a1280198365e78b, type: 3} +--- !u!224 &24904274827312511 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2673114980991062, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22805388400966953} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8981151872576254434 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9003385506253720779, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22805388400966953} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8568587638259245320 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8554790275978124321, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22805388400966953} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8981151872576254434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &7340529943912688106 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7318288332265493699, guid: 9bde00a16f32d6d42a1280198365e78b, + type: 3} + m_PrefabInstance: {fileID: 22805388400966953} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ce6686d7065cf4986b2ed3e2773c96, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UI/Prefabs/Uninstall Confirmation Menu/Uninstall Confirmation Menu.prefab.meta b/UI/Prefabs/Uninstall Confirmation Menu/Uninstall Confirmation Menu.prefab.meta new file mode 100644 index 0000000..1004cf4 --- /dev/null +++ b/UI/Prefabs/Uninstall Confirmation Menu/Uninstall Confirmation Menu.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0a464bb150d6dbe46b938abf56a57201 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts.meta b/UI/Scripts.meta new file mode 100644 index 0000000..b79836e --- /dev/null +++ b/UI/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6fb1871e8061aa4889871146b1d3a5e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Browser.cs b/UI/Scripts/Browser.cs new file mode 100644 index 0000000..cdabc54 --- /dev/null +++ b/UI/Scripts/Browser.cs @@ -0,0 +1,373 @@ +using System; +using System.Reflection; +using JetBrains.Annotations; +using ModIO; +using ModIO.Util; +using ModIOBrowser.Implementation; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + + + /// + /// The main handler for opening and closing the mod IO Browser. + /// Use Browser.Open() to open and Browser.Close() to close. + /// + public class Browser : MonoSingleton + { + // All of the following fields with [SerializeField] attributes are assigned on the prefab + // from the unity editor inspector + [Header("Settings")] + [Tooltip("Setting this to false will stop the Browser from automatically initializing the plugin")] + [SerializeField] bool autoInitialize = true; + [SerializeField] public UiSettings uiConfig; + [SerializeField] public Home homePanel; + public SingletonAwakener SingletonAwakener; + + [Header("Main")] + public ColorScheme colorScheme; + public GameObject BrowserCanvas; + + /// + /// This is set whenever GotoPanel is invoked, the current opened panel is cached so that + /// when the user uses 'back' it knows which panel to close and go back to + /// + public static GameObject currentFocusedPanel; + + [Header("Default Selections")] + [SerializeField] Selectable defaultCollectionSelection; + + // This is assigned on OpenBrowser() and will get invoked each time the Browser is closed. + internal static Action OnClose; + + /// + /// This delegate will get invoked whenever an InputField is selected. You can specify what + /// virtual keyboard you'd like to open by providing the Browser with a delegate. + /// + public static VirtualKeyboardDelegate OpenVirtualKeyboard; + + public delegate void VirtualKeyboardDelegate(string title, + string text, + string placeholder, + VirtualKeyboardType virtualKeyboardType, + int characterLimit, + bool multiline, + Action onClose); + + public delegate void RetrieveAuthenticationCodeDelegate(Action callbackOnReceiveCode); + + /// + /// Represents the type of keyboard layout appropriate for the type of InputField being selected + /// + public enum VirtualKeyboardType + { + Default, + Search, + EmailAddress + } + + // if the ModIO plugin hasn't been initialized yet but the user wishes to open the UI we set + // this to true and open the browser the moment we have been initialized + static bool openOnInitialize = false; + + // Use Awake() to setup the Singleton for Browser.cs and initialize the plugin + void Start() + { + if (autoInitialize) + { + Result result = ModIOUnity.InitializeForUser("User"); + OnInitialize(result); + } + } + + void Update() + { + // If the user has indicated that they wish to open the Browser but we haven't been + // initialized yet, keep checking until we have been initialized + if(openOnInitialize) + { + if(ModIOUnity.IsInitialized()) + { + openOnInitialize = false; + IsInitialized(); + } + } + } + + // Runs at the end of every frame so long as the browser is active, and gets the most recent + // mod management operation to be run via the UpdateProgressState() method + void LateUpdate() + { + if(BrowserCanvas.activeSelf) + { + Mods.UpdateProgressState(); + } + } + +#region Frontend methods + + /// + /// We need this to be able to hook up a 'back' button in the UI to close the browser. + /// The CloseBrowser method for the frontend use is static. + /// + public void CloseBrowserPanel() + { + Close(); + homePanel.ResetScrollRect(); + } + + + /// + /// Use this method to open the Mod Browser UI for a user to begin browsing. + /// + /// Assign an action to be invoked when the browser is closed + /// + /// Keep in mind that a user may close the browser from an internal method, such as using + /// the UI 'back' button or pressing ESC. + /// + public static void Open([CanBeNull] Action onClose) + { + OnClose = onClose; + + if(!ModIOUnity.IsInitialized()) + { + openOnInitialize = true; + } + else + { + IsInitialized(); + //Turn on selection manager and exampleinpute capture? + } + } + + /// + /// Use this method to properly close and hide the Mod Browser UI. + /// + /// + /// You may not need to use this method since the browser has the ability to close itself, + /// however if you need to close it for any reason you can do so via this method. Keep in + /// that the OnClose delegate provided from OpenBrowser will get invoked from this method. + /// + public static void Close() + { + openOnInitialize = false; + + // Deactivate the Canvas + Instance?.BrowserCanvas?.SetActive(false); + OnClose?.Invoke(); + + SelectionManager.Instance.gameObject.SetActive(false); + } + + + /// + /// You can use this to convert your byte[] steam app ticket into a trimmed base64 encoded + /// string to be used for the steam authentication. + /// + /// the byte[] steam app ticket data + /// the desired length of the ticket to be trimmed to + /// + /// base 64 encoded string from the provided steam app ticket + [Obsolete("Use EncodeEncryptedSteamAppTicket located in ModIO.Utility instead.")] + public static string EncodeEncryptedSteamAppTicket(byte[] ticketData, uint ticketSize) + { + //------------------------------- Trim the app ticket --------------------------------// + byte[] trimmedTicket = new byte[ticketSize]; + Array.Copy(ticketData, trimmedTicket, ticketSize); + + string base64Ticket = null; + try + { + base64Ticket = Convert.ToBase64String(trimmedTicket); + } + catch(Exception exception) + { + Debug.LogError($"[mod.io Browser] Unable to convert the app ticket to a " + + $"base64 string, caught exception: {exception.Message} - " + + $"{exception.InnerException?.Message}"); + } + + return base64Ticket; + } + + /// + /// Using this method will enable an option in the Authentication modal for a user to + /// log in with their Xbox credentials. Simply provide the xbox token and the user's email + /// address and the authentication flow for Xbox will be available. + /// + /// delegate for retrieving the Xbox token + /// (Optional) provide the users email address + public static void SetupXboxAuthenticationOption(RetrieveAuthenticationCodeDelegate getXboxTokenDelegate, string userEmail = null) + { + MonoDispatcher.Instance.Run(() => + { + Authentication.getXboxToken = getXboxTokenDelegate; + Authentication.optionalThirdPartyEmailAddressUsedForAuthentication = userEmail; + }); + } + + /// + /// Using this method will enable an option in the Authentication modal for a user to + /// log in with their Switch account. Simply provide the NSA ID of the user and their email + /// address and the authentication flow for Switch will be available. + /// + /// delegate Switch NSA ID of the user + /// (Optional) provide the users email address + public static void SetupSwitchAuthenticationOption(RetrieveAuthenticationCodeDelegate getSwitchNsaIdDelegate, string userEmail = null) + { + MonoDispatcher.Instance.Run(() => + { + Authentication.getSwitchToken = getSwitchNsaIdDelegate; + Authentication.optionalThirdPartyEmailAddressUsedForAuthentication = userEmail; + }); + } + + /// + /// Using this method will enable an option in the Authentication modal for a user to + /// log in with their steam credentials. Simply provide the steam ticket (base 64 encoded) + /// and the user's email address and the authentication flow for steam will be available. + /// + /// + /// You can use our utility method to encode the ticket if you're unsure: + /// Browser.EncodeEncryptedSteamAppTicket(byte[] ticketData, uint ticketSize). + /// If you're using the Facepunch library the app ticket you receive is already pre-trimmed + /// so you can simply use ticketData.Length for the ticketSize parameter. + /// + /// delegate used to get the base64 encoded app ticket + /// (Optional) provide the users email address + /// + public static void SetupSteamAuthenticationOption(RetrieveAuthenticationCodeDelegate getSteamTicketDelegate, string userEmail = null) + { + MonoDispatcher.Instance.Run(() => + { + Authentication.getSteamAppTicket = getSteamTicketDelegate; + Authentication.optionalThirdPartyEmailAddressUsedForAuthentication = userEmail; + }); + } + + public static void SetupEpicAuthenticationOption(RetrieveAuthenticationCodeDelegate getEpicTicketDelegate, string userEmail = null) + { + MonoDispatcher.Instance.Run(() => + { + Authentication.getEpicAuthCode = getEpicTicketDelegate; + Authentication.optionalThirdPartyEmailAddressUsedForAuthentication = userEmail; + }); + } + + /// + /// Using this method will enable an option in the Authentication modal for a user to + /// log in with their PlayStation credentials. Simply provide the auth code + /// and the user's email address and the authentication flow for PlayStation will be available. + /// + /// Delegate to get the PlayStation auth code + /// (Optional) provide the users email address + public static void SetupPlayStationAuthenticationOption(RetrieveAuthenticationCodeDelegate getPlayStationAuthCodeDelegate, PlayStationEnvironment environment, string userEmail = null) + { + MonoDispatcher.Instance.Run(() => + { + Authentication.getPlayStationAuthCode = getPlayStationAuthCodeDelegate; + Authentication.optionalThirdPartyEmailAddressUsedForAuthentication = userEmail; + Authentication.PSEnvironment = environment; + }); + } + +#endregion // Frontend methods + +#region Initialization + /// + /// We use this to check initialization if the plugin hasn't been initialized we will first + /// attempt to initialize it ourselves, based on the current config file. + /// + /// + static void OnInitialize(Result result) + { + if(result.Succeeded()) + { + if(openOnInitialize) + { + IsInitialized(); + } + Debug.Log("[mod.io Browser] Initialized ModIO Plugin"); + } + else + { + Close(); + Debug.LogWarning("[mod.io Browser] Failed to Initialize ModIO Plugin. " + + "Make sure your config file is setup, located in " + + "Assets/Resources/mod.io\nAlso check you are using the correct " + + "server address ('https://api.mod.io/v1' for production or " + + "'https://api.test.mod.io/v1' for the test server) and that " + + "you've supplied the API Key and game Id for your game."); + } + } + + static void IsInitialized() + { + openOnInitialize = false; + ModIOUnity.IsAuthenticated((r) => + { + if(r.Succeeded()) + { + Authentication.Instance.IsAuthenticated = true; + ModIOUnity.FetchUpdates(delegate { }); + } + else + { + Authentication.Instance.IsAuthenticated = false; + } + }); + + if(Instance == null) + { + Debug.LogWarning("[mod.io Browser] Could not open because the Browser.cs" + + " singleton hasn't been set yet. (Check the gameObject holding" + + " the Browser.cs component isn't set to inactive)"); + return; + } + + //Ensure singletons are initialized + Instance.SingletonAwakener.AttemptInitilization(); + + // Activate the Canvas + if(!Instance.BrowserCanvas.activeSelf) + { + Instance.BrowserCanvas.SetActive(true); + } + + Collection.Instance.CacheLocalSubscribedModStatuses(); + Implementation.Avatar.Instance.SetupUser(); + Home.Instance.Open(); + Home.Instance.RefreshHomePanel(); + ModIOUnity.EnableModManagement(Mods.ModManagementEvent); + + SelectionManager.Instance.gameObject.SetActive(true); + } + + public void OpenMenuProfile() => Navigating.OpenMenuProfile(); + + #endregion + +#region Editor helpers + [ExposeMethodInEditor] + public void CheckForMissingReferencesInScene() + { + Debug.LogWarning("This function may give false positives, mostly in the case of text input fields and dropdowns"); + MonoBehaviour[] components = Resources.FindObjectsOfTypeAll(); + foreach(MonoBehaviour component in components) + { + var fields = component.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); + foreach(var field in fields) + { + if(field.FieldType == typeof(GameObject) && field.GetValue(component) == null) + { + //Debug.LogError("Missing reference on " + component.name + " of object: " + component.gameObject.name); + Debug.LogError("Missing reference at: " + component.transform.FullPath()); + } + } + } + } +#endregion + } +} diff --git a/UI/Scripts/Browser.cs.meta b/UI/Scripts/Browser.cs.meta new file mode 100644 index 0000000..a302cf4 --- /dev/null +++ b/UI/Scripts/Browser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9c56733d768700343928256da18908cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/BrowserSpawnIn.cs b/UI/Scripts/BrowserSpawnIn.cs new file mode 100644 index 0000000..836dc5f --- /dev/null +++ b/UI/Scripts/BrowserSpawnIn.cs @@ -0,0 +1,23 @@ +using System.Collections; +using UnityEngine; + +namespace ModIOBrowser +{ + public class BrowserSpawnIn : MonoBehaviour + { + public GameObject browserPrefab; + + bool hasSpawned = false; + + public void SpawnIn() + { + if(!hasSpawned) + { + Instantiate(browserPrefab); + hasSpawned = true; + } + + Browser.Open(null); + } + } +} diff --git a/UI/Scripts/BrowserSpawnIn.cs.meta b/UI/Scripts/BrowserSpawnIn.cs.meta new file mode 100644 index 0000000..2924661 --- /dev/null +++ b/UI/Scripts/BrowserSpawnIn.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d9936cf8def756343a493ec5df0d531b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/ExampleSettingsPanel.cs b/UI/Scripts/ExampleSettingsPanel.cs new file mode 100644 index 0000000..7fd7c65 --- /dev/null +++ b/UI/Scripts/ExampleSettingsPanel.cs @@ -0,0 +1,95 @@ +using System; +using ModIOBrowser.Implementation; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIO.Implementation +{ + public class ExampleSettingsPanel : MonoBehaviour + { + [SerializeField] TMP_InputField gameIdInputField; + [SerializeField] TMP_InputField apiKeyInputField; + [SerializeField] TMP_InputField initUserInputField; + [SerializeField] TextMeshProUGUI currentServerUrlText; + [SerializeField] TextMeshProUGUI currentGameIdText; + [SerializeField] Button[] buttons; + + Translation gameIdTranslation = null; + Translation serverUrlTranslation = null; + string urlToUse; + + public void ActivatePanel(bool isActive) + { + SetServerUrl(Settings.server.serverURL); + + Translation.Get(serverUrlTranslation, "Server Url: {text}", currentServerUrlText, Settings.server.serverURL); + Translation.Get(gameIdTranslation, "Game id: {text}", currentGameIdText, Settings.server.gameId.ToString()); + + gameObject.SetActive(isActive); + + LayoutRebuilder.ForceRebuildLayoutImmediate(transform as RectTransform); + LayoutRebuilder.ForceRebuildLayoutImmediate(transform as RectTransform); + } + + public void SetServerUrl(string url) + { + urlToUse = url; + Translation.Get(serverUrlTranslation, "Server Url: {text}", currentServerUrlText, urlToUse); + } + + public async void SaveSettings() + { + try + { + foreach(var b in buttons) + { + b.enabled = false; + } + + if(ModIOUnity.IsInitialized()) + { + await ModIOUnityAsync.Shutdown(); + } + + var serverSettings = new ServerSettings(Settings.server); + var buildSettings = new BuildSettings(Settings.build); + + if(gameIdInputField.text != String.Empty && uint.TryParse(gameIdInputField.text, out uint gameId)) + { + serverSettings.gameId = gameId; + } + + if(apiKeyInputField.text != String.Empty) + { + serverSettings.gameKey = apiKeyInputField.text; + } + + serverSettings.serverURL = urlToUse; + + string user = string.IsNullOrWhiteSpace(initUserInputField.text) ? "User" : initUserInputField.text; + ModIOUnity.InitializeForUser(user, serverSettings, buildSettings); + + Translation.Get(gameIdTranslation, "Game id: {text}", currentGameIdText, Settings.server.gameId.ToString()); + Translation.Get(serverUrlTranslation, "Server Url: {text}", currentServerUrlText, urlToUse); + } + catch(Exception e) + { + Debug.LogWarning(e); + } + finally + { + foreach(var b in buttons) + { + b.enabled = true; + } + } + + } + + public void Close() + { + gameObject.SetActive(false); + } + } +} diff --git a/UI/Scripts/ExampleSettingsPanel.cs.meta b/UI/Scripts/ExampleSettingsPanel.cs.meta new file mode 100644 index 0000000..22aa312 --- /dev/null +++ b/UI/Scripts/ExampleSettingsPanel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c6c66c01747fab34f84c70f9ef73080c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/FindMissingReferences.cs b/UI/Scripts/FindMissingReferences.cs new file mode 100644 index 0000000..c2ebc30 --- /dev/null +++ b/UI/Scripts/FindMissingReferences.cs @@ -0,0 +1,92 @@ +#if UNITY_EDITOR + +using System.Collections.Generic; +using ModIOBrowser.Implementation; +using UnityEditor; +using UnityEngine; + +namespace ModIOBrowser +{ + class FindMissingReferences + { + [MenuItem("Tools/Find Missing button references in scene")] + public static void CheckForMissingButtonLinks() + { + //Looping through buttons may result in duplicates, using a + //hashset manages that + var summary = new HashSet(); + + var buttons = Resources.FindObjectsOfTypeAll(); + + + foreach(var button in buttons) + { + //Get the button's onClick event + UnityEngine.UI.Button.ButtonClickedEvent onClickEvent = button.onClick; + + + //Loop through the event's listeners + for(int i = 0; i < onClickEvent.GetPersistentEventCount(); i++) + { + if(onClickEvent.GetPersistentTarget(i) == null) + { + var s = $"Missing ref at path: {button.transform.FullPath()}"; + + summary.Add(s); + Debug.LogError(s); + + } + } + + } + + var finalSummary = "Warning: Sometimes this function fails, some of these buttons may have functions on them."; + foreach(var item in summary) + { + finalSummary += item + "\n"; + } + Debug.Log("Summary:\n" + finalSummary); + GUIUtility.systemCopyBuffer = finalSummary; //for easier copy-pasta + } + + [MenuItem("Tools/Find Missing Color Scheme references in scene")] + public static void CheckForMissingColorSchemeRefs() + { + var buttons = Resources.FindObjectsOfTypeAll(); + var dropdowns = Resources.FindObjectsOfTypeAll(); + var toggles = Resources.FindObjectsOfTypeAll(); + + var foundSchemes = Resources.FindObjectsOfTypeAll(); + var colorScheme = foundSchemes[0]; + + foreach(var button in buttons) + { + if(button.scheme == null) + { + button.scheme = colorScheme; + Debug.Log($"Button found with missing reference (assigning). Located at {button.transform.FullPath()}"); + } + } + foreach(var dropdown in dropdowns) + { + if(dropdown.scheme == null) + { + dropdown.scheme = colorScheme; + Debug.Log($"Dropdown found with missing reference (assigning). Located at {dropdown.transform.FullPath()}"); + } + } + foreach(var toggle in toggles) + { + if(toggle.scheme == null) + { + toggle.scheme = colorScheme; + Debug.Log($"Toggle found with missing reference (assigning). Located at {toggle.transform.FullPath()}"); + } + } + + Debug.Log("Finished checking components for missing color scheme references"); + } + } +} + +#endif diff --git a/UI/Scripts/FindMissingReferences.cs.meta b/UI/Scripts/FindMissingReferences.cs.meta new file mode 100644 index 0000000..c184425 --- /dev/null +++ b/UI/Scripts/FindMissingReferences.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8ff70b67f8ca5da4e860fe947d3a9b51 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/ImageTransitions.cs b/UI/Scripts/ImageTransitions.cs new file mode 100644 index 0000000..7715b28 --- /dev/null +++ b/UI/Scripts/ImageTransitions.cs @@ -0,0 +1,58 @@ +using UnityEngine; +using System.Collections; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + class ImageTransitions + { + + /// + /// This is a generic method for transitioning the alpha of an image component. Currently + /// being used to show/hide the headers that fade in/out as you scroll dup/down the page + /// in Collection view and Search results view. + /// + /// component to transition color alpha + /// the target alpha to end transition at + /// + public static IEnumerator Alpha(Image image, float targetAlphaValue) + { + float incrementSize = 0.05f; + Color color = image.color; + while(color.a != targetAlphaValue) + { + color.a = color.a > targetAlphaValue ? color.a - incrementSize : color.a + incrementSize; + + // make sure we dont go outside the bounds + if(color.a < 0f || color.a > 1f) + { + color.a = targetAlphaValue; + } + + image.color = color; + + yield return new WaitForSecondsRealtime(0.025f); + } + } + public static IEnumerator AlphaFast(Image image, float targetAlphaValue) + { + float incrementSize = 0.05f; + Color color = image.color; + while(color.a != targetAlphaValue) + { + color.a = color.a > targetAlphaValue ? color.a - incrementSize : color.a + incrementSize; + + // make sure we dont go outside the bounds + if(color.a < 0f || color.a > 1f) + { + color.a = targetAlphaValue; + } + + image.color = color; + + yield return new WaitForSecondsRealtime(0.01f); + } + } + } + +} diff --git a/UI/Scripts/ImageTransitions.cs.meta b/UI/Scripts/ImageTransitions.cs.meta new file mode 100644 index 0000000..aaac400 --- /dev/null +++ b/UI/Scripts/ImageTransitions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3d5cb3cbb9848747b971f56b44cc59b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/InputNavigation.cs b/UI/Scripts/InputNavigation.cs new file mode 100644 index 0000000..70d6367 --- /dev/null +++ b/UI/Scripts/InputNavigation.cs @@ -0,0 +1,96 @@ +using System.Collections.Generic; +using ModIO.Util; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + //Split into input and navigation? + //Yes its doing two things + class InputNavigation : SelfInstancingMonoSingleton + { + [SerializeField] List ControllerButtonIcons = new List(); + [SerializeField] List MouseButtonIcons = new List(); + + //Set this when we detect mouse behaviour so we can disable certain controller behaviours + public bool mouseNavigation = false; + + public void SetToController() + { + mouseNavigation = false; + Cursor.lockState = CursorLockMode.Locked; + + //Reselect a ui component in case the mouse has moved off + SelectionManager.Instance.SelectMostRecentStillActivatedUiItem(); + + ShowControllerButtonIconsAndHideMouseButtonIcons(); + } + + public void SetToMouse() + { + Cursor.lockState = CursorLockMode.None; + HideControllerButtonIconsAndShowMouseButtonIcons(); + mouseNavigation = true; + } + + void ShowControllerButtonIconsAndHideMouseButtonIcons() + { + foreach(GameObject icon in ControllerButtonIcons) + { + icon?.SetActive(true); + } + foreach(GameObject icon in MouseButtonIcons) + { + icon?.SetActive(false); + } + } + + void HideControllerButtonIconsAndShowMouseButtonIcons() + { + foreach(GameObject icon in ControllerButtonIcons) + { + icon?.SetActive(false); + } + foreach(GameObject icon in MouseButtonIcons) + { + icon?.SetActive(true); + } + } + + public void DeselectUiGameObject() + { + if(!mouseNavigation) + { + EventSystem.current.SetSelectedGameObject(null); + } + } + + public void SelectGameObject(GameObject go) + { + if(!Browser.Instance.BrowserCanvas.activeSelf) + { + return; + } + + if(!mouseNavigation) + { + EventSystem.current.SetSelectedGameObject(go); + } + } + + public void Select(Selectable s, bool selectEvenWhenUsingMouse = false) + { + if(!Browser.Instance.BrowserCanvas.activeSelf || s == null) + { + return; + } + + if(!mouseNavigation || selectEvenWhenUsingMouse) + { + EventSystem.current.SetSelectedGameObject(null, null); + EventSystem.current.SetSelectedGameObject(s.gameObject, null); + } + } + } +} diff --git a/UI/Scripts/InputNavigation.cs.meta b/UI/Scripts/InputNavigation.cs.meta new file mode 100644 index 0000000..0780dda --- /dev/null +++ b/UI/Scripts/InputNavigation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 259f78a9175690845be8152999e84074 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/InputReceiver.cs b/UI/Scripts/InputReceiver.cs new file mode 100644 index 0000000..6af0a4e --- /dev/null +++ b/UI/Scripts/InputReceiver.cs @@ -0,0 +1,154 @@ +using ModIOBrowser.Implementation; + +namespace ModIOBrowser +{ + + /// + /// This class is intended to be used to inform the Mod Browser UI of input presses. + /// Regular UI navigation, such as movement (left, right, up, down), will be detected by + /// default from the SandaloneInputModule component in scene. You can edit these from the unity + /// editor inspector panel when selecting the EventSystem gameObject in the scene. + /// + public static class InputReceiver + { + internal static InputFieldCoadjutant currentSelectedInputField; + + /// + /// Used as a 'back' option. + /// + /// + /// Consider an input that would be used to close a dialog, context menu or the current panel. + /// + public static void OnCancel() + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToController(); + Navigating.Cancel(); + } + } + + /// + /// Used as a secondary 'submit' option. + /// + /// + /// Consider an input that would be used to select a secondary option, such as 'subscribe' + /// while hovering on a mod profile as opposed to a regular submit for selecting it + /// + public static void OnAlternate() + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToController(); + Navigating.Alternate(); + } + } + + /// + /// Used as an extra 'submit' option. + /// + /// + /// Consider an input that would be used to open a context menu, similar to a 'right click' + /// + public static void OnOptions() + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToController(); + Navigating.Options(); + } + } + + /// + /// Used to jump or page a selection, typically the right bumper on a game pad. + /// + public static void OnTabRight() + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToController(); + Navigating.TabRight(); + } + } + + /// + /// Used to jump or page a selection, typically the left bumper on a game pad. + /// + public static void OnTabLeft() + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToController(); + Navigating.TabLeft(); + } + } + + /// + /// Used to open the search panel. + /// + /// + /// Consider a key press similar to a 'menu' type input + /// + public static void OnSearch() + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToController(); + SearchPanel.Instance.ToggleState(); + } + } + + /// + /// Used to open the login dialog / download queue. + /// + /// + /// Consider a key press similar to a 'user menu' input for viewing your profile + /// + public static void OnMenu() + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToController(); + Navigating.MenuInput(); + } + } + + /// + /// Used as an alternate axis for scrolling content. + /// + /// + /// Typically this should be the 'other' joystick so the user can scroll without losing or + /// moving their selection. + /// + public static void OnControllerScroll(float direction) + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToController(); + Navigating.Scroll(direction); + } + } + + /// + /// Called when switching to keyboard / controller input + /// + public static void OnSetToControllerNavigation() + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToController(); + } + } + + /// + /// Called when switching to mouse input + /// + public static void OnSetToMouseNavigation() + { + if(Browser.Instance.BrowserCanvas.activeSelf) + { + InputNavigation.Instance.SetToMouse(); + } + } + } +} diff --git a/UI/Scripts/InputReceiver.cs.meta b/UI/Scripts/InputReceiver.cs.meta new file mode 100644 index 0000000..8c61dca --- /dev/null +++ b/UI/Scripts/InputReceiver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1e04d62ce2f3814597ef3943572cebc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Mods.cs b/UI/Scripts/Mods.cs new file mode 100644 index 0000000..2f4a7f8 --- /dev/null +++ b/UI/Scripts/Mods.cs @@ -0,0 +1,274 @@ +using System; +using ModIO; +using ModIOBrowser.Implementation; + +namespace ModIOBrowser +{ + static class Mods + { + // edge case solve for pressing rate mod repeatedly + static ModId lastRatedMod; + static ModRating lastRatingType; + + // globally cached and used to keep track of the current mod management operation progress + public static ProgressHandle CurrentModManagementOperationHandle; + + public static ModManagementEventDelegate OnModManagementEvent; + + /// + /// This works the same as UnsubscribeFromModEvent() but it subscribes instead. + /// Always use this method to subscribe to mods so that we can globally track the result and + /// make updates where necessary. + /// Eg update the mod collection list or 'subscribed' pips on mod list items displayed in + /// the home view. + /// + /// the mod being subscribed to + /// any extra callback to run once the response is received + internal static void SubscribeToEvent(ModProfile profile, Action callback = null) + { + if(!Authentication.Instance.IsAuthenticated) + { + AuthenticationPanels.Instance?.Open(); + return; + } + + Collection.Instance.pendingSubscriptions.Add(profile); + + ModIOUnity.SubscribeToMod(profile.id, + delegate (Result result) + { + Collection.Instance.pendingSubscriptions.Remove(profile); + + if(result.Succeeded()) + { + Notifications.Instance.AddNotificationToQueue(new Notifications.QueuedNotice + { + title = TranslationManager.Instance.Get("Subscribed"), + description = TranslationManager.Instance.Get("{GetModNameFromId} has been added to the download queue", Collection.Instance.GetModNameFromId(profile.id)), + positiveAccent = true + }); + + Collection.Instance.CacheLocalSubscribedModStatuses(); + + // if collection open, make another list item for the new subscribed item + if(Collection.IsOn()) + { + Collection.Instance.RefreshList(); + } + } + else + { + Notifications.Instance.AddNotificationToQueue(new Notifications.QueuedNotice + { + title = TranslationManager.Instance.Get("Failed to subscribe"), + description = TranslationManager.Instance.Get("Unable to subscribe to '{GetModNameFromId}'", Collection.Instance.GetModNameFromId(profile.id)), + positiveAccent = false + }); + } + + callback?.Invoke(); + }); + } + + /// + /// This works the same as SubscribeToModEvent() but it unsubscribes instead. + /// Always use this method to unsubscribe from mods so that we can globally track the result and + /// make updates where necessary. + /// Eg update the mod collection list or 'subscribed' pips on mod list items displayed in + /// the home view. + /// + /// the mod to unsubscribe + /// any extra callback to run once the response is received + public static void UnsubscribeFromEvent(ModProfile profile, Action callback = null) + { + if(!Authentication.Instance.IsAuthenticated) + { + return; + } + + Collection.Instance.pendingSubscriptions.Remove(profile); + if(!Collection.Instance.pendingUnsubscribes.Contains(profile.id)) + { + Collection.Instance.pendingUnsubscribes.Add(profile.id); + } + + ModIOUnity.UnsubscribeFromMod(profile.id, + delegate (Result result) + { + if(Collection.Instance.pendingUnsubscribes.Contains(profile.id)) + { + Collection.Instance.pendingUnsubscribes.Remove(profile.id); + } + if(result.Succeeded()) + { + Notifications.Instance.AddNotificationToQueue(new Notifications.QueuedNotice + { + title = TranslationManager.Instance.Get("Unsubscribed"), + description = TranslationManager.Instance.Get("{GetNameFromModId} has been removed from your collection", Collection.Instance.GetModNameFromId(profile.id)), + positiveAccent = true + }); + + Collection.Instance.CacheLocalSubscribedModStatuses(); + } + + callback?.Invoke(); + }); + } + + /// + /// Always use this method to when we want to rate a mod so that when we receive a result we + /// can update any UI accordingly. + /// Eg update the mod details Rate up/down buttons to show that you've rated this mod + /// + /// the mod id to rate + /// the rating to apply, eg ModRating.Positive + /// any extra callback to run once the response is received + public static void RateEvent(ModId modId, ModRating rating, Action callback = null) + { + if(!Authentication.Instance.IsAuthenticated) + { + return; + } + + ModIOUnity.RateMod(modId, rating, delegate (Result result) + { + callback?.Invoke(); + + if(result.Succeeded()) + { + // make sure we arent repeatedly sending the same rating + if(lastRatedMod != modId || lastRatingType != rating) + { + lastRatingType = rating; + lastRatedMod = modId; + + Notifications.Instance.AddNotificationToQueue(new Notifications.QueuedNotice + { + title = TranslationManager.Instance.Get("Rating added"), + description = TranslationManager.Instance.Get("Your rating has been added for {Mod}", Collection.Instance.GetModNameFromId(modId)), + positiveAccent = true + }); + } + } + else + { + Details.Instance.UpdateRatingButtons(); + Notifications.Instance.AddNotificationToQueue(new Notifications.QueuedNotice + { + title = TranslationManager.Instance.Get("Failed to add rating"), + description = TranslationManager.Instance.Get("Failed to submit your rating for {Mod}", Collection.Instance.GetModNameFromId(modId)), + positiveAccent = false + }); + } + }); + } + + + #region ModManagement Operation + /* + * This region contains the methods used for handling the ModManagementEventDelegate + * as well as the ProgressHandle given from GetCurrentModManagementOperation() + */ + + /// + /// This is assigned when the browser is initialized and EnableModManagement is invoked + /// + /// the type of MM event + /// the mod id pertaining to this event + public static void ModManagementEvent(ModManagementEventType type, ModId id, Result eventResult) + { + // invoke any external delegates provided to also listen for these events + OnModManagementEvent?.Invoke(type, id, eventResult); + + // cache not enough storage mods + if(eventResult.IsStorageSpaceInsufficient()) + { + if(!Collection.Instance.notEnoughSpaceForTheseMods.Contains(id)) + { + Collection.Instance.notEnoughSpaceForTheseMods.Add(id); + } + } + + if(!Browser.Instance.BrowserCanvas.activeSelf) + { + return; + } + Notifications.Instance.ProcessModManagementEventIntoNotification(type, id, eventResult); + + //maybe keep this in here instead? + CurrentModManagementOperationHandle = ModIOUnity.GetCurrentModManagementOperation(); + if(CurrentModManagementOperationHandle.Completed) + { + CurrentModManagementOperationHandle = null; + } + + Collection.Instance.CacheLocalSubscribedModStatuses(); + + if(CollectionModListItem.listItems.ContainsKey(id)) + { + CollectionModListItem.listItems[id].UpdateStatus(type); + } + if(HomeModListItem.listItems.ContainsKey(id)) + { + HomeModListItem.listItems[id].UpdateStatus(type, id); + } + if(Details.IsOn()) + { + Details.Instance.ModDetailsProgressTab.UpdateStatus(type, id); + } + + Home.ModManagementEvent(type, id, eventResult); + + if(DownloadQueue.Instance.DownloadQueuePanel.activeSelf) + { + DownloadQueue.Instance.RefreshDownloadHistoryPanel(); + } + } + + /// + /// This looks for progress bars across the UI and invokes an update if needed, using the + /// provided ProgressHandle.Progress field to do so. + /// + /// this can be null and will be handled appropriately + internal static void UpdateProgressState() => UpdateProgressStateInternal(CurrentModManagementOperationHandle); + + private static void UpdateProgressStateInternal(ProgressHandle handle) + { + if(handle == null) + { + CurrentModManagementOperationHandle = ModIOUnity.GetCurrentModManagementOperation(); + } + + Avatar.Instance.UpdateDownloadProgressBar(handle); + + if(Collection.IsOn()) + { + if(handle != null && CollectionModListItem.listItems.ContainsKey(handle.modId)) + { + CollectionModListItem.listItems[handle.modId].UpdateProgressState(handle); + } + } + else if(Details.IsOn()) + { + Details.Instance.UpdateDownloadProgress(handle); + } + else if(handle != null && SearchResults.Instance.SearchResultsPanel.activeSelf) + { + if(SearchResultListItem.listItems.ContainsKey(handle.modId)) + { + SearchResultListItem.listItems[handle.modId].UpdateProgressBar(handle); + } + } + Home.UpdateProgressState(handle); + + // Check this separately because it's an overlay + if(DownloadQueue.Instance.DownloadQueuePanel.activeSelf) + { + DownloadQueue.Instance.UpdateDownloadQueueCurrentDownloadDisplay(handle); + } + } + + + #endregion + } +} diff --git a/UI/Scripts/Mods.cs.meta b/UI/Scripts/Mods.cs.meta new file mode 100644 index 0000000..55073d8 --- /dev/null +++ b/UI/Scripts/Mods.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a1c169ab832a5ba43aad50cee9041980 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Navigating.cs b/UI/Scripts/Navigating.cs new file mode 100644 index 0000000..26623ba --- /dev/null +++ b/UI/Scripts/Navigating.cs @@ -0,0 +1,282 @@ +using ModIOBrowser.Implementation; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace ModIOBrowser +{ + //Calling this class navigation would be preferable, alas, Navigation is a keyword in Unity + + static class Navigating + { + internal static void Cancel() + { + if(ModioContextMenu.Instance.ContextMenu.activeSelf) + { + ModioContextMenu.Instance.Close(); + } + else if(MultiTargetDropdown.currentMultiTargetDropdown != null) + { + MultiTargetDropdown.currentMultiTargetDropdown.Hide(); + MultiTargetDropdown.currentMultiTargetDropdown = null; + } + else if(SearchPanel.Instance.SearchPanelGameObject.activeSelf) + { + SearchPanel.Instance.Close(); + } + else if(AuthenticationPanels.Instance.AuthenticationPanel.activeSelf) + { + Authentication.Instance.Close(); + } + else if(DownloadQueue.Instance.DownloadQueuePanel.activeSelf) + { + DownloadQueue.Instance.ToggleDownloadQueuePanel(); + } + else if(Details.Instance.ModDetailsPanel.activeSelf) + { + Details.Instance.Close(); + } + else if(Collection.Instance.uninstallConfirmationPanel.activeSelf) + { + Collection.Instance.CloseUninstallConfirmation(); + } + else if(Browser.currentFocusedPanel != Home.Instance.BrowserPanel) + { + Home.Instance.Open(); + } + else + { + Browser.Close(); + } + } + + /// + /// Used as a secondary 'submit' option. + /// + internal static void Alternate() + { + if(SearchPanel.Instance.SearchPanelGameObject.activeSelf) + { + // Apply filters and show results + SearchPanel.Instance.ApplyFilter(); + } + else if(Home.IsOn()) + { + // if overlay browser inflated, subscribe/unsubscribe + // if featured item highlighted/selected subscribe/unsubscribe + if(!SelectionOverlayHandler.TryAlternateForBrowserOverlayObject() && Home.Instance.isFeaturedItemSelected) + { + Home.Instance.SubscribeToFeaturedMod(); + } + } + else if(Details.Instance.ModDetailsPanel.activeSelf) + { + // if mod details panel selected subscribe/unsubscribe + Details.Instance.SubscribeButtonPress(); + } + else if(Collection.IsOn()) + { + if(Collection.Instance.currentSelectedCollectionListItem != null) + { + Collection.Instance.currentSelectedCollectionListItem.UnsubscribeButton(); + } + } + else if(SearchResults.Instance.SearchResultsPanel.activeSelf) + { + // if search results list item selected subscribe/unsubscribe} + SelectionOverlayHandler.TryAlternateForSearchResultsOverlayObject(); + } + } + + internal static void Options() + { + // if browser overlay inflated, bring up more options + // if browser featured selected bring up more options + if(ModioContextMenu.Instance.ContextMenu.activeSelf) + { + ModioContextMenu.Instance.Close(); + } + else if(SearchResults.Instance.SearchResultsPanel.activeSelf) + { + // if search results list item selected subscribe/unsubscribe} + SelectionOverlayHandler.TryToOpenMoreOptionsForSearchResultsOverlayObject(); + } + else if(Collection.IsOn()) + { + if(Collection.Instance.currentSelectedCollectionListItem != null) + { + Collection.Instance.currentSelectedCollectionListItem.ShowMoreOptions(); + } + } + else if(SearchPanel.Instance.SearchPanelGameObject.activeSelf) + { + // clear filter results + SearchPanel.searchFilterTags.Clear(); + SearchPanel.Instance.SearchPanelField.text = ""; + SearchPanel.Instance.SetupTags(); + } + else if(Home.IsOn()) + { + // if overlay browser inflated, subscribe/unsubscribe + // if featured item highlighted/selected subscribe/unsubscribe + if(!SelectionOverlayHandler.TryToOpenMoreOptionsForBrowserOverlayObject() && Home.Instance.isFeaturedItemSelected) + { + Home.Instance.OpenMoreOptionsForFeaturedSlot(); + } + } + } + + internal static void TabLeft() + { + if(SearchPanel.Instance.SearchPanelGameObject.activeSelf) + { + TagJumpToSelection.GoToPreviousSelection(); + } + else if(Details.Instance.ModDetailsPanel.activeSelf) + { + Details.Instance.GalleryImageTransition(false); + } + else if(Home.IsOn() || Collection.IsOn()) + { + ToggleBetweenBrowserAndCollection(); + } + } + + internal static void TabRight() + { + if(SearchPanel.Instance.SearchPanelGameObject.activeSelf) + { + TagJumpToSelection.GoToNextSelection(); + } + else if(Details.Instance.ModDetailsPanel.activeSelf) + { + Details.Instance.GalleryImageTransition(true); + } + else if(Home.IsOn() || Collection.IsOn()) + { + ToggleBetweenBrowserAndCollection(); + } + } + + internal static void MenuInput() + { + OpenMenuProfile(); + } + + internal static void Scroll(float direction) + { + if(Details.Instance.ModDetailsPanel.activeSelf + && !Reporting.Instance.Panel.activeSelf + && EventSystem.current.currentSelectedGameObject == Details.Instance.ModDetailsScrollToggleGameObject) + { + Vector3 position = Details.Instance.ModDetailsContentRect.position; + position.y += direction * (100f * Time.fixedDeltaTime) * -1f; + Details.Instance.ModDetailsContentRect.position = position; + } + } + + + /// + /// Closes all panels and opens the specified one. + /// + /// the new GameObject UI panel to enable + internal static void GoToPanel(GameObject panel) + { + // Ensure no other panels are open + CloseAll(); + + // Open the specified panel + panel?.SetActive(true); + + Browser.currentFocusedPanel = panel; + } + + /// + /// This is a force close of all UI panels and gameObjects. This ensures everything gets + /// deactivated and should be used before we wish to open a different fullscreen panel + /// + internal static void CloseAll() + { + // (Note):This may seem verbose but we want to check if a panel is already active before + // using SetActive(false) because it will dirty the entire canvas unnecessarily when we + // try to deactivate an inactive object instead of ignoring it. + if(Home.IsOn()) + { + Home.Instance.BrowserPanel.SetActive(false); + } + if(Collection.IsOn()) + { + Collection.Instance.CollectionPanel.SetActive(false); + } + if(Details.IsOn()) + { + Details.Instance.ModDetailsPanel.SetActive(false); + } + if(SearchPanel.Instance.SearchPanelGameObject.activeSelf) + { + SearchPanel.Instance.SearchPanelGameObject.SetActive(false); + } + if(SearchResults.Instance.SearchResultsPanel.activeSelf) + { + SearchResults.Instance.SearchResultsPanel.SetActive(false); + SelectionOverlayHandler.Instance.SearchResultListItemOverlay.gameObject.SetActive(false); + } + if(AuthenticationPanels.Instance.AuthenticationPanel.activeSelf) + { + AuthenticationPanels.Instance.AuthenticationPanel.SetActive(false); + } + if(DownloadQueue.Instance.DownloadQueuePanel.activeSelf) + { + DownloadQueue.Instance.DownloadQueuePanel.SetActive(false); + } + if(ModioContextMenu.Instance.ContextMenu.activeSelf) + { + ModioContextMenu.Instance.ContextMenu.SetActive(false); + } + if(Reporting.Instance.Panel.activeSelf) + { + Reporting.Instance.Panel.SetActive(false); + } + } + + /// + /// Depending on the authentication status this will either open the download history panel + /// or the authentication wizard dialog. + /// + public static void OpenMenuProfile() + { + if(!Authentication.Instance.IsAuthenticated) + { + // Toggle authentication panel + if(AuthenticationPanels.Instance.AuthenticationPanel.activeSelf) + { + Authentication.Instance.Close(); + } + else + { + AuthenticationPanels.Instance.Open(); + } + } + else + { + DownloadQueue.Instance.ToggleDownloadQueuePanel(); + } + } + + /// + /// This method is used when a left or right bumper is pressed and the view needs to change + /// from the home view to the collection view and vice versa. + /// + public static void ToggleBetweenBrowserAndCollection() + { + if(Home.IsOn()) + { + Collection.Instance.Open(); + } + else + { + Home.Instance.Open(); + } + } + + } +} diff --git a/UI/Scripts/Navigating.cs.meta b/UI/Scripts/Navigating.cs.meta new file mode 100644 index 0000000..f3e9cdf --- /dev/null +++ b/UI/Scripts/Navigating.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e55aff1a8aafd248b660d56b8300a70 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels.meta b/UI/Scripts/Panels.meta new file mode 100644 index 0000000..9f71008 --- /dev/null +++ b/UI/Scripts/Panels.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6faa840be3b1b04c887bb76d042d9c5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/5Digits.meta b/UI/Scripts/Panels/5Digits.meta new file mode 100644 index 0000000..5c6d653 --- /dev/null +++ b/UI/Scripts/Panels/5Digits.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9e3bc986b00c8d5479d1776ada292bf5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/5Digits/KeyInput5Digits.cs b/UI/Scripts/Panels/5Digits/KeyInput5Digits.cs new file mode 100644 index 0000000..f4a9c13 --- /dev/null +++ b/UI/Scripts/Panels/5Digits/KeyInput5Digits.cs @@ -0,0 +1,324 @@ +using System.Linq; +using System.Collections.Generic; +using UnityEngine; +using System; +using System.Text; + +#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +#endif + +namespace ModIOBrowser.Implementation +{ + public class KeyInput5Digits : MonoBehaviour + { + public bool copyPasteMode; + public bool debug = false; + public string currentInputString; + public int index = 0; + + int maxDigits; + Action onFinish; + Action renderOutput; + List keyCodes = new List(); + Dictionary keyCodeOverrides = new Dictionary(); + + public void Setup() + { + keyCodes.AddRange(GetRelevantKeys(KeyCode.Alpha0, KeyCode.Alpha9)); + keyCodes.AddRange(GetRelevantKeys(KeyCode.Keypad0, KeyCode.Keypad9)); + keyCodes.AddRange(GetRelevantKeys(KeyCode.A, KeyCode.Z)); + SetupKeyCodeStringOverrides(); + } + + IEnumerable GetRelevantKeys(KeyCode begin, KeyCode end) + { + for(KeyCode k = begin; k <= end; k++) + yield return k; + } + + void SetupKeyCodeStringOverrides() + { + keyCodeOverrides.Add(KeyCode.Alpha0, "0"); + keyCodeOverrides.Add(KeyCode.Alpha1, "1"); + keyCodeOverrides.Add(KeyCode.Alpha2, "2"); + keyCodeOverrides.Add(KeyCode.Alpha3, "3"); + keyCodeOverrides.Add(KeyCode.Alpha4, "4"); + keyCodeOverrides.Add(KeyCode.Alpha5, "5"); + keyCodeOverrides.Add(KeyCode.Alpha6, "6"); + keyCodeOverrides.Add(KeyCode.Alpha7, "7"); + keyCodeOverrides.Add(KeyCode.Alpha8, "8"); + keyCodeOverrides.Add(KeyCode.Alpha9, "9"); + keyCodeOverrides.Add(KeyCode.Keypad0, "0"); + keyCodeOverrides.Add(KeyCode.Keypad1, "1"); + keyCodeOverrides.Add(KeyCode.Keypad2, "2"); + keyCodeOverrides.Add(KeyCode.Keypad3, "3"); + keyCodeOverrides.Add(KeyCode.Keypad4, "4"); + keyCodeOverrides.Add(KeyCode.Keypad5, "5"); + keyCodeOverrides.Add(KeyCode.Keypad6, "6"); + keyCodeOverrides.Add(KeyCode.Keypad7, "7"); + keyCodeOverrides.Add(KeyCode.Keypad8, "8"); + keyCodeOverrides.Add(KeyCode.Keypad9, "9"); + } + + public void NewSession(int maxDigits, Action renderOutput, Action onFinish) + { + this.maxDigits = maxDigits; + this.onFinish = onFinish; + this.renderOutput = renderOutput; + SetIndex(0); + currentInputString = new string(' ', maxDigits); + this.renderOutput(currentInputString); + gameObject.SetActive(true); + } + + public void EndSession() => gameObject.SetActive(false); + + void AddToInput(KeyCode keyCode) + { + var s = keyCodeOverrides.ContainsKey(keyCode) + ? keyCodeOverrides[keyCode] + : keyCode.ToString(); + + SetToInput(s); + } + + void SetToInput(string s) + { + var stringBuilder = new StringBuilder(currentInputString); + if(s.Length == 1) + { + stringBuilder[index] = s.ToUpper().ToCharArray().First(); + SetIndex(index + 1); + } + else + { + foreach(var item in s.ToUpper()) + { + stringBuilder[index] = item; + index++; + if(index >= maxDigits) + { + break; + } + } + } + + SetIndex(index); + + currentInputString = stringBuilder.ToString(); + if(currentInputString.Length > maxDigits) + { + currentInputString = currentInputString.Substring(0, maxDigits); + } + + renderOutput(currentInputString); + } + + void Update() + { + if(CopyPaste()) + { + return; + } + + if(Backspace()) + { + return; + } + + if(Enter()) + { + return; + } + + foreach(var key in keyCodes) + { + var inputDown = GetKeyUp(key); + if(inputDown) + { + AddToInput(key); + } + } + } + + bool Enter() + { + if(GetKeyUp(KeyCode.Return) || GetKeyUp(KeyCode.KeypadEnter)) + { + onFinish(currentInputString); + return true; + } + return false; + } + + bool Backspace() + { + if(GetKeyUp(KeyCode.Backspace)) + { + StringBuilder stringBuilder = new StringBuilder(currentInputString); + + if(index < maxDigits - 1 || stringBuilder[index] == ' ') + { + SetIndex(Math.Max(0, index - 1)); + } + + stringBuilder[index] = ' '; + currentInputString = stringBuilder.ToString(); + renderOutput(currentInputString); + + return true; + } + return false; + } + + public bool CopyPaste() + { + //Did the user press control this frame? + if(GetKeyDown(KeyCode.LeftControl) || GetKeyDown(KeyCode.RightControl)) + { + copyPasteMode = true; + } + //Did the user release control this frame? + else if(GetKeyUp(KeyCode.LeftControl) || GetKeyUp(KeyCode.RightControl)) + { + copyPasteMode = false; + return false; + } + + //What if the user was holding ctrl while tabbing in? + if(!copyPasteMode + && (GetKey(KeyCode.LeftControl) || GetKeyDown(KeyCode.RightControl))) + copyPasteMode = true; + + if(copyPasteMode && GetKeyUp(KeyCode.V)) + { + SetToInput(GUIUtility.systemCopyBuffer); + return true; + } + + return false; + } + + public string GetValues() => currentInputString; + + public void SetIndex(int i) => index = Math.Min(Math.Max(i, 0), maxDigits - 1); + +#if ENABLE_INPUT_SYSTEM + static Key KeyFromKeyCode(KeyCode keyCode) + { + for (KeyCode alphabetCode = KeyCode.A; alphabetCode <= KeyCode.Z; ++alphabetCode) + { + if (keyCode != alphabetCode) + { + continue; + } + + int offset = alphabetCode - KeyCode.A; + return Key.A + offset; + } + + switch(keyCode) + { + case KeyCode.Alpha0: + case KeyCode.Keypad0: + return Key.Digit0; + case KeyCode.Alpha1: + case KeyCode.Keypad1: + return Key.Digit1; + case KeyCode.Alpha2: + case KeyCode.Keypad2: + return Key.Digit2; + case KeyCode.Alpha3: + case KeyCode.Keypad3: + return Key.Digit3; + case KeyCode.Alpha4: + case KeyCode.Keypad4: + return Key.Digit4; + case KeyCode.Alpha5: + case KeyCode.Keypad5: + return Key.Digit5; + case KeyCode.Alpha6: + case KeyCode.Keypad6: + return Key.Digit6; + case KeyCode.Alpha7: + case KeyCode.Keypad7: + return Key.Digit7; + case KeyCode.Alpha8: + case KeyCode.Keypad8: + return Key.Digit8; + case KeyCode.Alpha9: + case KeyCode.Keypad9: + return Key.Digit9; + case KeyCode.LeftControl: + return Key.LeftCtrl; + case KeyCode.RightControl: + return Key.RightCtrl; + case KeyCode.KeypadEnter: + case KeyCode.Return: + return Key.Enter; + case KeyCode.Backspace: + return Key.Backspace; + default: + // No suitable replacement found, return a slash so we ignore it + return Key.Slash; + } + } +#endif + + public static bool GetKeyDown(KeyCode keyCode) + { +#if ENABLE_INPUT_SYSTEM + Key key = KeyFromKeyCode(keyCode); + if(Keyboard.current != null && key != Key.Slash) + { + return Keyboard.current[key].wasPressedThisFrame; + } +#else + return Input.GetKeyDown(keyCode); +#endif + return false; + } + + public static bool GetKeyUp(KeyCode keyCode) + { +#if ENABLE_INPUT_SYSTEM + Key key = KeyFromKeyCode(keyCode); + if(Keyboard.current != null && key != Key.Slash) + { + return Keyboard.current[key].wasReleasedThisFrame; + } +#else + return Input.GetKeyUp(keyCode); +#endif + return false; + } + + public static bool GetKey(KeyCode keyCode) + { +#if ENABLE_INPUT_SYSTEM + Key key = KeyFromKeyCode(keyCode); + if (Keyboard.current != null && key != Key.Slash) + { + return Keyboard.current[key].isPressed; + } +#else + return Input.GetKey(keyCode); +#endif + return false; + } + + public static float GetAxis(string axis) + { +#if ENABLE_INPUT_SYSTEM + if (axis == "Mouse ScrollWheel" && Mouse.current != null) + { + return Mouse.current.scroll.ReadValue().y; + } +#else + return Input.GetAxis(axis); +#endif + return 0.0f; + } + } +} diff --git a/UI/Scripts/Panels/5Digits/KeyInput5Digits.cs.meta b/UI/Scripts/Panels/5Digits/KeyInput5Digits.cs.meta new file mode 100644 index 0000000..51d1220 --- /dev/null +++ b/UI/Scripts/Panels/5Digits/KeyInput5Digits.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f4fa286f8f64f14a9025c7d4b595986 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/5Digits/KeyInput5DigitsUi.cs b/UI/Scripts/Panels/5Digits/KeyInput5DigitsUi.cs new file mode 100644 index 0000000..e15688b --- /dev/null +++ b/UI/Scripts/Panels/5Digits/KeyInput5DigitsUi.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using ModIO.Util; +using TMPro; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace ModIOBrowser.Implementation +{ + + public class KeyInput5DigitsUi : SelfInstancingMonoSingleton + { + public KeyInput5Digits keyInput5Digits; + public List texts = new List(); + public List indicators = new List(); + public TMP_Text instructionText; + + private int MaxDigits => texts.Count; + private Action onCancel; + private Action onContinue; + + internal Translation AuthenticationPanelInfoTextTranslation = null; + + protected override void Awake() + { + base.Awake(); + keyInput5Digits.Setup(); + } + + /// + /// Sets up the KeyInput5DigitsUi for use. + /// + /// Triggers when the user continues with a code. + /// The email the user has input + /// Triggers when the cancel button is called. + public void Open(Action onContinue, string email, Action onCancel) + { + this.onCancel = onCancel; + this.onContinue = onContinue; + + gameObject.SetActive(true); + EventSystem.current.SetSelectedGameObject(null); + + keyInput5Digits.NewSession(MaxDigits, Render, Continue); + SelectionManager.Instance.SelectView(UiViews.Input5Digits); + + Translation.Get(AuthenticationPanelInfoTextTranslation, + "Please check your email {email} for your 5 digit code to verify it below.", + instructionText, + email); + } + + #region UI frontend + public void SetIndex(int i) + { + keyInput5Digits.SetIndex(i); + OnIndexChange(i); + } + + public void ContinueButton() + { + Continue(keyInput5Digits.GetValues()); + } + + public void CancelButton() + { + Close(); + onCancel?.Invoke(); + } + #endregion + + private void Close() + { + gameObject.SetActive(false); + keyInput5Digits.EndSession(); + } + + private void Continue(string s) + { + Close(); + onContinue?.Invoke(s); + } + + private void Render(string renderString) + { + texts.ForEach(t => t.text = ""); + foreach(var i in Enumerable.Range(0, Mathf.Min(MaxDigits, renderString.Length))) + texts[i].text = renderString[i].ToString(); + + OnIndexChange(keyInput5Digits.index); + } + + + private void OnIndexChange(int i) + { + indicators.ForEach(x => x.gameObject.SetActive(false)); + indicators[i].gameObject.SetActive(true); + } + + #region Editor Helper Methods + [ExposeMethodInEditor] + public void TestOpen() => Open(s => Debug.Log(s + " continued"), "bro", () => Debug.Log("cancelled")); + #endregion + } +} diff --git a/UI/Scripts/Panels/5Digits/KeyInput5DigitsUi.cs.meta b/UI/Scripts/Panels/5Digits/KeyInput5DigitsUi.cs.meta new file mode 100644 index 0000000..baf0c59 --- /dev/null +++ b/UI/Scripts/Panels/5Digits/KeyInput5DigitsUi.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3261082e64b114043b4bc3643e221a44 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/Authentication.cs b/UI/Scripts/Panels/Authentication.cs new file mode 100644 index 0000000..2dec885 --- /dev/null +++ b/UI/Scripts/Panels/Authentication.cs @@ -0,0 +1,344 @@ +using ModIO; +using ModIO.Util; +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + public partial class Authentication : SelfInstancingMonoSingleton + { + public bool IsAuthenticated = false; + + internal static string optionalThirdPartyEmailAddressUsedForAuthentication; + + internal static PlayStationEnvironment PSEnvironment; + + internal static Browser.RetrieveAuthenticationCodeDelegate getSteamAppTicket; + internal static Browser.RetrieveAuthenticationCodeDelegate getXboxToken; + internal static Browser.RetrieveAuthenticationCodeDelegate getSwitchToken; + internal static Browser.RetrieveAuthenticationCodeDelegate getPlayStationAuthCode; + internal static Browser.RetrieveAuthenticationCodeDelegate getEpicAuthCode; + internal static Browser.RetrieveAuthenticationCodeDelegate getGogAuthCode; + + + public UserProfile currentUserProfile; + public TermsOfUse LastReceivedTermsOfUse; + public string privacyPolicyURL; + public string termsOfUseURL; + + public UserPortal currentAuthenticationPortal = UserPortal.None; + + #region Send Request + public void GetTermsOfUse() + { + AuthenticationPanels.Instance.OpenPanel_Waiting(); + ModIOUnity.GetTermsOfUse(ReceiveTermsOfUse); + } + public void SendEmail() + { + AuthenticationPanels.Instance.OpenPanel_Waiting(); + ModIOUnity.RequestAuthenticationEmail(AuthenticationPanels.Instance.AuthenticationPanelEmailField.text, EmailSent); + } + + public void SubmitAuthenticationCode() + { + AuthenticationPanels.Instance.OpenPanel_Waiting(); + string code = ""; + foreach(var input in AuthenticationPanels.Instance.AuthenticationPanelCodeFields) + { + code += input.text; + } + ModIOUnity.SubmitEmailSecurityCode(code, CodeSubmitted); + } + #endregion + + #region Third Party + + public void SubmitGogAuthenticationRequest() + { + AuthenticationPanels.Instance.OpenPanel_Waiting(); + + getGogAuthCode((token) => + { + MonoDispatcher.Instance.Run(() => + { + if(string.IsNullOrEmpty(token)) + { + currentAuthenticationPortal = UserPortal.None; + AuthenticationPanels.Instance.OpenPanel_Problem("We were unable to validate your credentials with the mod.io server."); + return; + } + + ModIOUnity.AuthenticateUserViaGOG(token, + optionalThirdPartyEmailAddressUsedForAuthentication, + LastReceivedTermsOfUse.hash, + delegate (Result result) + { + ThirdPartyAuthenticationSubmitted(result, UserPortal.GOG); + }); + }); + }); + } + + public void SubmitEpicAuthenticationRequest() + { + AuthenticationPanels.Instance.OpenPanel_Waiting(); + + getEpicAuthCode((token) => + { + MonoDispatcher.Instance.Run(() => + { + if(string.IsNullOrEmpty(token)) + { + currentAuthenticationPortal = UserPortal.None; + AuthenticationPanels.Instance.OpenPanel_Problem("We were unable to validate your credentials with the mod.io server."); + return; + } + + ModIOUnity.AuthenticateUserViaEpic(token, + optionalThirdPartyEmailAddressUsedForAuthentication, + LastReceivedTermsOfUse.hash, + delegate (Result result) + { + ThirdPartyAuthenticationSubmitted(result, UserPortal.EpicGamesStore); + }); + }); + }); + } + + public void SubmitSteamAuthenticationRequest() + { + AuthenticationPanels.Instance.OpenPanel_Waiting(); + + getSteamAppTicket.Invoke((appTicket) => + { + MonoDispatcher.Instance.Run(() => + { + if(string.IsNullOrEmpty(appTicket)) + { + currentAuthenticationPortal = UserPortal.None; + AuthenticationPanels.Instance.OpenPanel_Problem("We were unable to validate your credentials with the mod.io server."); + return; + } + + ModIOUnity.AuthenticateUserViaSteam(appTicket, + optionalThirdPartyEmailAddressUsedForAuthentication, + LastReceivedTermsOfUse.hash, + delegate (Result result) + { + ThirdPartyAuthenticationSubmitted(result, UserPortal.Steam); + }); + }); + }); + } + + public void SubmitXboxAuthenticationRequest() + { + AuthenticationPanels.Instance.OpenPanel_Waiting(); + + getXboxToken((token) => + { + MonoDispatcher.Instance.Run(() => + { + if(string.IsNullOrEmpty(token)) + { + currentAuthenticationPortal = UserPortal.None; + AuthenticationPanels.Instance.OpenPanel_Problem("We were unable to validate your credentials with the mod.io server."); + return; + } + + ModIOUnity.AuthenticateUserViaXbox(token, + optionalThirdPartyEmailAddressUsedForAuthentication, + LastReceivedTermsOfUse.hash, + delegate (Result result) + { + ThirdPartyAuthenticationSubmitted(result, UserPortal.XboxLive); + }); + }); + }); + } + + public void SubmitSwitchAuthenticationRequest() + { + AuthenticationPanels.Instance.OpenPanel_Waiting(); + + getSwitchToken((token) => + { + MonoDispatcher.Instance.Run(() => + { + if(string.IsNullOrEmpty(token)) + { + currentAuthenticationPortal = UserPortal.None; + AuthenticationPanels.Instance.OpenPanel_Problem("We were unable to validate your credentials with the mod.io server."); + return; + } + + ModIOUnity.AuthenticateUserViaSwitch(token, + optionalThirdPartyEmailAddressUsedForAuthentication, + LastReceivedTermsOfUse.hash, + delegate (Result result) + { + ThirdPartyAuthenticationSubmitted(result, UserPortal.Nintendo); + }); + }); + }); + } + + internal void SubmitPlayStationAuthenticationRequest() + { + AuthenticationPanels.Instance.OpenPanel_Waiting(); + + getPlayStationAuthCode((authCode) => + { + MonoDispatcher.Instance.Run(() => + { + if(string.IsNullOrEmpty(authCode)) + { + currentAuthenticationPortal = UserPortal.None; + AuthenticationPanels.Instance.OpenPanel_Problem("We were unable to validate your credentials with the mod.io server."); + return; + } + + ModIOUnity.AuthenticateUserViaPlayStation(authCode, + optionalThirdPartyEmailAddressUsedForAuthentication, + LastReceivedTermsOfUse.hash, PSEnvironment, + delegate (Result result) + { + ThirdPartyAuthenticationSubmitted(result, UserPortal.PlayStationNetwork); + }); + }); + }); + } + + #endregion + + #region misc ui + public void Close() => AuthenticationPanels.Instance.Close(); + + public void HyperLinkToTOS() => AuthenticationPanels.Instance.HyperLinkToTOS(); + + public void HyperLinkToPrivacyPolicy() => AuthenticationPanels.Instance.HyperLinkToPrivacyPolicy(); + + void Logout() + { + if(ModIOUnity.LogOutCurrentUser().Succeeded()) + { + Avatar.Instance.Avatar_Main.gameObject.SetActive(false); + IsAuthenticated = false; + Close(); + } + else + { + // TODO inform the user if this failed (Which really shouldn't ever fail) + } + } + #endregion + + #region Recieve Response + internal void EmailSent(Result result) + { + if(result.Succeeded()) + { + AuthenticationPanels.Instance.OpenPanel_Code(); + } + else + { + if(result.IsInvalidEmailAddress()) + { + + AuthenticationPanels.Instance.OpenPanel_Problem( + "That does not appear to be a valid email. Please check your email address and try again.", + "Invalid email address", + AuthenticationPanels.Instance.OpenPanel_Email); + } + else + { + AuthenticationPanels.Instance.OpenPanel_Problem( + "Make sure you entered a valid email address and that you are still connected to the internet before trying again.", + "Something went wrong", + AuthenticationPanels.Instance.OpenPanel_Email); + } + } + } + + internal void ReceiveTermsOfUse(ResultAnd resultAndTermsOfUse) + { + if(resultAndTermsOfUse.result.Succeeded()) + { + CacheTermsOfUseAndLinks(resultAndTermsOfUse.value); + AuthenticationPanels.Instance.OpenPanel_TermsOfUse(resultAndTermsOfUse.value.termsOfUse); + } + else + { + AuthenticationPanels.Instance.OpenPanel_Problem( + "Unable to connect to the mod.io server. Please check your internet connection before retrying.", + "Something went wrong", + Close); + } + } + + public void CodeSubmitted(Result result) + { + if(result.Succeeded()) + { + AuthenticationPanels.Instance.OpenPanel_Complete(); + ModIOUnity.FetchUpdates(delegate { }); + ModIOUnity.EnableModManagement(Mods.ModManagementEvent); + if(Details.IsOn()) + { + Details.Instance.UpdateSubscribeButtonText(); + } + } + else + { + if(result.IsInvalidSecurityCode()) + { + AuthenticationPanels.Instance.OpenPanel_Problem( + "The code that you entered did not match the one sent to the email address you provided. Please check you entered the code correctly.", + "Invalid code", + AuthenticationPanels.Instance.OpenPanel_Code); + } + else + { + AuthenticationPanels.Instance.OpenPanel_Problem(); + } + } + } + + void CacheTermsOfUseAndLinks(TermsOfUse TOS) + { + LastReceivedTermsOfUse = TOS; + foreach(var link in TOS.links) + { + if(link.name == "Terms of Use") + { + termsOfUseURL = link.url; + } + else if(link.name == "Privacy Policy") + { + privacyPolicyURL = link.url; + } + } + } + + void ThirdPartyAuthenticationSubmitted(Result result, UserPortal authenticationPortal) + { + if(result.Succeeded()) + { + currentAuthenticationPortal = authenticationPortal; + AuthenticationPanels.Instance.OpenPanel_Complete(); + ModIOUnity.FetchUpdates(delegate { }); + ModIOUnity.EnableModManagement(Mods.ModManagementEvent); + if(Details.IsOn()) + { + Details.Instance.UpdateSubscribeButtonText(); + } + } + else + { + currentAuthenticationPortal = UserPortal.None; + AuthenticationPanels.Instance.OpenPanel_Problem("We were unable to validate your credentials with the mod.io server."); + } + } + #endregion + } +} diff --git a/UI/Scripts/Panels/Authentication.cs.meta b/UI/Scripts/Panels/Authentication.cs.meta new file mode 100644 index 0000000..5d3807c --- /dev/null +++ b/UI/Scripts/Panels/Authentication.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2d591f4a445334a4ca7a10feeeac4e6c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/Authentication.meta b/UI/Scripts/Panels/Authentication.meta new file mode 100644 index 0000000..1df0aeb --- /dev/null +++ b/UI/Scripts/Panels/Authentication.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1ecc077e1f520442ad53862da9717e5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/Authentication/AuthenticationPanels.cs b/UI/Scripts/Panels/Authentication/AuthenticationPanels.cs new file mode 100644 index 0000000..d4d311f --- /dev/null +++ b/UI/Scripts/Panels/Authentication/AuthenticationPanels.cs @@ -0,0 +1,719 @@ +using System; +using System.Collections; +using ModIO; +using ModIO.Util; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + public class AuthenticationPanels : SelfInstancingMonoSingleton + { + + internal Translation BrowserFeaturedSubscribeTranslation = null; + internal Translation BrowserAuthenticationPanelTitle = null; + internal Translation BrowserAuthenticationPanelInfo = null; + internal Translation AuthenticationPanelBackButtonTextTranslation = null; + internal Translation AuthenticationPanelInfoTextTranslation = null; + internal Translation AuthenticationPanelTitleTextTranslation = null; + + [Header("Authentication Panel")] + [SerializeField] public GameObject AuthenticationPanel; + [SerializeField] public GameObject AuthenticationMainPanel; + [SerializeField] public GameObject AuthenticationPanelWaitingForResponseAnimation; + [SerializeField] public GameObject AuthenticationPanelEnterEmail; + [SerializeField] public GameObject AuthenticationPanelLogo; + [SerializeField] public TMP_InputField AuthenticationPanelEmailField; + [SerializeField] public GameObject AuthenticationPanelEnterCode; + [SerializeField] public TMP_InputField[] AuthenticationPanelCodeFields; + [SerializeField] public TMP_InputField AuthenticationPanelHiddenInputField; + [SerializeField] public Button AuthenticationPanelConnectViaSteamButton; + [SerializeField] public Button AuthenticationPanelConnectViaEpicButton; + [SerializeField] public Button AuthenticationPanelConnectViaGOGButton; + [SerializeField] public Button AuthenticationPanelConnectViaXboxButton; + [SerializeField] public Button AuthenticationPanelConnectViaSwitchButton; + [SerializeField] public Button AuthenticationPanelConnectViaPlayStationButton; + [SerializeField] public Button AuthenticationPanelConnectViaEmailButton; + [SerializeField] public Button AuthenticationPanelBackButton; + [SerializeField] public TMP_Text AuthenticationPanelBackButtonText; + [SerializeField] public Button AuthenticationPanelAgreeButton; + [SerializeField] public Button AuthenticationPanelSendCodeButton; + [SerializeField] public Button AuthenticationPanelSubmitButton; + [SerializeField] public Button AuthenticationPanelCompletedButton; + [SerializeField] public Button AuthenticationPanelLogoutButton; + [SerializeField] public Button AuthenticationPanelTOSButton; + [SerializeField] public Button AuthenticationPanelPrivacyPolicyButton; + [SerializeField] public Button AuthenticationPanelCancelButton; + [SerializeField] public GameObject AuthenticationPanelTermsOfUseLinks; + [SerializeField] public TMP_Text AuthenticationPanelTitleText; + [SerializeField] public TMP_Text AuthenticationPanelInfoText; + + Action authenticationMethodAfterAgreeingToTheTOS; + + public Authentication auth; + + //Used by buttons + public void Close() + { + AuthenticationPanel.SetActive(false); + SelectionManager.Instance.SelectPreviousView(); + } + + void Logout() + { + if(ModIOUnity.LogOutCurrentUser().Succeeded()) + { + Avatar.Instance.Avatar_Main.gameObject.SetActive(false); + Authentication.Instance.IsAuthenticated = false; + Close(); + } + else + { + // TODO inform the user if this failed (Which really shouldn't ever fail) + } + } + + public void Open() + { + HideAllPanels(); + + AuthenticationPanel.SetActive(true); + AuthenticationMainPanel.SetActive(true); + SelectionManager.Instance.SelectView(UiViews.AuthPanel); + + if(!SkippedIntoEmailConnectionPanel()) + { + OpenConnectionTypePanel(); + } + } + + bool SkippedIntoEmailConnectionPanel() + { + if(Authentication.getSteamAppTicket == null + && Authentication.getXboxToken == null + && Authentication.getSwitchToken == null + && Authentication.getPlayStationAuthCode == null) + { + Authentication.Instance.GetTermsOfUse(); + authenticationMethodAfterAgreeingToTheTOS = OpenPanel_Email; + + return true; + } + + return false; + } + + void OpenConnectionTypePanel() + { + AuthenticationPanelTitleText.gameObject.SetActive(true); + + AuthenticationPanelLogo.SetActive(true); + Translation.Get(BrowserAuthenticationPanelTitle, "Authentication", AuthenticationPanelTitleText); + + AuthenticationPanelInfoText.gameObject.SetActive(true); + Translation.Get(BrowserAuthenticationPanelInfo, + "mod.io is a 3rd party utility that provides access to a mod workshop. Choose how you wish to be authenticated.", + AuthenticationPanelInfoText); + + AuthenticationPanelBackButton.gameObject.SetActive(true); + AuthenticationPanelBackButton.onClick.RemoveAllListeners(); + AuthenticationPanelBackButton.onClick.AddListener(Close); + + AuthenticationPanelConnectViaEmailButton.gameObject.SetActive(true); + AuthenticationPanelConnectViaEmailButton.onClick.RemoveAllListeners(); + AuthenticationPanelConnectViaEmailButton.onClick.AddListener(() => + { + Authentication.Instance.GetTermsOfUse(); + authenticationMethodAfterAgreeingToTheTOS = OpenPanel_Email; + }); + + // Selection + InputNavigation.Instance.Select(AuthenticationPanelConnectViaEmailButton); + + //-----------------------------------------------------------------------------------// + // THIRD PARTY AUTHENTICATION // + //-----------------------------------------------------------------------------------// + Selectable thirdPartyOptionSelectable = null; + + if(Authentication.getGogAuthCode != null) + { + AuthenticationPanelConnectViaGOGButton.gameObject.SetActive(true); + AuthenticationPanelConnectViaGOGButton.onClick.RemoveAllListeners(); + AuthenticationPanelConnectViaGOGButton.onClick.AddListener(() => + { + Authentication.Instance.GetTermsOfUse(); + authenticationMethodAfterAgreeingToTheTOS = Authentication.Instance.SubmitGogAuthenticationRequest; + }); + thirdPartyOptionSelectable = AuthenticationPanelConnectViaGOGButton; + + InputNavigation.Instance.Select(AuthenticationPanelConnectViaGOGButton); + } + else if(Authentication.getEpicAuthCode != null) + { + AuthenticationPanelConnectViaEpicButton.gameObject.SetActive(true); + AuthenticationPanelConnectViaEpicButton.onClick.RemoveAllListeners(); + AuthenticationPanelConnectViaEpicButton.onClick.AddListener(() => + { + Authentication.Instance.GetTermsOfUse(); + authenticationMethodAfterAgreeingToTheTOS = Authentication.Instance.SubmitEpicAuthenticationRequest; + }); + thirdPartyOptionSelectable = AuthenticationPanelConnectViaEpicButton; + + InputNavigation.Instance.Select(AuthenticationPanelConnectViaEpicButton); + } + else if(Authentication.getSteamAppTicket != null) + { + AuthenticationPanelConnectViaSteamButton.gameObject.SetActive(true); + AuthenticationPanelConnectViaSteamButton.onClick.RemoveAllListeners(); + AuthenticationPanelConnectViaSteamButton.onClick.AddListener(() => + { + Authentication.Instance.GetTermsOfUse(); + authenticationMethodAfterAgreeingToTheTOS = Authentication.Instance.SubmitSteamAuthenticationRequest; + }); + thirdPartyOptionSelectable = AuthenticationPanelConnectViaSteamButton; + + InputNavigation.Instance.Select(AuthenticationPanelConnectViaSteamButton); + } + else if(Authentication.getXboxToken != null) + { + AuthenticationPanelConnectViaXboxButton.gameObject.SetActive(true); + AuthenticationPanelConnectViaXboxButton.onClick.RemoveAllListeners(); + AuthenticationPanelConnectViaXboxButton.onClick.AddListener(() => + { + Authentication.Instance.GetTermsOfUse(); + authenticationMethodAfterAgreeingToTheTOS = Authentication.Instance.SubmitXboxAuthenticationRequest; + }); + thirdPartyOptionSelectable = AuthenticationPanelConnectViaXboxButton; + + InputNavigation.Instance.Select(AuthenticationPanelConnectViaXboxButton); + } + else if(Authentication.getSwitchToken != null) + { + AuthenticationPanelConnectViaSwitchButton.gameObject.SetActive(true); + AuthenticationPanelConnectViaSwitchButton.onClick.RemoveAllListeners(); + AuthenticationPanelConnectViaSwitchButton.onClick.AddListener(() => + { + Authentication.Instance.GetTermsOfUse(); + authenticationMethodAfterAgreeingToTheTOS = Authentication.Instance.SubmitSwitchAuthenticationRequest; + }); + thirdPartyOptionSelectable = AuthenticationPanelConnectViaSwitchButton; + + InputNavigation.Instance.Select(AuthenticationPanelConnectViaSwitchButton); + } + else if(Authentication.getPlayStationAuthCode != null) + { + AuthenticationPanelConnectViaPlayStationButton.gameObject.SetActive(true); + AuthenticationPanelConnectViaPlayStationButton.onClick.RemoveAllListeners(); + AuthenticationPanelConnectViaPlayStationButton.onClick.AddListener(() => + { + Authentication.Instance.GetTermsOfUse(); + authenticationMethodAfterAgreeingToTheTOS = Authentication.Instance.SubmitPlayStationAuthenticationRequest; + }); + thirdPartyOptionSelectable = AuthenticationPanelConnectViaPlayStationButton; + + InputNavigation.Instance.Select(AuthenticationPanelConnectViaPlayStationButton); + } + + //-----------------------------------------------------------------------------------// + // EXPLICIT BUTTON NAVIGATION // + //-----------------------------------------------------------------------------------// + + // Back button + AuthenticationPanelBackButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnRight = thirdPartyOptionSelectable == null + ? AuthenticationPanelConnectViaEmailButton : thirdPartyOptionSelectable + }; + + // Third party Auth button (This button may or may not be present) + if(thirdPartyOptionSelectable != null) + { + thirdPartyOptionSelectable.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnLeft = AuthenticationPanelBackButton, + selectOnRight = AuthenticationPanelConnectViaEmailButton + }; + } + + // email auth button + AuthenticationPanelConnectViaEmailButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnLeft = thirdPartyOptionSelectable == null + ? AuthenticationPanelBackButton : thirdPartyOptionSelectable + }; + + } + + void HideAllPanels() + { + AuthenticationPanelTitleText.gameObject.SetActive(false); + AuthenticationPanelInfoText.gameObject.SetActive(false); + TextAlignmentOptions alignment = AuthenticationPanelInfoText.alignment; + alignment = TextAlignmentOptions.Left; + AuthenticationPanelInfoText.alignment = alignment; + Translation.Get(AuthenticationPanelBackButtonTextTranslation, "Back", AuthenticationPanelBackButtonText); + AuthenticationPanelEnterCode.SetActive(false); + AuthenticationPanelEnterEmail.SetActive(false); + AuthenticationPanelTermsOfUseLinks.SetActive(false); + AuthenticationPanelWaitingForResponseAnimation.SetActive(false); + AuthenticationPanelAgreeButton.gameObject.SetActive(false); + AuthenticationPanelBackButton.gameObject.SetActive(false); + AuthenticationPanelSubmitButton.gameObject.SetActive(false); + AuthenticationPanelSendCodeButton.gameObject.SetActive(false); + AuthenticationPanelConnectViaEmailButton.gameObject.SetActive(false); + AuthenticationPanelConnectViaSteamButton.gameObject.SetActive(false); + AuthenticationPanelConnectViaXboxButton.gameObject.SetActive(false); + AuthenticationPanelConnectViaSwitchButton.gameObject.SetActive(false); + AuthenticationPanelConnectViaPlayStationButton.gameObject.SetActive(false); + AuthenticationPanelCompletedButton.gameObject.SetActive(false); + AuthenticationPanelLogoutButton.gameObject.SetActive(false); + AuthenticationPanelLogo.SetActive(false); + AuthenticationPanelCancelButton.gameObject.SetActive(false); + } + + //Used by buttons + public void HyperLinkToTOS() + { + if(string.IsNullOrWhiteSpace(Authentication.Instance.termsOfUseURL) || Authentication.Instance.LastReceivedTermsOfUse.links == null) + { + WebBrowser.OpenWebPage("https://mod.io/terms"); + } + else + { + WebBrowser.OpenWebPage(Authentication.Instance.termsOfUseURL); + } + } + + //Used by buttons + public void HyperLinkToPrivacyPolicy() + { + if(string.IsNullOrWhiteSpace(Authentication.Instance.privacyPolicyURL) || Authentication.Instance.LastReceivedTermsOfUse.links == null) + { + WebBrowser.OpenWebPage("https://mod.io/privacy"); + } + else + { + WebBrowser.OpenWebPage(Authentication.Instance.privacyPolicyURL); + } + } + + public void OpenPanel_Waiting() + { + HideAllPanels(); + AuthenticationPanel.SetActive(true); + AuthenticationMainPanel.SetActive(false); + AuthenticationPanelWaitingForResponseAnimation.SetActive(true); + + AuthenticationPanelInfoText.gameObject.SetActive(true); + + Translation.Get(AuthenticationPanelInfoTextTranslation, "Waiting for response...", AuthenticationPanelInfoText); + TextAlignmentOptions alignment = AuthenticationPanelInfoText.alignment; + alignment = TextAlignmentOptions.Center; + AuthenticationPanelInfoText.alignment = alignment; + + //AuthenticationWaitingPanelBackButton.Select(); + } + + public void OpenPanel_Logout(Action onBack = null) + { + HideAllPanels(); + AuthenticationPanel.SetActive(true); + AuthenticationMainPanel.SetActive(true); + + AuthenticationPanelTitleText.gameObject.SetActive(true); + + Translation.Get(AuthenticationPanelTitleTextTranslation, "Are you sure you'd like to log out?", AuthenticationPanelTitleText); + AuthenticationPanelLogo.SetActive(true); + + AuthenticationPanelInfoText.gameObject.SetActive(true); + Translation.Get(AuthenticationPanelInfoTextTranslation, "LogOutMessage", AuthenticationPanelInfoText); + + AuthenticationPanelBackButton.gameObject.SetActive(true); + Translation.Get(AuthenticationPanelBackButtonTextTranslation, "Cancel", AuthenticationPanelBackButtonText); + + AuthenticationPanelBackButton.onClick.RemoveAllListeners(); + AuthenticationPanelBackButton.onClick.AddListener(delegate + { + Close(); + onBack?.Invoke(); + }); + + AuthenticationPanelBackButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnRight = AuthenticationPanelLogoutButton + }; + + AuthenticationPanelLogoutButton.gameObject.SetActive(true); + AuthenticationPanelLogoutButton.onClick.RemoveAllListeners(); + AuthenticationPanelLogoutButton.onClick.AddListener(Logout); + + AuthenticationPanelLogoutButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnLeft = AuthenticationPanelBackButton + }; + + SelectionManager.Instance.SelectView(UiViews.AuthPanel_LogOut); + + LayoutRebuilder.ForceRebuildLayoutImmediate(AuthenticationPanelInfoText.transform as RectTransform); + LayoutRebuilder.ForceRebuildLayoutImmediate(AuthenticationPanel.transform as RectTransform); + } + + public void OpenPanel_Problem(string problemTranslationKey = null, string titleTranslationKey = null, Action onBack = null) + { + titleTranslationKey = titleTranslationKey ?? "Something went wrong!"; + problemTranslationKey = problemTranslationKey ?? "We were unable to connect to the mod.io server. Check you have a stable internet connection and try again."; + + HideAllPanels(); + AuthenticationPanel.SetActive(true); + AuthenticationMainPanel.SetActive(true); + + AuthenticationPanelTitleText.gameObject.SetActive(true); + Translation.Get(AuthenticationPanelTitleTextTranslation, titleTranslationKey, AuthenticationPanelTitleText); + + AuthenticationPanelInfoText.gameObject.SetActive(true); + Translation.Get(AuthenticationPanelInfoTextTranslation, problemTranslationKey, AuthenticationPanelInfoText); + + AuthenticationPanelCancelButton.gameObject.SetActive(true); + + AuthenticationPanelBackButton.gameObject.SetActive(true); + AuthenticationPanelBackButton.onClick.RemoveAllListeners(); + if(onBack == null) + { + onBack = Close; + } + AuthenticationPanelBackButton.onClick.AddListener(delegate { onBack(); }); + + AuthenticationPanelCancelButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnLeft = AuthenticationPanelBackButton + }; + AuthenticationPanelBackButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnRight = AuthenticationPanelCancelButton + }; + + InputNavigation.Instance.Select(AuthenticationPanelBackButton); + } + + public void OpenPanel_TermsOfUse() + => OpenPanel_TermsOfUse(null); + + public void OpenPanel_TermsOfUse(string TOS = null) + { + HideAllPanels(); + AuthenticationPanel.SetActive(true); + AuthenticationMainPanel.SetActive(true); + AuthenticationPanelTermsOfUseLinks.SetActive(true); + + AuthenticationPanelTitleText.gameObject.SetActive(true); + + Translation.Get(AuthenticationPanelTitleTextTranslation, "Terms of use", AuthenticationPanelTitleText); + + AuthenticationPanelInfoText.gameObject.SetActive(true); + + if(TOS != null) + { + AuthenticationPanelInfoText.text = TOS; + } + + AuthenticationPanelBackButton.gameObject.SetActive(true); + AuthenticationPanelBackButton.onClick.RemoveAllListeners(); + AuthenticationPanelBackButton.onClick.AddListener(Close); + + AuthenticationPanelBackButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnRight = AuthenticationPanelAgreeButton, + selectOnUp = AuthenticationPanelTOSButton + }; + + AuthenticationPanelAgreeButton.gameObject.SetActive(true); + AuthenticationPanelAgreeButton.onClick.RemoveAllListeners(); + // TODO go to either steam or email auth next + AuthenticationPanelAgreeButton.onClick.AddListener(delegate { authenticationMethodAfterAgreeingToTheTOS(); }); + + AuthenticationPanelAgreeButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnLeft = AuthenticationPanelBackButton, + selectOnUp = AuthenticationPanelPrivacyPolicyButton + }; + + InputNavigation.Instance.Select(AuthenticationPanelAgreeButton); + } + + public void OpenPanel_Email() + { + HideAllPanels(); + AuthenticationPanel.SetActive(true); + AuthenticationMainPanel.SetActive(true); + + AuthenticationPanelEnterEmail.SetActive(true); + AuthenticationPanelEmailField.text = ""; + + AuthenticationPanelEmailField.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnDown = AuthenticationPanelSendCodeButton + }; + + AuthenticationPanelTitleText.gameObject.SetActive(true); + Translation.Get(AuthenticationPanelTitleTextTranslation, "Email authentication", AuthenticationPanelTitleText); + + AuthenticationPanelInfoText.gameObject.SetActive(false); + + AuthenticationPanelBackButton.gameObject.SetActive(true); + AuthenticationPanelBackButton.onClick.RemoveAllListeners(); + AuthenticationPanelBackButton.onClick.AddListener(OpenPanel_TermsOfUse); + + AuthenticationPanelBackButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnRight = AuthenticationPanelSendCodeButton, + selectOnUp = AuthenticationPanelEmailField + }; + + AuthenticationPanelSendCodeButton.gameObject.SetActive(true); + AuthenticationPanelSendCodeButton.onClick.RemoveAllListeners(); + AuthenticationPanelSendCodeButton.onClick.AddListener(Authentication.Instance.SendEmail); + + AuthenticationPanelSendCodeButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnLeft = AuthenticationPanelBackButton, + selectOnUp = AuthenticationPanelEmailField, + selectOnRight = AuthenticationPanelCancelButton + }; + + AuthenticationPanelCancelButton.gameObject.SetActive(true); + AuthenticationPanelCancelButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnLeft = AuthenticationPanelSendCodeButton, + selectOnUp = AuthenticationPanelEmailField + }; + + InputNavigation.Instance.Select(AuthenticationPanelEmailField); + } + + public void OpenPanel_Code() + { + HideAllPanels(); + + var newKeyInput = false; + +#if UNITY_STANDALONE || UNITY_EDITOR + newKeyInput = true; + //just making sure the code is readable & compile-able +#endif + if(newKeyInput) + { + KeyInput5DigitsUi.Instance.Open( + code => + { + this.OpenPanel_Waiting(); + ModIOUnity.SubmitEmailSecurityCode(code, Authentication.Instance.CodeSubmitted); + }, + AuthenticationPanelEmailField.text, + OpenPanel_Email); + } + else + { + OpenPanel_CodeSentNoticeForVirtualKeyboardUser(); + } + } + + /// + /// This brings up a notice telling the user their code has been sent to the provided email. + /// Pressing 'Continue' will then close the panel and bring up the Virtual Keyboard to + /// input the 5 digit code. + /// + void OpenPanel_CodeSentNoticeForVirtualKeyboardUser() + { + HideAllPanels(); + AuthenticationPanel.SetActive(true); + AuthenticationMainPanel.SetActive(true); + + AuthenticationPanelTitleText.gameObject.SetActive(true); + Translation.Get(AuthenticationPanelTitleTextTranslation, "Code sent", AuthenticationPanelTitleText); + + AuthenticationPanelInfoText.gameObject.SetActive(true); + Translation.Get(AuthenticationPanelInfoTextTranslation, "Please check your email {email} for your 5 digit code to verify it below.", AuthenticationPanelInfoText, AuthenticationPanelEmailField.text); + + AuthenticationPanelBackButton.gameObject.SetActive(true); + AuthenticationPanelBackButton.onClick.RemoveAllListeners(); + + Translation.Get(AuthenticationPanelBackButtonTextTranslation, "Enter code", AuthenticationPanelBackButtonText); + + AuthenticationPanelBackButton.onClick.AddListener(SelectHiddenInputFieldForVirtualKeyboardUser); + + AuthenticationPanelBackButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit + }; + + InputNavigation.Instance.Select(AuthenticationPanelBackButton); + } + + /// + /// This selects the hidden input field which should then automatically open the virtual + /// keyboard. No other panel will be visible when this method is invoked until the input + /// field has been edited. (If the virtual keyboard doesnt show up, pressing any key should + /// continue the dialog) + /// + void SelectHiddenInputFieldForVirtualKeyboardUser() + { + HideAllPanels(); + AuthenticationPanel.SetActive(true); + AuthenticationMainPanel.SetActive(false); + AuthenticationPanelHiddenInputField.Select(); + } + + /// + /// This is called when the hidden input field (for controller use only) has been edited. + /// The hidden input field is used solely for inputting the 5 digit code on controllers. + /// + public void OnEndEditHiddenInput() + { + OpenPanel_Waiting(); + ModIOUnity.SubmitEmailSecurityCode(AuthenticationPanelHiddenInputField.text, Authentication.Instance.CodeSubmitted); + } + + // void OpenPanel_Code_Old() + // { + // + // AuthenticationPanel.SetActive(true); + // AuthenticationMainPanel.SetActive(true); + // AuthenticationPanelEnterCode.SetActive(true); + // for(int i = 0; i < AuthenticationPanelCodeFields.Length; i++) + // { + // if(i == 0) + // { + // InputNavigation.Instance.Select(AuthenticationPanelCodeFields[i]); + // } + // AuthenticationPanelCodeFields[i].onValueChanged.RemoveAllListeners(); + // AuthenticationPanelCodeFields[i].text = ""; + // if(i == AuthenticationPanelCodeFields.Length - 1) + // { + // int previous = i == 0 ? 0 : i - 1; + // AuthenticationPanelCodeFields[i].onValueChanged.AddListener((fieldText) => + // CodeDigitFieldOnValueChangeBehaviour(AuthenticationPanelCodeFields[previous], AuthenticationPanelSubmitButton, fieldText)); + // } + // else + // { + // int next = i + 1; + // int previous = i == 0 ? 0 : i - 1; + // AuthenticationPanelCodeFields[i].onValueChanged.AddListener((fieldText) => + // CodeDigitFieldOnValueChangeBehaviour(AuthenticationPanelCodeFields[previous], AuthenticationPanelCodeFields[next], fieldText)); + // } + // } + // + // AuthenticationPanelTitleText.gameObject.SetActive(true); + // Translation.Get(AuthenticationPanelTitleTextTranslation, "Email authentication", AuthenticationPanelTitleText); + // + // AuthenticationPanelInfoText.gameObject.SetActive(true); + // Translation.Get(AuthenticationPanelInfoTextTranslation, + // "Please check your email {email} for your 5 digit code to verify it below.", + // AuthenticationPanelInfoText, + // AuthenticationPanelEmailField.text); + // + // AuthenticationPanelBackButton.gameObject.SetActive(true); + // AuthenticationPanelBackButton.onClick.RemoveAllListeners(); + // AuthenticationPanelBackButton.onClick.AddListener(OpenPanel_Email); + // + // AuthenticationPanelBackButton.navigation = new Navigation + // { + // mode = Navigation.Mode.Explicit, + // selectOnRight = AuthenticationPanelSubmitButton + // }; + // + // AuthenticationPanelSubmitButton.gameObject.SetActive(true); + // AuthenticationPanelSubmitButton.onClick.RemoveAllListeners(); + // AuthenticationPanelSubmitButton.onClick.AddListener(Authentication.Instance.SubmitAuthenticationCode); + // + // AuthenticationPanelSubmitButton.navigation = new Navigation + // { + // mode = Navigation.Mode.Explicit, + // selectOnLeft = AuthenticationPanelBackButton + // }; + // } + + void CodeDigitFieldOnValueChangeBehaviour(Selectable previous, Selectable next, string field) + { + // This would be the result of using CTRL + V on the first field + if(field.Length == 5) + { + // Iterate over the field string and set each input field's text to each character + for(int i = 0; i < AuthenticationPanelCodeFields.Length && i < field.Length; i++) + { + AuthenticationPanelCodeFields[i].SetTextWithoutNotify(field[i].ToString()); + } + // Set the final selection change on the next frame + StartCoroutine(NextFrameSelectionChange(AuthenticationPanelSubmitButton)); + } + // This is the block used for a regular single digit input into the field + else if(field.Length < 2) + { + if(string.IsNullOrEmpty(field)) + { + InputNavigation.Instance.Select(previous); + } + else + { + InputNavigation.Instance.Select(next); + } + } + } + + /// + /// This is used because of a strange Unity behaviour with Selectable.Select() and the way + /// it is being used with the copy/paste support. If Select() is called, then ny other + /// consecutive calls made on the same frame seem to fail, hence this coroutine. + /// + /// + IEnumerator NextFrameSelectionChange(Selectable selectable) + { + yield return null; + InputNavigation.Instance.Select(selectable); + } + + public void OpenPanel_Complete() + { + Authentication.Instance.IsAuthenticated = true; + + HideAllPanels(); + AuthenticationPanel.SetActive(true); + AuthenticationMainPanel.SetActive(true); + + AuthenticationPanelTitleText.gameObject.SetActive(true); + Translation.Get(AuthenticationPanelTitleTextTranslation, "Authentication completed", AuthenticationPanelTitleText); + + AuthenticationPanelInfoText.gameObject.SetActive(true); + Translation.Get(AuthenticationPanelInfoTextTranslation, "You are now connected to the mod.io browser. You can now subscribe to mods to use in your game and track them in your Collection.", AuthenticationPanelInfoText); + + AuthenticationPanelCompletedButton.gameObject.SetActive(true); + + AuthenticationPanelCompletedButton.navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + }; + + // Update the user avatar display + Avatar.Instance.SetupUser(); + + // Refresh list items in home view (such as subscribed badge etc) + Home.Instance.RefreshModListItems(); + + //SelectionManager.Instance.SelectView(UiViews.AuthPanel_Complete); + InputNavigation.Instance.Select(AuthenticationPanelCompletedButton); + } + } +} diff --git a/UI/Scripts/Panels/Authentication/AuthenticationPanels.cs.meta b/UI/Scripts/Panels/Authentication/AuthenticationPanels.cs.meta new file mode 100644 index 0000000..19c104b --- /dev/null +++ b/UI/Scripts/Panels/Authentication/AuthenticationPanels.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2c4cf586272b55a4497783f1478c1c6b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/Authentication/Avatar.cs b/UI/Scripts/Panels/Authentication/Avatar.cs new file mode 100644 index 0000000..23042eb --- /dev/null +++ b/UI/Scripts/Panels/Authentication/Avatar.cs @@ -0,0 +1,132 @@ +using System.Threading.Tasks; +using ModIO; +using ModIO.Util; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + + public class Avatar : SelfInstancingMonoSingleton + { + [SerializeField] public Image Avatar_Main; + [SerializeField] public Image AvatarDownloadBar; + + [Header("Platform Avatar Icons")] + [SerializeField] public Image PlatformIcon_Main; + [SerializeField] public Image PlatformIcon_DownloadQueue; + [SerializeField] public Sprite switchAvatar; + [SerializeField] public Sprite SteamAvatar; + [SerializeField] public Sprite XboxAvatar; + [SerializeField] public Sprite PlayStationAvatar; + + private async Task GetSprite(UserPortal currentAuthenticationPortal, UserProfile currentUserProfile) + { + switch(currentAuthenticationPortal) + { + case UserPortal.Nintendo: + return switchAvatar; + + case UserPortal.Steam: + return SteamAvatar; + + case UserPortal.XboxLive: + return XboxAvatar; + + case UserPortal.PlayStationNetwork: + return PlayStationAvatar; + } + + currentUserProfile = await GetCurrentUser(currentUserProfile); + var sprite = await DownloadSprite(currentUserProfile.avatar_50x50); + return sprite; + } + + public void SetupUser() => + SetupUser(Authentication.Instance.currentAuthenticationPortal, + Authentication.Instance.currentUserProfile); + + private async void SetupUser(UserPortal currentAuthenticationPortal, UserProfile currentUserProfile) + { + var sprite = await GetSprite(currentAuthenticationPortal, currentUserProfile); + + if (sprite == null) + { + ShowDefaultAvatar(); + return; + } + + if(currentAuthenticationPortal == UserPortal.None) + { + PlatformFree(sprite); + } + else + { + Platform(sprite); + } + } + + void ShowDefaultAvatar() + { + Avatar_Main.gameObject.SetActive(false); + DownloadQueue.Instance.Avatar_DownloadQueue.gameObject.SetActive(false); + PlatformIcon_Main.transform.parent.gameObject.SetActive(false); + PlatformIcon_DownloadQueue.transform.parent.gameObject.SetActive(false); + } + + private void PlatformFree(Sprite sprite) + { + // turn on main avatar image + Avatar_Main.gameObject.SetActive(true); + DownloadQueue.Instance.Avatar_DownloadQueue.gameObject.SetActive(true); + + // turn off platform icon + PlatformIcon_Main.transform.parent.gameObject.SetActive(false); + PlatformIcon_DownloadQueue.transform.parent.gameObject.SetActive(false); + + // change sprites + Avatar_Main.sprite = sprite; + DownloadQueue.Instance.Avatar_DownloadQueue.sprite = sprite; + } + + private void Platform(Sprite sprite) + { + // turn off main avatar icons + Avatar_Main.gameObject.SetActive(false); + DownloadQueue.Instance.Avatar_DownloadQueue.gameObject.SetActive(false); + + // turn on platform icon + PlatformIcon_Main.transform.parent.gameObject.SetActive(true); + PlatformIcon_DownloadQueue.transform.parent.gameObject.SetActive(true); + + // change sprites + PlatformIcon_Main.sprite = sprite; + PlatformIcon_DownloadQueue.sprite = sprite; + } + + internal async Task GetCurrentUser(UserProfile currentUserProfile) + { + ResultAnd resultAnd = await ModIOUnityAsync.GetCurrentUser(); + + return resultAnd.result.Succeeded() ? resultAnd.value : currentUserProfile; + } + + private async Task DownloadSprite(DownloadReference reference) + { + ResultAnd resultTexture = await ModIOUnityAsync.DownloadTexture(reference); + + if(resultTexture.result.Succeeded()) + { + Sprite sprite = Sprite.Create(resultTexture.value, + new Rect(0, 0, resultTexture.value.width, resultTexture.value.height), Vector2.zero); + + return sprite; + } + + return null; + } + + internal void UpdateDownloadProgressBar(ProgressHandle handle) + => AvatarDownloadBar.fillAmount = handle == null ? 0f : handle.Progress; + } +} diff --git a/UI/Scripts/Panels/Authentication/Avatar.cs.meta b/UI/Scripts/Panels/Authentication/Avatar.cs.meta new file mode 100644 index 0000000..ade6fca --- /dev/null +++ b/UI/Scripts/Panels/Authentication/Avatar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 245d14b54e4a2b24d8caf0f965aabcb6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/Collection.cs b/UI/Scripts/Panels/Collection.cs new file mode 100644 index 0000000..1f477c9 --- /dev/null +++ b/UI/Scripts/Panels/Collection.cs @@ -0,0 +1,565 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using ModIO; +using ModIO.Util; + +namespace ModIOBrowser.Implementation +{ + public class Collection : SelfInstancingMonoSingleton + { + [Header("Collection Panel")] + [SerializeField] + public GameObject CollectionPanel; + [SerializeField] TMP_Text CollectionPanelTitle; + [SerializeField] TMP_InputField CollectionPanelSearchField; + [SerializeField] GameObject CollectionPanelModListItem; + [SerializeField] RectTransform CollectionPanelContentParent; + [SerializeField] Scrollbar CollectionPanelContentScrollBar; + [SerializeField] Transform CollectionPanelModListItemParent; + [SerializeField] TMP_Text CollectionPanelCheckForUpdatesText; + [SerializeField] Button CollectionPanelCheckForUpdatesButton; + [SerializeField] MultiTargetDropdown CollectionPanelFirstDropDownFilter; + [SerializeField] MultiTargetDropdown CollectionPanelSecondDropDownFilter; + [SerializeField] Image CollectionPanelHeaderBackground; + [SerializeField] Selectable defaultCollectionSelection; + internal CollectionModListItem currentSelectedCollectionListItem; + public SubscribedMod[] subscribedMods = Array.Empty(); + public InstalledMod[] installedMods = Array.Empty(); + + public List pendingSubscriptions = new List(); + public HashSet pendingUnsubscribes = new HashSet(); + public HashSet notEnoughSpaceForTheseMods = new HashSet(); + + private Dictionary modStatus = new Dictionary(); + private bool checkingForUpdates = false; + private IEnumerator collectionHeaderTransition; + private float collectionHeaderLastAlphaTarget = -1; + + [Header("Uninstall Confirmation")] + [SerializeField] + public GameObject uninstallConfirmationPanel; + [SerializeField] TMP_Text uninstallConfirmationPanelModName; + [SerializeField] TMP_Text uninstallConfirmationPanelFileSize; + ModProfile currentSelectedModForUninstall; + + internal Translation CollectionPanelCheckForUpdatesTextTranslation = null; + internal Translation CollectionPanelTitleTranslation = null; + + public static bool IsOn() => Instance != null && Instance.CollectionPanel != null && Instance.CollectionPanel.activeSelf; + + // TODO This region is for the Uninstall confirmation dialog, and needs to be merged to the reusable dialog instead +#region Confirm Unsubscibe / Uninstall + public void CloseUninstallConfirmation() + { + uninstallConfirmationPanel.SetActive(false); + SelectionManager.Instance.SelectView(UiViews.Collection); + } + + public void OpenUninstallConfirmation(ModProfile profile) + { + uninstallConfirmationPanelModName.text = profile.name; + uninstallConfirmationPanelFileSize.text = ""; // TODO need to add file size + currentSelectedModForUninstall = profile; + uninstallConfirmationPanel.SetActive(true); + SelectionManager.Instance.SelectView(UiViews.ConfirmUninstall); + } + + public void ConfirmUninstall() + { + CloseUninstallConfirmation(); + if (Collection.Instance.IsSubscribed(currentSelectedModForUninstall.id)) + { + Mods.UnsubscribeFromEvent(currentSelectedModForUninstall); + } + else + { + ModIOUnity.ForceUninstallMod(currentSelectedModForUninstall.id); + } + RefreshList(); + } + +#endregion + + public void Open() + { + Navigating.GoToPanel(CollectionPanel); + RefreshList(); + NavBar.Instance.UpdateNavbarSelection(); + SelectionManager.Instance.SelectView(UiViews.Collection); + } + + void Refresh() + { + Collection.Instance.CacheLocalSubscribedModStatuses(); + + modStatus.Clear(); + foreach(SubscribedMod mod in subscribedMods) + { + modStatus.Add(mod.modProfile.id, Utility.GetModStatusAsString(mod)); + } + foreach(InstalledMod mod in installedMods) + { + if (!modStatus.ContainsKey(mod.modProfile.id)) + { + modStatus.Add(mod.modProfile.id, "Installed"); + } + else + { + modStatus[mod.modProfile.id] = "Installed"; + } + } + foreach(ModProfile mod in pendingSubscriptions) + { + if(!modStatus.ContainsKey(mod.id)) + { + modStatus.Add(mod.id, "Pending..."); + } + else + { + modStatus[mod.id] = "Pending..."; + } + } + } + + public void RefreshList() + { + // TODO refresh existing list items so we dont lose/change selection (feels jarring) and + // TODO cull no longer required list items + // TODO only hide/enable items we need to, dont do a complete refresh + // TODO dynamically load collection on scroll so we dont try and populate more than a hundred items at a time + + if(checkingForUpdates) + { + Translation.Get(CollectionPanelCheckForUpdatesTextTranslation, "Checking...", CollectionPanelCheckForUpdatesText); + } + else + { + Translation.Get(CollectionPanelCheckForUpdatesTextTranslation, "Check for updates", CollectionPanelCheckForUpdatesText); + } + + Refresh(); + + //--------------------------------------------------------------------------------// + // GET FILTER SETTINGS // + //--------------------------------------------------------------------------------// + // check the first dropdown filter to decide if we show/hide subs/unsubs + bool showSubscribed = true; + bool showUnsubscribed = false; + switch(CollectionPanelFirstDropDownFilter.value) + { + case 1: + showUnsubscribed = true; + showSubscribed = false; + break; + case 2: + showUnsubscribed = true; + break; + } + + //--------------------------------------------------------------------------------// + // GET MODS TO DISPLAY // + //--------------------------------------------------------------------------------// + List allMods = new List(); + + if (showSubscribed) + { + foreach(SubscribedMod mod in subscribedMods) + { + if(pendingUnsubscribes.Contains(mod.modProfile.id)) + { + continue; + } + allMods.Add(new CollectionProfile(mod.modProfile, true, mod.enabled, 1, modStatus[mod.modProfile.id])); + } + foreach(ModProfile mod in pendingSubscriptions) + { + allMods.Add(new CollectionProfile(mod, true, true, 1, modStatus[mod.id])); + } + } + if (showUnsubscribed) + { + // cache the pending subs in ModIds for an easier comparison + List pendingSubs = pendingSubscriptions.Select(mod => mod.id).ToList(); + + foreach(InstalledMod mod in installedMods) + { + // If we have subscribed to this, dont display it as an 'Unsubscribed' mod + if(pendingSubs.Contains(mod.modProfile.id) || mod.subscribedUsers.Count < 1) + { + continue; + } + allMods.Add(new CollectionProfile(mod.modProfile, false, false, mod.subscribedUsers.Count, modStatus[mod.modProfile.id])); + } + } + + string accentHashColor = ColorUtility.ToHtmlStringRGBA(Browser.Instance.colorScheme.GetSchemeColor(ColorSetterType.Highlight)); + + if(subscribedMods == null) + { + Translation.Get(CollectionPanelTitleTranslation, "Collection", CollectionPanelTitle); + } + else + { + Translation.Get(CollectionPanelTitleTranslation, + "Collection ({subscribedAndPending.Count})", + CollectionPanelTitle, $"{accentHashColor}", $"{allMods.Count}"); + } + + + //--------------------------------------------------------------------------------// + // SORT AND FILTER // + //--------------------------------------------------------------------------------// + + // Sort the lists of mods according to dropdown filters + switch(CollectionPanelSecondDropDownFilter.value) + { + case 0: + allMods.Sort(CompareModProfilesAlphabetically); + break; + case 1: + allMods.Sort(CompareModProfilesByFileSize); + break; + } + + + //--------------------------------------------------------------------------------// + // DISPLAY MODS // + //--------------------------------------------------------------------------------// + + // Hide the existing collection items + ListItem.HideListItems(); + + bool hasSelection = false; + string searchPhrase = CollectionPanelSearchField.text; + CollectionModListItem lastItem = null; + + // GET LIST ITEMS TO SETUP + foreach(var mod in allMods) + { + // check if the search phrase omits this mod id + if(mod.name.IndexOf(searchPhrase, StringComparison.OrdinalIgnoreCase) < 0) + { + continue; + } + + ListItem li = ListItem.GetListItem(CollectionPanelModListItem, CollectionPanelModListItemParent, Browser.Instance.colorScheme); + + if(li is CollectionModListItem item) + { + li.Setup(mod); + li.SetViewportRestraint(CollectionPanelContentParent, null); + if(!hasSelection) + { + hasSelection = true; + InputNavigation.Instance.Select(li.selectable); + SetExplicitDownNavigationForTopRowButtons(li.selectable); + item.SetNavigationAbove(CollectionPanelCheckForUpdatesButton); + } + + lastItem?.ConnectNavigationToItemBelow(item); + lastItem = item; + } + } + + if(!hasSelection) + { + InputNavigation.Instance.Select(defaultCollectionSelection); + } + + LayoutRebuilder.ForceRebuildLayoutImmediate(CollectionPanelModListItemParent as RectTransform); + } + + /// + /// This is to circumvent an odd behaviour when pressing 'down' to move the selection was + /// jumping to the third, fourth or fifth list item in the collection panel list. + /// + /// This should be the first item in the collection list + void SetExplicitDownNavigationForTopRowButtons(Selectable selectable) + { + // updates button + Navigation updatesButton = CollectionPanelCheckForUpdatesButton.navigation; + updatesButton.selectOnDown = selectable; + CollectionPanelCheckForUpdatesButton.navigation = updatesButton; + + // first dropdown + Navigation firstDropdown = CollectionPanelFirstDropDownFilter.navigation; + firstDropdown.selectOnDown = selectable; + CollectionPanelFirstDropDownFilter.navigation = firstDropdown; + + // second dropdown + Navigation secondDropdown = CollectionPanelSecondDropDownFilter.navigation; + secondDropdown.selectOnDown = selectable; + CollectionPanelSecondDropDownFilter.navigation = secondDropdown; + } + + public void OnScrollValueChange() + { + float targetAlpha = -1f; + + // Get the target alpha based on what the scrollbar value is + if(CollectionPanelContentScrollBar.value < 1f) + { + targetAlpha = CollectionPanelHeaderBackground.color.a == 1f ? targetAlpha : 1f; + } + else + { + targetAlpha = CollectionPanelHeaderBackground.color.a == 0f ? targetAlpha : 0f; + } + + // If the target alpha needs to change, start the transition coroutine here + if(targetAlpha != -1f && targetAlpha != collectionHeaderLastAlphaTarget) + { + collectionHeaderLastAlphaTarget = targetAlpha; + if(collectionHeaderTransition != null) + { + StopCoroutine(collectionHeaderTransition); + } + collectionHeaderTransition = ImageTransitions.Alpha(CollectionPanelHeaderBackground, targetAlpha); + StartCoroutine(collectionHeaderTransition); + } + } + + public void CheckForUpdates() + { + if(checkingForUpdates) + { + return; + } + Translation.Get(CollectionPanelCheckForUpdatesTextTranslation, "Checking...", CollectionPanelCheckForUpdatesText); + ModIOUnity.FetchUpdates(FinishedCheckingForUpdates); + checkingForUpdates = true; + } + + void FinishedCheckingForUpdates(Result result) + { + checkingForUpdates = false; + if(result.Succeeded()) + { + RefreshList(); + } + Translation.Get(CollectionPanelCheckForUpdatesTextTranslation, "Check for updates", CollectionPanelCheckForUpdatesText); + } + + public string GetModNameFromId(ModId id) + { + // Get the name of this mod + // check subscriptions + foreach(var mod in subscribedMods) + { + if(mod.modProfile.id == id) + { + return mod.modProfile.name; + } + } + // check pending subscriptions + foreach(var mod in pendingSubscriptions) + { + if(mod.id == id) + { + return mod.name; + } + } + return "A mod"; + } + + /// + /// This is used to get the installed and subscribed mods and cache them for use across the UI + /// + internal void CacheLocalSubscribedModStatuses() + { + // Get Subscribed Mods + SubscribedMod[] subs = ModIOUnity.GetSubscribedMods(out Result result); + if(subs == null) + { + subs = new SubscribedMod[0]; + } + subscribedMods = subs; + + // Get Installed Mods + InstalledMod[] installs = ModIOUnity.GetSystemInstalledMods(out result); + if(result.Succeeded()) + { + installedMods = installs; + } + } + + internal bool IsSubscribed(ModId id) + { + return IsSubscribed(id, out SubscribedModStatus status); + } + + /// + /// This will check if the given modId is subscribed and will also return the status of the + /// specified mod, such as SubscribedModStatus.Installed + /// + /// The id of the mod to check + /// the out status of given modId + /// true if the mod is subscribed + internal bool IsSubscribed(ModId id, out SubscribedModStatus status) + { + if(subscribedMods == null) + { + Instance.CacheLocalSubscribedModStatuses(); + } + + foreach(var mid in pendingUnsubscribes) + { + if(mid == id) + { + status = SubscribedModStatus.None; + return false; + } + } + foreach(var m in subscribedMods) + { + if(m.modProfile.id == id) + { + status = m.status; + return true; + } + } + foreach(var m in pendingSubscriptions) + { + if(m.id == id) + { + status = SubscribedModStatus.WaitingToDownload; + return true; + } + } + + status = SubscribedModStatus.None; + return false; + } + + internal bool IsInstalled(ModId id) + { + if(installedMods == null) + { + CacheLocalSubscribedModStatuses(); + } + + foreach(var m in installedMods) + { + if(m.modProfile.id == id) + { + return true; + } + } + return false; + } + + internal bool GetSubscribedProfile(ModId id, out ModProfile profile) + { + if(subscribedMods == null) + { + Instance.CacheLocalSubscribedModStatuses(); + } + + foreach(var m in subscribedMods) + { + if(m.modProfile.id == id) + { + profile = m.modProfile; + return true; + } + } + foreach(var m in pendingSubscriptions) + { + if(m.id == id) + { + profile = m; + return true; + } + } + + profile = default; + return false; + } + + #region Comparer delegates for sorting a List via List.Sort() + static int CompareModProfilesAlphabetically(SubscribedMod A, SubscribedMod B) + { + return CompareModProfilesAlphabetically(A.modProfile, B.modProfile); + } + static int CompareModProfilesAlphabetically(InstalledMod A, InstalledMod B) + { + return CompareModProfilesAlphabetically(A.modProfile, B.modProfile); + } + static int CompareModProfilesAlphabetically(CollectionProfile A, CollectionProfile B) + { + return CompareModProfilesAlphabetically(A.modProfile, B.modProfile); + } + + static int CompareModProfilesAlphabetically(ModProfile A, ModProfile B) + { + float valueOfA = 0; + float valueOfB = 0; + float depthMultiplier = 0; + int maxDepth = 10; + int depth = 0; + + foreach(char character in A.name) + { + if(depth >= maxDepth) + { + break; + } + depthMultiplier = depthMultiplier == 0 ? 1 : depthMultiplier + 100; + valueOfA += char.ToLower(character) / depthMultiplier; + depth++; + } + + depthMultiplier = 0; + depth = 0; + + foreach(char character in B.name) + { + if(depth >= maxDepth) + { + break; + } + depthMultiplier = depthMultiplier == 0 ? 1 : depthMultiplier + 100; + valueOfB += char.ToLower(character) / depthMultiplier; + depth++; + } + if(valueOfA > valueOfB) + { + return 1; + } + if(valueOfB > valueOfA) + { + return -1; + } + return 0; + } + + static int CompareModProfilesByFileSize(InstalledMod A, InstalledMod B) + { + return CompareModProfilesByFileSize(A.modProfile, B.modProfile); + } + + static int CompareModProfilesByFileSize(CollectionProfile A, CollectionProfile B) + { + return CompareModProfilesByFileSize(A.modProfile, B.modProfile); + } + + static int CompareModProfilesByFileSize(ModProfile A, ModProfile B) + { + if(A.archiveFileSize > B.archiveFileSize) + { + return -1; + } + if(A.archiveFileSize < B.archiveFileSize) + { + return 1; + } + return 0; + } + #endregion Comparer delegates for sorting a List via List.Sort() + } +} diff --git a/UI/Scripts/Panels/Collection.cs.meta b/UI/Scripts/Panels/Collection.cs.meta new file mode 100644 index 0000000..02431a2 --- /dev/null +++ b/UI/Scripts/Panels/Collection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 25058e2ef49af6545a955cef5bced6cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/Details.cs b/UI/Scripts/Panels/Details.cs new file mode 100644 index 0000000..3cb90aa --- /dev/null +++ b/UI/Scripts/Panels/Details.cs @@ -0,0 +1,598 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using ModIO; +using UnityEngine.EventSystems; +using ModIO.Util; + +namespace ModIOBrowser.Implementation +{ + public class Details : SelfInstancingMonoSingleton
+ { + + [Header("Mod Details Panel")] + [SerializeField] public GameObject ModDetailsPanel; + [SerializeField] + public RectTransform ModDetailsContentRect; + [SerializeField] GameObject ModDetailsGalleryLoadingAnimation; + [SerializeField] Image ModDetailsGalleryFailedToLoadIcon; + [SerializeField] Image[] ModDetailsGalleryImage; + [SerializeField] TMP_Text ModDetailsSubscribeButtonText; + [SerializeField] TMP_Text ModDetailsName; + [SerializeField] TMP_Text ModDetailsSummary; + [SerializeField] TMP_Text ModDetailsDescription; + [SerializeField] TMP_Text ModDetailsFileSize; + [SerializeField] TMP_Text ModDetailsLastUpdated; + [SerializeField] TMP_Text ModDetailsReleaseDate; + [SerializeField] TMP_Text ModDetailsSubscribers; + [SerializeField] TMP_Text ModDetailsCreatedBy; + [SerializeField] TMP_Text ModDetailsUpVotes; + [SerializeField] TMP_Text ModDetailsDownVotes; + [SerializeField] GameObject ModDetailsUpVoteActiveOverlay; + [SerializeField] GameObject ModDetailsDownVoteActiveOverlay; + [SerializeField] TMP_Text ModDetailsUpVotesActiveOverlayText; + [SerializeField] TMP_Text ModDetailsDownVotesActiveOverlayText; + [SerializeField] GameObject ModDetailsGalleryNavBar; + [SerializeField] Transform ModDetailsGalleryNavButtonParent; + [SerializeField] GameObject ModDetailsGalleryNavButtonPrefab; + [SerializeField] GameObject ModDetailsDownloadProgressDisplay; + [SerializeField] Image ModDetailsDownloadProgressFill; + [SerializeField] TMP_Text ModDetailsDownloadProgressRemaining; + [SerializeField] TMP_Text ModDetailsDownloadProgressSpeed; + [SerializeField] TMP_Text ModDetailsDownloadProgressCompleted; + [SerializeField] + public SubscribedProgressTab ModDetailsProgressTab; + [SerializeField] + public GameObject ModDetailsScrollToggleGameObject; + bool galleryImageInUse; + Sprite[] ModDetailsGalleryImages; + bool[] ModDetailsGalleryImagesFailedToLoad; + int galleryPosition; + float galleryTransitionTime = 0.3f; + IEnumerator galleryTransition; + ModProfile currentModProfileBeingViewed; + IEnumerator downloadProgressUpdater; + ModRating currentAssumedRating = ModRating.None; + + internal Translation ModDetailsSubscribeButtonTextTranslation = null; + + //cached nav button list items + List _listItems = new List(); + + //The navigation button index that represents the position in the image gallery + int activateNavButtonIndex = 0; + + Coroutine _autoRotateImagesCoroutine; + + // We set this action from where the panel is opened so we can also set which panel to re-open when this details panel is closed + Action modDetailsOnCloseAction; + + // measuring the progress bar + ModId detailsModIdOfLastProgressUpdate = new ModId(-1); + float detailsProgressTimePassed = 0f; + float detailsProgressTimePassed_onLastTextUpdate = 0f; + + public static bool IsOn() => Instance != null && Instance.ModDetailsPanel != null && Instance.ModDetailsPanel.activeSelf; + + internal void Open(ModProfile profile, Action actionToInvokeWhenClosed) + { + ModDetailsProgressTab.Setup(profile); + + modDetailsOnCloseAction = actionToInvokeWhenClosed; + Navigating.GoToPanel(ModDetailsPanel); + SelectionManager.Instance.SelectView(UiViews.ModDetails); + Refresh(profile); + _autoRotateImagesCoroutine = StartCoroutine(AutoRotateImages()); + } + + public void Close() + { + ModDetailsPanel.SetActive(false); + modDetailsOnCloseAction?.Invoke(); + + ListItemsCleanup(); + StopCoroutine(_autoRotateImagesCoroutine); + + if(InputNavigation.Instance.mouseNavigation) + { + SelectionOverlayHandler.Instance.SetBrowserModListItemOverlayActive(false); + } + else if (modDetailsOnCloseAction == null) + { + SelectionManager.Instance.SelectPreviousView(); + } + else + { + modDetailsOnCloseAction.Invoke(); + } + } + + void Refresh(ModProfile profile) + { + currentModProfileBeingViewed = profile; + UpdateSubscribeButtonText(); + UpdateRatingButtons(); + ModDetailsGalleryLoadingAnimation.SetActive(true); + ModDetailsGalleryImage[0].color = Color.clear; + ModDetailsGalleryImage[1].color = Color.clear; + ModDetailsName.text = profile.name; + ModDetailsDescription.text = profile.description; + ModDetailsSummary.text = profile.summary; + ModDetailsFileSize.text = Utility.GenerateHumanReadableStringForBytes(profile.archiveFileSize); + ModDetailsLastUpdated.text = TranslationManager.Instance.SelectedLanguage.DateShort(profile.dateUpdated); + ModDetailsReleaseDate.text = TranslationManager.Instance.SelectedLanguage.DateShort(profile.dateLive); + ModDetailsCreatedBy.text = profile.creator.username; + ModDetailsSubscribers.text = Utility.GenerateHumanReadableNumber(profile.stats.subscriberTotal); + + int position = 0; + galleryPosition = 0; + ModDetailsGalleryImages = new Sprite[profile.galleryImages_640x360.Length + 1]; + ModDetailsGalleryImagesFailedToLoad = new bool[ModDetailsGalleryImages.Length]; + + + ListItem.HideListItems(); + + List images = new List(); + + images.Add(profile.logoImage_640x360); + images.AddRange(profile.galleryImages_640x360); + + ModDetailsGalleryNavBar.SetActive(images.Count > 1); + + foreach(var downloadReference in images) + { + int thisPosition = position; + position++; + + // if we have more than one image make pips for navigation + if(images.Count > 1) + { + ListItem li = ListItem.GetListItem(ModDetailsGalleryNavButtonPrefab, ModDetailsGalleryNavButtonParent, Browser.Instance.colorScheme); + li.Setup(delegate { this.OnNavButtonClicked(thisPosition); }); + _listItems.Add(li); + } + + var scopePosition = thisPosition; + Action> imageDownloaded = r => + { + if(r.result.Succeeded()) + { + QueueRunner.Instance.AddSpriteCreation(r.value, sprite => + { + if(ModDetailsGalleryImages.Length <= scopePosition) + { + return; + } + ModDetailsGalleryImages[scopePosition] = sprite; + if(scopePosition == galleryPosition) + { + ModDetailsGalleryFailedToLoadIcon.gameObject.SetActive(false); + ModDetailsGalleryLoadingAnimation.SetActive(false); + Image image = GetCurrentGalleryImageComponent(); + image.sprite = ModDetailsGalleryImages[scopePosition]; + image.color = Color.white; + } + }); + + //ModDetailsGalleryImages[thisPosition] = Sprite.Create(r.value, + // new Rect(Vector2.zero, new Vector2(r.value.width, r.value.height)), Vector2.zero); + + //if(thisPosition == galleryPosition) + //{ + // ModDetailsGalleryFailedToLoadIcon.gameObject.SetActive(false); + // ModDetailsGalleryLoadingAnimation.SetActive(false); + // Image image = GetCurrentGalleryImageComponent(); + // image.sprite = ModDetailsGalleryImages[thisPosition]; + // image.color = Color.white; + //} + } + else + { + ModDetailsGalleryImages[thisPosition] = null; + ModDetailsGalleryImagesFailedToLoad[thisPosition] = true; + + if(thisPosition == galleryPosition) + { + ModDetailsGalleryLoadingAnimation.SetActive(false); + ModDetailsGalleryFailedToLoadIcon.gameObject.SetActive(true); + Image image = GetCurrentGalleryImageComponent(); + image.sprite = null; + image.color = Browser.Instance.colorScheme.GetSchemeColor(ColorSetterType.Inactive3); + } + } + }; + + ModIOUnity.DownloadTexture(downloadReference, imageDownloaded); + } + ActivateButton(0); + + LayoutRebuilder.ForceRebuildLayoutImmediate(ModDetailsGalleryNavButtonParent as RectTransform); + + + LayoutRebuilder.ForceRebuildLayoutImmediate(ModDetailsName.transform.parent as RectTransform); + LayoutRebuilder.ForceRebuildLayoutImmediate(ModDetailsDescription.transform.parent as RectTransform); + LayoutRebuilder.ForceRebuildLayoutImmediate(ModDetailsDescription.transform.parent.transform.parent as RectTransform); + } + + public void SubscribeButtonPress() + { + if(!Authentication.Instance.IsAuthenticated) + { + Translation.Get(ModDetailsSubscribeButtonTextTranslation, "Log in to Subscribe", ModDetailsSubscribeButtonText); + Mods.SubscribeToEvent(currentModProfileBeingViewed, UpdateSubscribeButtonText); + } + else if(Collection.Instance.IsSubscribed(currentModProfileBeingViewed.id)) + { + // This isnt actually subscribed to 'yet' but we make the UI toggle straight away + Translation.Get(ModDetailsSubscribeButtonTextTranslation, "Subscribe", ModDetailsSubscribeButtonText); + Mods.UnsubscribeFromEvent(currentModProfileBeingViewed, UpdateSubscribeButtonText); + } + else + { + Translation.Get(ModDetailsSubscribeButtonTextTranslation, "Unsubscribe", ModDetailsSubscribeButtonText); + Mods.SubscribeToEvent(currentModProfileBeingViewed, UpdateSubscribeButtonText); + } + + ModDetailsProgressTab.Setup(currentModProfileBeingViewed); + + LayoutRebuilder.ForceRebuildLayoutImmediate(ModDetailsSubscribeButtonText.transform.parent as RectTransform); + } + + public void RatePositiveButtonPress() + { + if(!Authentication.Instance.IsAuthenticated) + { + AuthenticationPanels.Instance.Open(); + return; + } + + // If the rating is already positive we want to undo it + ModRating ratingToGive = currentAssumedRating == ModRating.Positive + ? ModRating.None : ModRating.Positive; + + UpdateRatingButtons(ratingToGive); + Mods.RateEvent(currentModProfileBeingViewed.id, ratingToGive); + } + + public void RateNegativeButtonPress() + { + if(!Authentication.Instance.IsAuthenticated) + { + AuthenticationPanels.Instance.Open(); + return; + } + + // If the rating is already negative we want to undo it + ModRating ratingToGive = currentAssumedRating == ModRating.Negative + ? ModRating.None : ModRating.Negative; + + UpdateRatingButtons(ratingToGive); + Mods.RateEvent(currentModProfileBeingViewed.id, ratingToGive); + } + + public void ReportButtonPress() + { + Selectable selectionOnClose = EventSystem.current.currentSelectedGameObject.GetComponent(); + if (selectionOnClose == null) + { + //selectionOnClose = SelectionManager.Instance.GetSelectableForView(UiViews.ModDetails); + //This won't work - it'll back to the previous view which will override any behaviour set up + //What is the intended behaviour when backing from report in mod details? + //Am I missing something? + } + Reporting.Instance.Open(currentModProfileBeingViewed, selectionOnClose); + } + + /// + /// We use this to update the colors on the ratings button based on the user's current ratings + /// + public void UpdateRatingButtons() + { + ModIOUnity.GetCurrentUserRatingFor(currentModProfileBeingViewed.id, UpdateRatingButtons); + } + + public void UpdateRatingButtons(ResultAnd response) + { + if (response.result.Succeeded()) + { + UpdateRatingButtons(response.value); + } + else + { + UpdateRatingButtons(ModRating.None); + } + } + + public void UpdateRatingButtons(ModRating rating) + { + currentAssumedRating = rating; + + ModDetailsUpVotes.text = Utility.GenerateHumanReadableNumber(currentModProfileBeingViewed.stats.ratingsPositive); + ModDetailsDownVotes.text = Utility.GenerateHumanReadableNumber(currentModProfileBeingViewed.stats.ratingsNegative); + ModDetailsUpVotesActiveOverlayText.text = Utility.GenerateHumanReadableNumber(currentModProfileBeingViewed.stats.ratingsPositive); + ModDetailsDownVotesActiveOverlayText.text = Utility.GenerateHumanReadableNumber(currentModProfileBeingViewed.stats.ratingsNegative); + + switch(rating) + { + case ModRating.Positive: + ModDetailsDownVoteActiveOverlay.SetActive(false); + ModDetailsUpVoteActiveOverlay.SetActive(true); + break; + case ModRating.Negative: + ModDetailsDownVoteActiveOverlay.SetActive(true); + ModDetailsUpVoteActiveOverlay.SetActive(false); + break; + case ModRating.None: + ModDetailsDownVoteActiveOverlay.SetActive(false); + ModDetailsUpVoteActiveOverlay.SetActive(false); + break; + } + } + + public void UpdateSubscribeButtonText() + { + if(!Authentication.Instance.IsAuthenticated) + { + Translation.Get(ModDetailsSubscribeButtonTextTranslation, "Log in to Subscribe", ModDetailsSubscribeButtonText); + } + else if(Collection.Instance.IsSubscribed(currentModProfileBeingViewed.id)) + { + Translation.Get(ModDetailsSubscribeButtonTextTranslation, "Unsubscribe", ModDetailsSubscribeButtonText); + } + else + { + Translation.Get(ModDetailsSubscribeButtonTextTranslation, "Subscribe", ModDetailsSubscribeButtonText); + } + + ModIOUnity.IsAuthenticated((r) => + { + if(!r.Succeeded()) + { + Authentication.Instance.IsAuthenticated = false; + Translation.Get(ModDetailsSubscribeButtonTextTranslation, "Log in to Subscribe", ModDetailsSubscribeButtonText); + } + }); + } + + /// + /// This should get called frame by frame for an accurate progress estimate + /// + /// + public void UpdateDownloadProgress(ProgressHandle handle) + { + ModDetailsProgressTab.UpdateProgress(handle); + + if( handle == null || handle.modId != currentModProfileBeingViewed.id || handle.Completed) + { + ModDetailsDownloadProgressDisplay.SetActive(false); + return; + } + + if (!ModDetailsDownloadProgressDisplay.activeSelf) + { + ModDetailsDownloadProgressDisplay.SetActive(true); + } + if(detailsModIdOfLastProgressUpdate != handle.modId) + { + detailsModIdOfLastProgressUpdate = handle.modId; + } + + // progress bar fill amount + ModDetailsDownloadProgressFill.fillAmount = handle.Progress; + + if(handle.OperationType == ModManagementOperationType.Install) + { + ModDetailsDownloadProgressRemaining.text = TranslationManager.Instance.Get("Installing..."); + ModDetailsDownloadProgressCompleted.text = ""; + ModDetailsDownloadProgressSpeed.text = ""; + return; + } + + // TODO At some point add a smarter average for displaying total time remaining + // Remaining time text + if (detailsProgressTimePassed - detailsProgressTimePassed_onLastTextUpdate >= 1f || + detailsProgressTimePassed_onLastTextUpdate > detailsProgressTimePassed) + { + float denominator = handle.Progress == 0 ? 0.01f : handle.Progress; + float timeRemainingInSeconds = (detailsProgressTimePassed / denominator) - detailsProgressTimePassed; + + ModDetailsDownloadProgressRemaining.text = TranslationManager.Instance.Get("{seconds} remaining", $"{ Utility.GenerateHumanReadableTimeStringFromSeconds((int)timeRemainingInSeconds)}"); + ModDetailsDownloadProgressSpeed.text = TranslationManager.Instance.Get("{BytesPerSecond)}/s", Utility.GenerateHumanReadableStringForBytes(handle.BytesPerSecond)); + + if(Collection.Instance.GetSubscribedProfile(handle.modId, out ModProfile profile)) + { + TranslationManager.Instance.Get("{A} of {B}", + $"{ Utility.GenerateHumanReadableStringForBytes((long)(profile.archiveFileSize * handle.Progress))}", + $"{ Utility.GenerateHumanReadableStringForBytes(profile.archiveFileSize)}"); + } + else + { + ModDetailsDownloadProgressCompleted.text = "--"; + } + + detailsProgressTimePassed_onLastTextUpdate = detailsProgressTimePassed; + } + detailsProgressTimePassed += Time.deltaTime; + } + + public void GalleryImageTransition(bool showNext) + { + StopCoroutine(this._autoRotateImagesCoroutine); + if(showNext) + { + ShowNextGalleryImage(); + } + else + { + ShowPreviousGalleryImage(); + } + } + + internal void ShowNextGalleryImage() + { + int index = GetNextIndex(galleryPosition, ModDetailsGalleryImages.Length); + TransitionToDifferentGalleryImage(index); + ActivateButton(index); + } + + internal void ShowPreviousGalleryImage() + { + int index = GetPreviousIndex(galleryPosition, ModDetailsGalleryImages.Length); + TransitionToDifferentGalleryImage(index); + ActivateButton(index); + } + + void TransitionToDifferentGalleryImage(int index) + { + if(galleryTransition != null) + { + StopCoroutine(galleryTransition); + } + galleryTransition = TransitionGalleryImage(index); + StartCoroutine(galleryTransition); + } + + IEnumerator TransitionGalleryImage(int index) + { + galleryPosition = index; + if(index >= ModDetailsGalleryImages.Length) + { + // It's likely we haven't loaded the gallery images yet + yield break; + } + + Image next = GetNextGalleryImageComponent(); + Image current = GetCurrentGalleryImageComponent(); + + if(current.sprite == ModDetailsGalleryImages[index]) + { + // Stop the transition, we are already showing the gallery image we want to transition to + yield break; + } + + galleryImageInUse = !galleryImageInUse; + + next.sprite = ModDetailsGalleryImages[index]; + if(next.sprite == null) + { + ModDetailsGalleryFailedToLoadIcon.gameObject.SetActive(true); + next.color = Browser.Instance.colorScheme.GetSchemeColor(ColorSetterType.Inactive3); + } + else + { + ModDetailsGalleryFailedToLoadIcon.gameObject.SetActive(false); + next.color = Color.white; + } + + float time; + float timePassed = 0f; + Color colIn = next.color; + Color colFailedIcon = ModDetailsGalleryFailedToLoadIcon.color; + Color colOut = current.color; + colIn.a = 0f; + colFailedIcon.a = 0f; + + while(timePassed <= galleryTransitionTime) + { + time = timePassed / galleryTransitionTime; + + colIn.a = time; + colFailedIcon.a = time; + colOut.a = 1f - time; + + next.color = colIn; + ModDetailsGalleryFailedToLoadIcon.color = colFailedIcon; + current.color = colOut; + + yield return null; + timePassed += Time.deltaTime; + } + } + + Image GetCurrentGalleryImageComponent() + { + int current = galleryImageInUse ? 0 : 1; + return ModDetailsGalleryImage[current]; + } + + Image GetNextGalleryImageComponent() + { + int next = galleryImageInUse ? 1 : 0; + return ModDetailsGalleryImage[next]; + } + + //Selects a navigation button and deselects the previously selected button + void ActivateButton(int toggledIndex) + { + if(toggledIndex < _listItems.Count) + { + _listItems[activateNavButtonIndex].DeSelect(); + _listItems[toggledIndex].Select(); + activateNavButtonIndex = toggledIndex; + } + } + + void ListItemsCleanup() + { + if(_listItems.Count > activateNavButtonIndex) + _listItems[activateNavButtonIndex].DeSelect(); + activateNavButtonIndex = 0; + this._listItems.Clear(); + } + + IEnumerator AutoRotateImages() + { + while(true) + { + yield return new WaitForSecondsRealtime(3); + this.ShowNextGalleryImage(); + } + + // ReSharper disable once IteratorNeverReturns + } + + void OnNavButtonClicked(int position) + { + TransitionToDifferentGalleryImage(position); + ActivateButton(position); + StopCoroutine(this._autoRotateImagesCoroutine); + } + + #region Utility + + public static int GetPreviousIndex(int current, int length) + { + if(length == 0) + { + return 0; + } + + current -= 1; + if(current < 0) + { + current = length - 1; + } + return current; + } + + public static int GetNextIndex(int current, int length) + { + if(length == 0) + { + return 0; + } + + current += 1; + if(current >= length) + { + current = 0; + } + return current; + } + + #endregion + } +} diff --git a/UI/Scripts/Panels/Details.cs.meta b/UI/Scripts/Panels/Details.cs.meta new file mode 100644 index 0000000..d194358 --- /dev/null +++ b/UI/Scripts/Panels/Details.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b330b83a6dc559446b98678c77531b6e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/DownloadQueue.cs b/UI/Scripts/Panels/DownloadQueue.cs new file mode 100644 index 0000000..e3121ba --- /dev/null +++ b/UI/Scripts/Panels/DownloadQueue.cs @@ -0,0 +1,222 @@ +using ModIO; +using ModIO.Util; +using TMPro; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + public class DownloadQueue : SelfInstancingMonoSingleton + { + [Header("Download History Panel")] + [SerializeField] public GameObject DownloadQueuePanel; + [SerializeField] GameObject DownloadQueueCurrentProgressBar; + [SerializeField] TMP_Text DownloadQueueCurrentJobText; + [SerializeField] Image DownloadQueueCurrentProgressBarFill; + [SerializeField] TMP_Text DownloadQueueUsernameText; + [SerializeField] TMP_Text DownloadQueueCurrentModName; + [SerializeField] TMP_Text DownloadQueueCurrentDownloadedAmount; + [SerializeField] TMP_Text DownloadQueueCurrentDownloadSpeed; + [SerializeField] Button DownloadQueueCurrentUnsubscribeButton; + [SerializeField] Button DownloadQueueCurrentLogoutButton; + [SerializeField] Transform DownloadQueueList; + [SerializeField] RectTransform DownloadQueueListViewport; + [SerializeField] GameObject DownloadQueueListItem; + [SerializeField] GameObject DownloadQueueNoPendingNotice; + [SerializeField] GameObject DownloadQueueNoCurrentNotice; + [SerializeField] public Image Avatar_DownloadQueue; + ModProfile downloadQueueCurrentModProfileOfOperationInProgress; + + // This is set when the panel is opened and selected when closed + Selectable downloadQueueSelectionOnClose; + + internal Translation DownloadQueueCurrentJobTextTranslation = null; + + #region Mod Download History Panel + + /// + /// Use this to toggle the menu on or off. Used by the OnMenu input press. + /// TODO @Steve for consistency consider removing this method as it's not necessary + /// + internal void ToggleDownloadQueuePanel() + { + if(DownloadQueuePanel.activeSelf) + { + Close(); + } + else + { + // TODO this selection can sometimes fail, figure out why it would be null (not dire as we have a backup) + OpenDownloadQueuePanel(EventSystem.current.currentSelectedGameObject?.GetComponent()); + } + } + + internal void OpenDownloadQueuePanel(Selectable selectionOnClose = null) + { + downloadQueueSelectionOnClose = selectionOnClose ?? downloadQueueSelectionOnClose; + DownloadQueuePanel.SetActive(true); + RefreshDownloadHistoryPanel(); + SelectionManager.Instance.SelectView(UiViews.Downloads); + } + + public void Close() + { + DownloadQueuePanel.SetActive(false); + InputNavigation.Instance.Select(downloadQueueSelectionOnClose); + RefreshDownloadHistoryPanel(); + SelectionManager.Instance.SelectPreviousView(); + } + + /// + /// This will find mods that are subscribed but not installed and add a row for them in the + /// download queue list. It will also update the header/current mod being downloaded. + /// + internal void RefreshDownloadHistoryPanel() + { + DownloadQueueNoPendingNotice.SetActive(false); + DownloadQueueNoCurrentNotice.SetActive(false); + + // Username + DownloadQueueUsernameText.text = Authentication.Instance.currentUserProfile.portal_username + ?? Authentication.Instance.currentUserProfile.username; + + // Setup explicit navigation for current Unsubscibe button + Navigation mainUnsubscribeNavigation = DownloadQueueCurrentUnsubscribeButton.navigation; + mainUnsubscribeNavigation.mode = Navigation.Mode.Explicit; + mainUnsubscribeNavigation.selectOnUp = DownloadQueueCurrentLogoutButton; + mainUnsubscribeNavigation.selectOnLeft = null; + mainUnsubscribeNavigation.selectOnRight = null; + + bool pendingModsInQueue = false; + + ListItem.HideListItems(); + + Selectable lastListItemSelectable = null; + + foreach(SubscribedMod mod in Collection.Instance.subscribedMods) + { + if(mod.status == SubscribedModStatus.Installed || Collection.Instance.pendingUnsubscribes.Contains(mod.modProfile.id)) + { + continue; + } + if(Mods.CurrentModManagementOperationHandle?.modId == mod.modProfile.id) + { + continue; + } + + ListItem li = ListItem.GetListItem(DownloadQueueListItem, DownloadQueueList, Browser.Instance.colorScheme); + li.Setup(mod); + li.SetViewportRestraint(DownloadQueueList as RectTransform, DownloadQueueListViewport); + pendingModsInQueue = true; + + // Setup explicit navigation + Navigation navigation = li.selectable.navigation; + navigation.mode = Navigation.Mode.Explicit; + navigation.selectOnUp = null; + navigation.selectOnDown = null; + navigation.selectOnLeft = null; + navigation.selectOnRight = null; + + // First item in list + if(lastListItemSelectable == null) + { + navigation.selectOnUp = DownloadQueueCurrentUnsubscribeButton; + mainUnsubscribeNavigation.selectOnDown = li.selectable; + } + // every other list item + else + { + Navigation lastNavigation = lastListItemSelectable.navigation; + navigation.selectOnUp = lastListItemSelectable; + lastNavigation.selectOnDown = li.selectable; + lastListItemSelectable.navigation = lastNavigation; + } + + li.selectable.navigation = navigation; + lastListItemSelectable = li.selectable; + } + + // Set navigation settings now that list items have populated + DownloadQueueCurrentUnsubscribeButton.navigation = mainUnsubscribeNavigation; + + // If no mods are pending, show notice + if(!pendingModsInQueue) + { + DownloadQueueNoPendingNotice.SetActive(true); + } + + // Check the selection isn't lost on a de-activated button + if(!DownloadQueueCurrentUnsubscribeButton.gameObject.activeSelf) + { + InputNavigation.Instance.Select(DownloadQueueCurrentLogoutButton); + } + } + + public void UpdateDownloadQueueCurrentDownloadDisplay(ProgressHandle handle) + { + DownloadQueueNoCurrentNotice.SetActive(false); + + bool noModFound = true; + if(downloadQueueCurrentModProfileOfOperationInProgress.id != handle?.modId) + { + foreach(SubscribedMod mod in Collection.Instance.subscribedMods) + { + if(mod.modProfile.id == handle?.modId) + { + noModFound = false; + downloadQueueCurrentModProfileOfOperationInProgress = mod.modProfile; + break; + } + } + } + else + { + noModFound = false; + } + + if(noModFound) + { + DownloadQueueCurrentUnsubscribeButton.gameObject.SetActive(false); + DownloadQueueCurrentProgressBar.SetActive(false); + DownloadQueueNoCurrentNotice.SetActive(true); + return; + } + + if(handle.OperationType == ModManagementOperationType.Download) + { + Translation.Get(DownloadQueueCurrentJobTextTranslation, "Downloading", DownloadQueueCurrentJobText); + } + else + { + Translation.Get(DownloadQueueCurrentJobTextTranslation, "Installing", DownloadQueueCurrentJobText); + } + + DownloadQueueCurrentModName.text = downloadQueueCurrentModProfileOfOperationInProgress.name; + DownloadQueueCurrentDownloadSpeed.text = handle.OperationType == ModManagementOperationType.Download ? Utility.GenerateHumanReadableStringForBytes(handle.BytesPerSecond) : ""; + DownloadQueueCurrentDownloadedAmount.text = ""; // TODO filesize * progress + DownloadQueueCurrentProgressBarFill.fillAmount = handle.Progress; + DownloadQueueCurrentProgressBar.SetActive(true); + DownloadQueueCurrentUnsubscribeButton.gameObject.SetActive(true); + } + + public void UnsubscribeToCurrentDownloadQueueOperation() + { + Mods.UnsubscribeFromEvent(downloadQueueCurrentModProfileOfOperationInProgress); + RefreshDownloadHistoryPanel(); + } + + // TODO @Steve clearing user data has been failing for some reason, investigate + /// + /// This is the method attached to the logout button in the DownloadQueue panel + /// + public void LogoutButton() + { + ToggleDownloadQueuePanel(); + AuthenticationPanels.Instance.OpenPanel_Logout(delegate { OpenDownloadQueuePanel(); }); + } + + #endregion // Mod Download History Panel + + } +} diff --git a/UI/Scripts/Panels/DownloadQueue.cs.meta b/UI/Scripts/Panels/DownloadQueue.cs.meta new file mode 100644 index 0000000..76d5262 --- /dev/null +++ b/UI/Scripts/Panels/DownloadQueue.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 68b095dcaa56aa2469a0be20701e0251 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/Home.cs b/UI/Scripts/Panels/Home.cs new file mode 100644 index 0000000..0429e1a --- /dev/null +++ b/UI/Scripts/Panels/Home.cs @@ -0,0 +1,629 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using ModIO; +using ModIO.Util; + +namespace ModIOBrowser.Implementation +{ + public class Home : SelfInstancingMonoSingleton + { + [Header("Browse Panel")] + public GameObject BrowserPanel; + [SerializeField] Transform BrowserPanelContent; + [SerializeField] ModListRow BrowserPanelModListRow_HighestRated; + [SerializeField] ModListRow BrowserPanelModListRow_Trending; + [SerializeField] ModListRow BrowserPanelModListRow_MostPopular; + [SerializeField] ModListRow BrowserPanelModListRow_RecentlyAdded; + [SerializeField] Image BrowserPanelHeaderBackground; + [SerializeField] Scrollbar BrowserPanelContentScrollBar; + IEnumerator browserHeaderTransition; + float browserHeaderLastAlphaTarget = -1; + Dictionary> cachedModListItemsByRow = new Dictionary>(); + + [Header("Browse Panel Featured Set")] + [SerializeField] FeaturedModListItem[] featuredSlotListItems; + [SerializeField] RectTransform[] featuredSlotPositions; + [SerializeField] TMP_Text featuredSelectedName; + [SerializeField] TMP_Text featuredSelectedSubscribeButtonText; + [SerializeField] Transform featuredSelectedMoreOptionsButtonPosition; + [SerializeField] GameObject browserFeaturedSlotSelectionHighlightBorder; + [SerializeField] Image browserFeaturedSlotBackplate; + [SerializeField] GameObject browserFeaturedSlotInfo; + [SerializeField] GameObject featuredOptionsButtons; + [SerializeField] ScrollRect scrollRect; + internal bool isFeaturedItemSelected = false; + ModProfile[] featuredProfiles; + int featuredIndex; + + [Header("Settings")] + [SerializeField] Selectable browserFeaturedSlotSelection; + + public static bool IsOn() => Instance != null && Instance.BrowserPanel.activeSelf; + + internal Translation featuredSubscribeTranslation = null; + + /// + /// This is used internally when a panel wants to change back to the browser/home panel. + /// This is not used to open the entire UI for the first time, use OpenBrowser() instead. + /// + public void Open() + { + Navigating.GoToPanel(Instance.BrowserPanel); + SelectionManager.Instance.SelectView(UiViews.Browse); + NavBar.Instance.UpdateNavbarSelection(); + } + + /// + /// This is invoked when the current highlighted featured mod gets selected. This will open + /// the Mod details view and display more information about the specified mod. + /// + public void SelectFeaturedMod() + { + if(featuredProfiles == null || featuredProfiles.Length <= featuredIndex) + { + return; + } + Details.Instance.Open(featuredProfiles[featuredIndex], Open); + } + + + /// + /// This will open the context menu for the current highlighted featured mod 'more options' + /// + public void OpenMoreOptionsForFeaturedSlot() + { + if(Instance.featuredProfiles == null || Instance.featuredProfiles.Length == 0) + { + return; + } + + List options = new List(); + + // Add Vote up option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Vote up", + action = delegate + { + if(Instance.featuredProfiles == null || Instance.featuredProfiles.Length <= Instance.featuredIndex) + { + return; + } + ModIOUnity.RateMod(Instance.featuredProfiles[Instance.featuredIndex].id, ModRating.Positive, delegate { }); + ModioContextMenu.Instance.Close(); + } + }); + + // Add Vote up option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Vote down", + action = delegate + { + if(Instance.featuredProfiles == null || Instance.featuredProfiles.Length <= Instance.featuredIndex) + { + return; + } + ModIOUnity.RateMod(Instance.featuredProfiles[Instance.featuredIndex].id, ModRating.Negative, delegate { }); + ModioContextMenu.Instance.Close(); + } + }); + + // Add Report option to context menu + options.Add(new ContextMenuOption + { + nameTranslationReference = "Report", + action = delegate + { + ModioContextMenu.Instance.Close(); + Reporting.Instance.Open(Instance.featuredProfiles[Instance.featuredIndex], browserFeaturedSlotSelection); + } + }); + + // Open context menu + ModioContextMenu.Instance.Open(Instance.featuredSelectedMoreOptionsButtonPosition, options, Instance.browserFeaturedSlotSelection); + } + + /// + /// This method is used by the highlighted featured mod's 'Subscribe' button. + /// This acts as a toggle, and if the mod is already subscribed it will unsubscribe instead. + /// + public void SubscribeToFeaturedMod() + { + if(featuredProfiles == null || featuredProfiles.Length <= featuredIndex) + { + return; + } + if(Collection.Instance.IsSubscribed(featuredProfiles[featuredIndex].id)) + { + // We are pre-emptively changing the text here to make the UI feel more responsive + //TranslationUpdateable.Get("Subscribe", s => featuredSelectedSubscribeButtonText.text = s); + + Translation.Get(featuredSubscribeTranslation, "Subscribe", featuredSelectedSubscribeButtonText); + Mods.UnsubscribeFromEvent(featuredProfiles[featuredIndex], + delegate { UpdateFeaturedSubscribeButtonText(featuredProfiles[featuredIndex].id); }); + } + else + { + // We are pre-emptively changing the text here to make the UI feel more responsive + Translation.Get(featuredSubscribeTranslation, "Unsubscribe", featuredSelectedSubscribeButtonText); + Mods.SubscribeToEvent(featuredProfiles[featuredIndex], + delegate { UpdateFeaturedSubscribeButtonText(featuredProfiles[featuredIndex].id); }); + } + RefreshSelectedFeaturedModDetails(); + } + + /// + /// This is used specifically for the main featured carousel at the top of the home view. + /// This will swipe the current featured selection left and select the next one in the carousel + /// + public void PageFeaturedRow(bool right) + { + if(featuredProfiles == null || featuredProfiles.Length == 0) + { + // hasn't loaded yet or has no mods + return; + } + + if(right) + featuredIndex = GetNextIndex(featuredIndex, featuredProfiles.Length); + else + featuredIndex = GetPreviousIndex(featuredIndex, featuredProfiles.Length); + + FeaturedModListItem.transitionCount = 0; + foreach(FeaturedModListItem li in featuredSlotListItems) + { + int next; + if(right) + next = GetPreviousIndex(li.rowIndex, featuredSlotPositions.Length); + else + next = GetNextIndex(li.rowIndex, featuredSlotPositions.Length); + + + // transition the list item to it's next position + bool isTransitionable; + if(right) + isTransitionable = next != featuredSlotPositions.Length - 1; + else + isTransitionable = next != 0; + + if(isTransitionable) + { + li.Transition(featuredSlotPositions[li.rowIndex], featuredSlotPositions[next]); + } + else + { + li.transform.position = featuredSlotPositions[next].position; + + int change; + if(right) + change = featuredSlotPositions.Length; + else + change = featuredSlotPositions.Length * -1; + + li.profileIndex = GetIndex(li.profileIndex, featuredProfiles.Length, change); + li.Setup(featuredProfiles[li.profileIndex]); + } + + // change list item index + li.rowIndex = next; + } + RefreshSelectedFeaturedModDetails(); + } + + /// + /// Hides the highlight around the centered featured mod in the home view carousel + /// + internal void HideFeaturedHighlight() + { + browserFeaturedSlotSelectionHighlightBorder.SetActive(false); + StartCoroutine(ImageTransitions.AlphaFast(browserFeaturedSlotBackplate, 0f)); + // browserFeaturedSlotBackplate.gameObject.SetActive(false); + browserFeaturedSlotInfo.SetActive(false); + } + + /// + /// Activates the highlight around the centered featured mod in the home view carousel + /// + internal void ShowFeaturedHighlight() + { + browserFeaturedSlotSelectionHighlightBorder.SetActive(true); + StartCoroutine(ImageTransitions.AlphaFast(browserFeaturedSlotBackplate, 1f)); + browserFeaturedSlotBackplate.gameObject.SetActive(true); + browserFeaturedSlotInfo.SetActive(true); + RefreshSelectedFeaturedModDetails(); + + InputNavigation.Instance.Select(browserFeaturedSlotSelection, true); + } + + /// + /// Updates the text and button details of the centered feature mod, such as name, subscribe + /// status etc etc + /// + void RefreshSelectedFeaturedModDetails() + { + if(featuredProfiles == null || featuredProfiles.Length == 0) + { + // hasn't loaded yet or has no mods + return; + } + + featuredSelectedName.text = featuredProfiles[featuredIndex].name; + UpdateFeaturedSubscribeButtonText(featuredProfiles[featuredIndex].id); + + // Some of the featured slots will represent a different mod after the carousel moves + // because there are 10 featured mods but we only have 5 prefabs displayed at a time, + // therefore reset their progress pips to their proper profile each time we swipe. + RefreshFeaturedCarouselProgressTabs(); + } + + /// + /// Sets the display of the progress tab in the top right corner of a featured mod's image + /// (only active on subscribed mods to show 'subscribed', 'downloading' or 'queued') + /// + void RefreshFeaturedCarouselProgressTabs() + { + foreach(var mod in featuredSlotListItems) + { + mod.progressTab.Setup(featuredProfiles[mod.profileIndex]); + } + } + + /// + /// Sets the text on the centered feature mod based on it's subscription status + /// + /// the mod id of the mod to check for subscription status + void UpdateFeaturedSubscribeButtonText(ModId id) + { + if(Collection.Instance.IsSubscribed(id)) + { + Translation.Get(featuredSubscribeTranslation, "Unsubscribe", featuredSelectedSubscribeButtonText); + } + else + { + Translation.Get(featuredSubscribeTranslation, "Subscribe", featuredSelectedSubscribeButtonText); + } + LayoutRebuilder.ForceRebuildLayoutImmediate(featuredSelectedSubscribeButtonText.transform.parent as RectTransform); + LayoutRebuilder.ForceRebuildLayoutImmediate(featuredSelectedSubscribeButtonText.transform.parent as RectTransform); + } + + /// + /// We only run this method when the browser is opened, we dont need to refresh the home + /// view each time we change panels. + /// + internal void RefreshHomePanel() + { + ClearRowListItems(); + ClearModListItemRowDictionary(); + + // Setup filter + SearchFilter filter = new SearchFilter(); + filter.SetPageIndex(0); + filter.SetPageSize(10); + filter.SortBy(SortModsBy.Downloads); // TODO How do we get top ten featured? + // Note: this is a mistake on the backend api. Ascending is swapped with descending for this field + filter.SetToAscending(true); + + // Get Mods for featured row + ModIOUnity.GetMods(filter, AddModProfilesToFeaturedCarousel); + + // Edit filter for next row + filter = new SearchFilter(); + filter.SetPageIndex(0); + filter.SetPageSize(20); + filter.SortBy(SortModsBy.DateSubmitted); + filter.SetToAscending(false); + + // Get Mods for Recently Added row + BrowserPanelModListRow_RecentlyAdded.AttemptToPopulateRowWithMods(filter); + // waitingForCallbacks++; + // AddPlaceholdersToList(BrowserPanelRow_RecentlyAdded, + // BrowserPanelListItem_Regular, 20); + // ModIOUnity.GetMods(filter, (result, mods) => { AssignModsToRow(result, mods, BrowserPanelRow_RecentlyAdded);}); + + // Edit filter for next row + filter = new SearchFilter(); + filter.SetPageIndex(0); + filter.SetPageSize(20); + filter.SortBy(SortModsBy.Subscribers); + filter.SetToAscending(true); + + // Get Mods for Trending row + BrowserPanelModListRow_Trending.AttemptToPopulateRowWithMods(filter); + // waitingForCallbacks++; + // AddPlaceholdersToList(BrowserPanelRow_Trending, + // BrowserPanelListItem_Regular, 20); + // ModIOUnity.GetMods(filter, (result, mods) => { AssignModsToRow(result, mods, BrowserPanelRow_Trending);}); + + // Edit filter for next row + filter = new SearchFilter(); + filter.SetPageIndex(0); + filter.SetPageSize(20); + filter.SortBy(SortModsBy.Popular); + filter.SetToAscending(false); + + // Get Mods for Most Popular row + BrowserPanelModListRow_MostPopular.AttemptToPopulateRowWithMods(filter); + // waitingForCallbacks++; + // AddPlaceholdersToList(BrowserPanelRow_MostPopular, + // BrowserPanelListItem_Regular, 20); + // ModIOUnity.GetMods(filter, (result, mods) => { AssignModsToRow(result, mods, BrowserPanelRow_MostPopular);}); + + // Edit filter for next row + filter = new SearchFilter(); + filter.SetPageIndex(0); + filter.SetPageSize(20); + filter.SortBy(SortModsBy.Rating); + filter.SetToAscending(true); + + // Get Mods for highest rated row + BrowserPanelModListRow_HighestRated.AttemptToPopulateRowWithMods(filter); + // waitingForCallbacks++; + // AddPlaceholdersToList(BrowserPanelRow_HighestRated, + // BrowserPanelListItem_Regular, 20); + // ModIOUnity.GetMods(filter, (result, mods) => { AssignModsToRow(result, mods, BrowserPanelRow_HighestRated);}); + } + + /// + /// Hides all of the list items used to display mods in the home view rows. + /// + void ClearRowListItems() + { + ListItem.HideListItems(); + } + + /// + /// Adds the specified prefab to a row and sets it up as a placeholder to be hydrated later + /// when we have received a response from the server + /// + /// the parent container of where to instantiate the prefab + /// the prefab to instantiate + /// (must be enabled and have a ListItem.cs component) + /// the number of placeholders to create + /// the type of the prefab. Used to get/cache the correct list item + /// cache. eg BrowserModListItem + internal void AddPlaceholdersToList(Transform list, GameObject prefab, int placeholders) + { + for(int i = 0; i < placeholders; i++) + { + ListItem li = ListItem.GetListItem(prefab, list, Browser.Instance.colorScheme, true); + li.PlaceholderSetup(); + li.SetViewportRestraint(SearchResults.Instance.SearchResultsListItemParent as RectTransform, null); + } + } + + internal void AddModListItemToRowDictionaryCache(ListItem item, GameObject row) + { + // Make sure this row has an entry + if(!cachedModListItemsByRow.ContainsKey(row)) + { + cachedModListItemsByRow.Add(row, new HashSet()); + } + + // make sure this item doesnt already have an entry + if (!cachedModListItemsByRow[row].Contains(item)) + { + cachedModListItemsByRow[row].Add(item); + } + } + + void ClearModListItemRowDictionary() + { + cachedModListItemsByRow.Clear(); + } + + // ---------------------------------------------------------------------------------------// + // Callbacks From ModIOUnity // + // These are the callbacks we give to ModIOUnity.cs when making a GetMods request // + // ---------------------------------------------------------------------------------------// + + /// + /// This is used as the callback for GetMods for the featured row + /// + /// whether or not the request succeeded + /// the mods retrieved, if any + void AddModProfilesToFeaturedCarousel(ResultAnd response) + { + if(!response.result.Succeeded()) + { + // TODO we need to setup a reattempt option similar to mod list rows + return; + } + + featuredProfiles = response.value.modProfiles; + if(response.value.modProfiles.Length < 10 && response.value.modProfiles.Length > 0) + { + featuredProfiles = new ModProfile[10]; + int next = 0; + for(int i = 0; i < 10; i++) + { + if(next >= response.value.modProfiles.Length) + { + next = 0; + } + featuredProfiles[i] = response.value.modProfiles[next]; + next++; + } + } + + if(featuredProfiles.Length < 5) + { + // TODO figure out what to do if we dont have enough mods to display + foreach(var li in featuredSlotListItems) + { + li.PlaceholderSetup(); + } + return; + } + + foreach(var li in featuredSlotListItems) + { + int index = li.rowIndex; + if(index >= featuredProfiles.Length) + { + index -= featuredProfiles.Length; + } + li.Setup(featuredProfiles[li.profileIndex]); + + // set the viewing index to whichever list item is centered + // This is just in case someone starts paging left and right before we've retrieved + // mods to populate the row with. + if(index == 2) + { + featuredIndex = li.profileIndex; + } + } + + RefreshSelectedFeaturedModDetails(); + } + + public void OnScrollValueChange() + { + float targetAlpha = -1f; + + // Get the target alpha based on what the scrollbar value is + if(BrowserPanelContentScrollBar.value < 1f) + { + targetAlpha = BrowserPanelHeaderBackground.color.a == 1f ? targetAlpha : 1f; + } + else + { + targetAlpha = BrowserPanelHeaderBackground.color.a == 0f ? targetAlpha : 0f; + } + + // If the target alpha needs to change, start the transition coroutine here + if(targetAlpha != -1f && targetAlpha != browserHeaderLastAlphaTarget) + { + browserHeaderLastAlphaTarget = targetAlpha; + if(browserHeaderTransition != null) + { + StopCoroutine(browserHeaderTransition); + } + browserHeaderTransition = ImageTransitions.Alpha(BrowserPanelHeaderBackground, targetAlpha); + StartCoroutine(browserHeaderTransition); + } + } + + public void FeaturedItemSelect(bool state) + { + isFeaturedItemSelected = state; + //featuredOptionsButtons.gameObject.SetActive(state); + } + + internal static void ModManagementEvent(ModManagementEventType type, ModId id, Result eventResult) + { + if(Instance.featuredProfiles != null) + { + foreach(var mod in Instance.featuredSlotListItems) + { + if(Instance.featuredProfiles[mod.profileIndex].id == id) + { + mod.progressTab.UpdateStatus(type, id); + } + } + } + } + + internal static void UpdateProgressState(ProgressHandle handle) + { + if(handle != null && Home.IsOn()) + { + if(HomeModListItem.listItems.ContainsKey(handle.modId)) + { + HomeModListItem.listItems[handle.modId].UpdateProgressBar(handle); + } + + if(Instance.featuredProfiles != null) + { + foreach(var mod in Instance.featuredSlotListItems) + { + mod.progressTab.UpdateProgress(handle); + } + } + } + } + + public void RefreshModListItems() + { + List subbedMods = ModIOUnity.GetSubscribedMods(out var result).ToList(); + + if(!result.Succeeded()) + { + return; + } + + HomeModListItem.listItems.Where(x => x.Value.isActiveAndEnabled) + .ToList() + .ForEach(x => + { + if(subbedMods.Any(mod => mod.modProfile.Equals(x.Value.profile))) + { + x.Value.Setup(x.Value.profile); + } + }); + } + + public void ResetScrollRect() + { + scrollRect.verticalNormalizedPosition = 1; + } + + #region Utility + public int GetIndex(int current, int length, int change) + { + if(length == 0) + { + return 0; + } + + current += change; + + while(current >= length) + { + current -= length; + } + while(current < 0) + { + current += length; + } + + return current; + } + + + public static int GetPreviousIndex(int current, int length) + { + if(length == 0) + { + return 0; + } + + current -= 1; + if(current < 0) + { + current = length - 1; + } + return current; + } + + public static int GetNextIndex(int current, int length) + { + if(length == 0) + { + return 0; + } + + current += 1; + if(current >= length) + { + current = 0; + } + return current; + } + #endregion + } +} diff --git a/UI/Scripts/Panels/Home.cs.meta b/UI/Scripts/Panels/Home.cs.meta new file mode 100644 index 0000000..f6fc175 --- /dev/null +++ b/UI/Scripts/Panels/Home.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f9a181712313aa74597d2fd0cad977f4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/ModioContextMenu.cs b/UI/Scripts/Panels/ModioContextMenu.cs new file mode 100644 index 0000000..75b548f --- /dev/null +++ b/UI/Scripts/Panels/ModioContextMenu.cs @@ -0,0 +1,138 @@ +using ModIO.Util; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + class ModioContextMenu : SelfInstancingMonoSingleton + { + public GameObject ContextMenu; + [SerializeField] public Transform ContextMenuList; + [SerializeField] public GameObject ContextMenuListItemPrefab; + [SerializeField] public Selectable ContextMenuPreviousSelection; + + /// + /// This opens a context menu with the specified options 'options' and makes itself a child + /// to the given transform so that it can be assigned to remain in front of an element. + /// It will also use the parent as the origin of where the menu will spawn from. + /// The pivot is (0.5f, 0f) x, y + /// + /// + /// + /// + internal void Open(Transform t, List options, Selectable previousSelection) + { + if(options.Count < 1) + { + // We can't open a context menu without any context options + return; + } + + Vector2 position = t.position; + + // This counteracts an odd edge case with pivots and vertical layout groups + // @HACK if the height of context list items changes, this will also need to be adjusted + position.y -= 24f; + + //resize the width fo the context menu + if(t is RectTransform rt) + { + float width = rt.sizeDelta.x; + RectTransform contextRect = transform as RectTransform; + Vector2 size = contextRect.sizeDelta; + size.x = width; + contextRect.sizeDelta = size; + } + + ListItem.HideListItems(); + ContextMenuPreviousSelection = previousSelection; + gameObject.SetActive(true); + transform.position = position; + bool selectionMade = false; + + Selectable lastSelection = null; + Selectable optionToSelect = null; + + foreach(var option in options) + { + ListItem li = ListItem.GetListItem(ContextMenuListItemPrefab, ContextMenuList, Browser.Instance.colorScheme); + li.Setup(TranslationManager.Instance.Get(option.nameTranslationReference), option.action); + li.SetColorScheme(Browser.Instance.colorScheme); + + // Setup custom navigation + { + Navigation nav = li.selectable.navigation; + nav.mode = Navigation.Mode.Explicit; + nav.selectOnLeft = null; + nav.selectOnRight = null; + nav.selectOnUp = lastSelection; + nav.selectOnDown = null; + li.selectable.navigation = nav; + } + + // if last selection != null, make this list item the 'down' selection for the previous + if(lastSelection != null) + { + Navigation nav = lastSelection.navigation; + nav.selectOnDown = li.selectable; + lastSelection.navigation = nav; + } + + lastSelection = li.selectable; + + // if this is the first context option, make it selected + if(!selectionMade) + { + optionToSelect = li.selectable; + selectionMade = true; + } + } + + if(!InputNavigation.Instance.mouseNavigation) + { + SelectionManager.Instance.SetNewViewDefaultSelection(UiViews.ContextMenu, optionToSelect); + SelectionManager.Instance.SelectView(UiViews.ContextMenu); + } + LayoutRebuilder.ForceRebuildLayoutImmediate(ContextMenuList as RectTransform); + } + + /// + /// hides the context menu and attempts to move the selection to whatever it was prior to + /// opening the context menu + /// + public void Close() + { + gameObject.SetActive(false); + if(ContextMenuPreviousSelection != null) + { + InputNavigation.Instance.Select(Instance.ContextMenuPreviousSelection); + } + } + + void Update() + { + // we can move this to ModioContextMenu + // Detect mouse outside of context menu to cleanup/close context menu + if(gameObject.activeSelf) + { + // if we detect a scroll, left or right mouse click, check if mouse is inside context + // menu bounds. If not, then close context menu + if(Input.GetKeyDown(KeyCode.Mouse0) || Input.GetKeyDown(KeyCode.Mouse1) || Input.GetAxis("Mouse ScrollWheel") != 0f) + { + // check if the mouse is within the bounds of the contextMenu + RectTransform contextRect = transform as RectTransform; + Vector3 mousePositionLocalToRect = contextRect.InverseTransformPoint(Input.mousePosition); + + if(!contextRect.rect.Contains(mousePositionLocalToRect)) + { + gameObject.SetActive(false); + // if using mouse we dont close using the method CloseContextMenu() because + // we dont want to move the selection + // CloseContextMenu(); + } + } + } + } + } +} diff --git a/UI/Scripts/Panels/ModioContextMenu.cs.meta b/UI/Scripts/Panels/ModioContextMenu.cs.meta new file mode 100644 index 0000000..85aae25 --- /dev/null +++ b/UI/Scripts/Panels/ModioContextMenu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 655ebe54e8d25ed43a435ecc50635928 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/NavBar.cs b/UI/Scripts/Panels/NavBar.cs new file mode 100644 index 0000000..39c04e7 --- /dev/null +++ b/UI/Scripts/Panels/NavBar.cs @@ -0,0 +1,52 @@ +using System.Collections; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using ModIO.Util; + +namespace ModIOBrowser.Implementation +{ + public class NavBar : SelfInstancingMonoSingleton + { + [Header("Nav Bar")] + [SerializeField] TMP_Text BrowserPanelNavButton; + [SerializeField] GameObject BrowserPanelNavButtonHighlights; + [SerializeField] Image BrowserPanelHeaderBackground; + [SerializeField] TMP_Text CollectionPanelNavButton; + [SerializeField] GameObject CollectionPanelNavButtonHighlights; + IEnumerator browserHeaderTransition; + + /// + /// This is simply an On/Off state of the collection/browser buttons at the top of the UI + /// panel to go between the two corresponding menus. The display is based on which menu you + /// are currently in. + /// + internal void UpdateNavbarSelection() + { + if(Collection.IsOn()) + { + Color col = CollectionPanelNavButton.color; + col.a = 1f; + CollectionPanelNavButton.color = col; + CollectionPanelNavButtonHighlights.SetActive(true); + + col = BrowserPanelNavButton.color; + col.a = 0.5f; + BrowserPanelNavButton.color = col; + BrowserPanelNavButtonHighlights.SetActive(false); + } + else + { + Color col = CollectionPanelNavButton.color; + col.a = 0.5f; + CollectionPanelNavButton.color = col; + CollectionPanelNavButtonHighlights.SetActive(false); + + col = BrowserPanelNavButton.color; + col.a = 1f; + BrowserPanelNavButton.color = col; + BrowserPanelNavButtonHighlights.SetActive(true); + } + } + } +} diff --git a/UI/Scripts/Panels/NavBar.cs.meta b/UI/Scripts/Panels/NavBar.cs.meta new file mode 100644 index 0000000..5d678cf --- /dev/null +++ b/UI/Scripts/Panels/NavBar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 95584c6bde68549429676799c0ef2d6b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/NotificationPopup.cs b/UI/Scripts/Panels/NotificationPopup.cs new file mode 100644 index 0000000..3b1e51e --- /dev/null +++ b/UI/Scripts/Panels/NotificationPopup.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using ModIO.Util; +using TMPro; +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + /// + /// Opens a dialogue window with a set of buttons. + /// Example: + /// NotificationPopup.Open("header", "text body", + /// new NotificationPopup.ButtonConfig("Okay", ()=> Debug.Log("okay")), + /// new NotificationPopup.ButtonConfig("Cancel", ()=> Debug.Log("cancel")) + /// ); + /// + class NotificationPopup : SelfInstancingMonoSingleton + { + public class ButtonConfig + { + public string name; + public Action action; + + public ButtonConfig(string name, Action action) + { + this.name = name; + this.action = action; + } + } + + public TextMeshProUGUI header, body; + public List buttons; + +#pragma warning disable 0649 //These variables are infact allocated! + private Translation headerTranslation, bodyTranslation; +#pragma warning restore 0649 + + ////Split this out into a nintendo partial + ////alternatively just call it from directly in that code, its just a wrapper + //public static void ErrorNintendoDiscSpace() => + // Instance.Open("Error", + // "This device does not have enough hard disk space to install this mod.", + // new ButtonConfig("Okay", null)); + + protected override void Awake() + { + base.Awake(); + Hide(); + } + + public void Open(string header, string body, params ButtonConfig[] buttonConfigs) + { + this.header.text = header; + this.body.text = body; + + buttons.ForEach(button => button.Hide()); + + if(buttonConfigs.Count() > buttons.Count()) + { + Translation.Get(headerTranslation, "Error", this.header); + Translation.Get(bodyTranslation, "This textbox is unable to display the input configuration.", this.body); + + buttons[0].Set(new ButtonConfig("Error", + () => Debug.LogWarning("There are not enough buttons to display these choices.")), + this); + + throw new NotImplementedException("Error. Contact modio."); + } + + for(int i = 0; i < buttonConfigs.Count(); i++) + { + buttons[i].Set(buttonConfigs[i], this); + } + + Show(); + } + + private void Show() + { + gameObject.SetActive(true); + SelectionManager.Instance.SelectView(UiViews.NotificationPopup); + } + + private void Hide() => gameObject.SetActive(false); + + public void Close() + { + Hide(); + SelectionManager.Instance.SelectPreviousView(); + } + } +} + diff --git a/UI/Scripts/Panels/NotificationPopup.cs.meta b/UI/Scripts/Panels/NotificationPopup.cs.meta new file mode 100644 index 0000000..80a1b0f --- /dev/null +++ b/UI/Scripts/Panels/NotificationPopup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 176c3b7c66eb46d4296946b8bd7468b4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/NotificationPopupButton.cs b/UI/Scripts/Panels/NotificationPopupButton.cs new file mode 100644 index 0000000..00e9ce1 --- /dev/null +++ b/UI/Scripts/Panels/NotificationPopupButton.cs @@ -0,0 +1,33 @@ +using System; +using TMPro; +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + class NotificationPopupButton : MonoBehaviour + { + public TextMeshProUGUI buttonName; + private Action action; + private NotificationPopup master; + + public void Set(NotificationPopup.ButtonConfig config, NotificationPopup master) + { + buttonName.text = config.name; + this.action = config.action; + this.master = master; + gameObject.SetActive(true); + } + + public void OnClick() + { + action?.Invoke(); + master.Close(); + } + + public void Hide() + { + gameObject.SetActive(false); + } + } +} + diff --git a/UI/Scripts/Panels/NotificationPopupButton.cs.meta b/UI/Scripts/Panels/NotificationPopupButton.cs.meta new file mode 100644 index 0000000..fad106d --- /dev/null +++ b/UI/Scripts/Panels/NotificationPopupButton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4ed7e5f6348c14141b73dabc8dc4bb24 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/Notifications.cs b/UI/Scripts/Panels/Notifications.cs new file mode 100644 index 0000000..b1ee570 --- /dev/null +++ b/UI/Scripts/Panels/Notifications.cs @@ -0,0 +1,221 @@ +using System.Collections; +using System.Collections.Generic; +using ModIO; +using ModIO.Util; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + class Notifications : SelfInstancingMonoSingleton + { + [Header("Notifications")] + [SerializeField] GameObject NotificationPanel; + [SerializeField] Image NotificationPanelImage; + [SerializeField] Image NotificationPanelIconBackgroundImage; + [SerializeField] Image NotificationPanelIconImage; + [SerializeField] TMP_Text NotificationPanelTitle; + [SerializeField] TMP_Text NotificationPanelDescription; + [SerializeField] Sprite NotificationErrorIcon; + [SerializeField] Sprite NotificationCheckmarkIcon; + + public class QueuedNotice + { + public string title; + public string description; + public bool positiveAccent; + } + + Queue upcomingNotices = new Queue(); + bool showingNotice = false; + Vector2 notificationOrigin = new Vector2(24f, 24f); + + #region Monobehaviour + // Because of the coroutine, disabling this browser will also cancel the coroutine, make sure + // we have turned this notice off and cleared the notification queue + void OnDisable() + { + NotificationPanel.SetActive(false); + upcomingNotices.Clear(); + showingNotice = false; + } + #endregion // Monobehaviour + + #region Notification Panel + + public void ProcessModManagementEventIntoNotification(ModManagementEventType type, ModId modId, Result result) + { + switch(type) + { + case ModManagementEventType.Installed: + AddNotificationToQueue(new QueuedNotice + { + title = TranslationManager.Instance.Get("Mod installed"), + description = TranslationManager.Instance.Get("{modname} has finished installing", $"{Collection.Instance.GetModNameFromId(modId)}"), + positiveAccent = true + }); + break; + case ModManagementEventType.InstallFailed: + + string description = result.IsStorageSpaceInsufficient() ? + TranslationManager.Instance.Get("Not enough space") : + TranslationManager.Instance.Get("{modname} failed to install", $"{Collection.Instance.GetModNameFromId(modId)}"); + + AddNotificationToQueue(new QueuedNotice + { + title = TranslationManager.Instance.Get("Mod installation failed"), + description = description, + positiveAccent = false + }); + break; + case ModManagementEventType.DownloadFailed: + + description = result.IsStorageSpaceInsufficient() ? + TranslationManager.Instance.Get("Not enough space") : + TranslationManager.Instance.Get("{modname} failed to download", $"{Collection.Instance.GetModNameFromId(modId)}"); + + AddNotificationToQueue(new QueuedNotice + { + title = TranslationManager.Instance.Get("Mod download failed"), + description = description, + positiveAccent = false + }); + break; + case ModManagementEventType.UninstallFailed: + AddNotificationToQueue(new QueuedNotice + { + title = TranslationManager.Instance.Get("Mod delete failed"), + description = TranslationManager.Instance.Get("{modname} failed to delete", $"{Collection.Instance.GetModNameFromId(modId)}"), + + positiveAccent = false + }); + break; + case ModManagementEventType.Updated: + AddNotificationToQueue(new QueuedNotice + { + title = TranslationManager.Instance.Get("Mod updated"), + description = TranslationManager.Instance.Get("{modname} has finished updating", $"{Collection.Instance.GetModNameFromId(modId)}"), + + positiveAccent = true + }); + break; + case ModManagementEventType.UpdateFailed: + AddNotificationToQueue(new QueuedNotice + { + title = TranslationManager.Instance.Get("Mod update failed"), + description = TranslationManager.Instance.Get("{modname} failed to update", $"{Collection.Instance.GetModNameFromId(modId)}"), + + positiveAccent = false + }); + break; + default: + return; + } + } + + public void AddNotificationToQueue(QueuedNotice notice) + { + // Cap the number of notices at 5 so we dont get flooding or outdated notices + if(upcomingNotices.Count > 5) + { + return; + } + + // Add notice to the queue + upcomingNotices.Enqueue(notice); + + // Attempt to show next notice (ignored if already in transition or none to show) + StartCoroutine(ShowNextNotice()); + } + + IEnumerator ShowNextNotice() + { + if(showingNotice || upcomingNotices.Count == 0) + { + yield break; + } + + showingNotice = true; + QueuedNotice notice = upcomingNotices.Dequeue(); + NotificationPanelTitle.text = notice.title; + NotificationPanelDescription.text = notice.description; + NotificationPanelIconBackgroundImage.color = notice.positiveAccent ? + Browser.Instance.colorScheme.PositiveAccent : Browser.Instance.colorScheme.NegativeAccent; + NotificationPanelIconImage.sprite = notice.positiveAccent ? + NotificationCheckmarkIcon : NotificationErrorIcon; + + // get graphics to fade + List graphics = new List + { + NotificationPanelImage, + NotificationPanelIconImage, + NotificationPanelIconBackgroundImage, + NotificationPanelTitle, + NotificationPanelDescription + }; + + //set graphics to alpha == 0 + foreach(Graphic graphic in graphics) + { + Color color = graphic.color; + color.a = 0; + graphic.color = color; + } + + // setup transition variables + int totalIncrements = 10; + float alphaChangePerIncrement = 1f / totalIncrements; + float timeBetweenIncrements = 0.02f; + float totalVerticalMovement = 32f; + float verticalMovementPerIncrement = totalVerticalMovement / totalIncrements; + + // activate the panel and position it + Vector2 originOffset = notificationOrigin; + originOffset.y -= totalVerticalMovement; + NotificationPanel.transform.position = originOffset; + NotificationPanel.SetActive(true); + LayoutRebuilder.ForceRebuildLayoutImmediate(NotificationPanel.transform as RectTransform); + + // do transition + for(int i = 0; i < totalIncrements; i++) + { + Vector2 pos = NotificationPanel.transform.position; + pos.y += verticalMovementPerIncrement; + NotificationPanel.transform.position = pos; + + foreach(Graphic graphic in graphics) + { + Color color = graphic.color; + color.a += alphaChangePerIncrement; + graphic.color = color; + } + yield return new WaitForSecondsRealtime(timeBetweenIncrements); + } + + // wait for 4 seconds + yield return new WaitForSecondsRealtime(3f); + + // transition out + for(int i = 0; i < totalIncrements; i++) + { + foreach(Graphic graphic in graphics) + { + Color color = graphic.color; + color.a -= alphaChangePerIncrement; + graphic.color = color; + } + yield return new WaitForSecondsRealtime(timeBetweenIncrements); + } + + NotificationPanel.SetActive(false); + showingNotice = false; + + // Attempt to show next notice (ignored if already in transition or none to show) + StartCoroutine(ShowNextNotice()); + } + + #endregion // Notification Panel + + } +} diff --git a/UI/Scripts/Panels/Notifications.cs.meta b/UI/Scripts/Panels/Notifications.cs.meta new file mode 100644 index 0000000..bc620b0 --- /dev/null +++ b/UI/Scripts/Panels/Notifications.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 35aff338c9c6cbb4fbc101eb0e1bdae5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/Reporting.cs b/UI/Scripts/Panels/Reporting.cs new file mode 100644 index 0000000..f046009 --- /dev/null +++ b/UI/Scripts/Panels/Reporting.cs @@ -0,0 +1,244 @@ +using ModIO; +using ModIO.Util; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + public class Reporting : SelfInstancingMonoSingleton + { + [SerializeField] public GameObject Panel; + [SerializeField] TMP_Text ReportPanelHeader; + [SerializeField] TMP_Text ReportPanelSubHeader; + [SerializeField] TMP_Text ReportPanelSubSubHeader; + [SerializeField] TMP_Text ReportPanelText; + [SerializeField] TMP_Text ReportPanelCaption; + [SerializeField] GameObject ReportPanelReportOptions; + [SerializeField] GameObject ReportPanelEmailSection; + [SerializeField] TMP_InputField ReportPanelEmailField; + [SerializeField] GameObject ReportPanelDetailsSection; + [SerializeField] TMP_InputField ReportPanelDetailsField; + [SerializeField] GameObject ReportPanelSummary; + [SerializeField] TMP_Text ReportPanelSummaryReason; + [SerializeField] TMP_Text ReportPanelSummaryEmail; + [SerializeField] TMP_Text ReportPanelSummaryDetails; + [SerializeField] GameObject ReportPanelButtons; + [SerializeField] Button ReportPanelBackButton; + [SerializeField] Button ReportPanelCancelButton; + [SerializeField] Button ReportPanelSubmitButton; + [SerializeField] Button ReportPanelNextButton; + [SerializeField] Button ReportPanelDoneButton; + [SerializeField] GameObject ReportPanelLoadingAnimation; + + + internal Translation ReportPanelHeaderTranslation = null; + internal Translation ReportPanelTextTranslation = null; + internal Translation ReportPanelCaptionTranslation = null; + + + Selectable defaultSelectableOnReportClose; + ModProfile modBeingReported; + ReportType reportType; + + #region Report Panel States + + public void Close() + { + Panel.SetActive(false); + InputNavigation.Instance.Select(defaultSelectableOnReportClose); + } + + public void Open(ModProfile modToReport, Selectable selectableOnClose) + { + defaultSelectableOnReportClose = selectableOnClose; + Browser.currentFocusedPanel = Panel; + modBeingReported = modToReport; + + HideReportPanelObjects(); + Panel.SetActive(true); + ReportPanelReportOptions.SetActive(true); + ReportPanelText.gameObject.SetActive(true); + + Translation.Get(ReportPanelHeaderTranslation, "Report a problem", ReportPanelHeader); + ReportPanelSubHeader.text = $"'{modBeingReported.name}'"; + Translation.Get(ReportPanelTextTranslation, "Report content violating the sites Terms of Use or submit a DMCA complaint using the form below. Make sure you include all relevant information and links. If you’d like to report Copyright Infringement and are the Copyright holder, select ‘DMCA’ below.", ReportPanelText); + + SelectionManager.Instance.SelectView(UiViews.Report); + + ReportPanelButtons.SetActive(true); + ReportPanelCancelButton.gameObject.SetActive(true); + } + + public void OpenEmail() + { + HideReportPanelObjects(); + Panel.SetActive(true); + ReportPanelText.gameObject.SetActive(true); + Translation.Get(ReportPanelTextTranslation, "Your email may be shared with moderators and the person that posted the allegedly infringing content you are reporting.", ReportPanelText); + + ReportPanelEmailSection.SetActive(true); + + ReportPanelButtons.SetActive(true); + ReportPanelBackButton.gameObject.SetActive(true); + + ReportPanelBackButton.gameObject.SetActive(true); + ReportPanelBackButton.onClick.RemoveAllListeners(); + ReportPanelBackButton.onClick.AddListener(delegate { Open(modBeingReported, defaultSelectableOnReportClose); }); + + ReportPanelNextButton.gameObject.SetActive(true); + ReportPanelCancelButton.gameObject.SetActive(true); + + InputNavigation.Instance.Select(ReportPanelEmailField); + } + + public void OpenDetails() + { + HideReportPanelObjects(); + Panel.SetActive(true); + + ReportPanelCaption.gameObject.SetActive(true); + Translation.Get(ReportPanelCaptionTranslation, "Details of infringement", ReportPanelCaption); + + ReportPanelText.gameObject.SetActive(true); + Translation.Get(ReportPanelTextTranslation, "To help us process your report, please provide as much detail and evidence as possible.", ReportPanelText); + + ReportPanelDetailsSection.SetActive(true); + ReportPanelDetailsField.text = ""; + + ReportPanelButtons.SetActive(true); + ReportPanelBackButton.gameObject.SetActive(true); + + ReportPanelBackButton.gameObject.SetActive(true); + ReportPanelBackButton.onClick.RemoveAllListeners(); + ReportPanelBackButton.onClick.AddListener(OpenEmail); + + ReportPanelSubmitButton.gameObject.SetActive(true); + ReportPanelSubmitButton.onClick.RemoveAllListeners(); + ReportPanelSubmitButton.onClick.AddListener(OpenSummary); + + ReportPanelCancelButton.gameObject.SetActive(true); + + InputNavigation.Instance.Select(ReportPanelDetailsField); + } + + public void OpenSummary() + { + HideReportPanelObjects(); + Panel.SetActive(true); + + ReportPanelSummary.SetActive(true); + + ReportPanelSummaryEmail.gameObject.SetActive(true); + ReportPanelSummaryEmail.text = ReportPanelEmailField.text; + + ReportPanelSummaryReason.gameObject.SetActive(true); + ReportPanelSummaryReason.text = reportType.ToString(); + + ReportPanelSummaryDetails.gameObject.SetActive(true); + ReportPanelSummaryDetails.text = ReportPanelDetailsField.text; + + ReportPanelButtons.SetActive(true); + + ReportPanelBackButton.gameObject.SetActive(true); + ReportPanelBackButton.onClick.RemoveAllListeners(); + ReportPanelBackButton.onClick.AddListener(OpenDetails); + + ReportPanelSubmitButton.gameObject.SetActive(true); + ReportPanelSubmitButton.onClick.RemoveAllListeners(); + ReportPanelSubmitButton.onClick.AddListener(Send); + + ReportPanelCancelButton.gameObject.SetActive(true); + + InputNavigation.Instance.Select(ReportPanelSubmitButton); + } + + public void OpenDone() + { + HideReportPanelObjects(); + Panel.SetActive(true); + + ReportPanelText.gameObject.SetActive(true); + Translation.Get(ReportPanelTextTranslation, "The mod has been reported. A confirmation email will be sent to you shortly with the details and the moderators of the mod will be notified.", ReportPanelText); + + ReportPanelButtons.SetActive(true); + ReportPanelDoneButton.gameObject.SetActive(true); + + InputNavigation.Instance.Select(ReportPanelDoneButton); + } + + public void OpenWaiting() + { + HideReportPanelObjects(); + Panel.SetActive(true); + + ReportPanelButtons.SetActive(true); + ReportPanelLoadingAnimation.SetActive(true); + } + + public void OpenProblem() + { + HideReportPanelObjects(); + Panel.SetActive(true); + + ReportPanelText.gameObject.SetActive(true); + + TextAlignmentOptions alignment = ReportPanelText.alignment; + alignment = TextAlignmentOptions.Center; + ReportPanelText.alignment = alignment; + + Translation.Get(ReportPanelTextTranslation, "Something went wrong when trying to send your report.", ReportPanelText); + + ReportPanelButtons.SetActive(true); + ReportPanelCancelButton.gameObject.SetActive(true); + } + + public void SetReportType(int type) + { + reportType = (ReportType)type; + } + + public void HideReportPanelObjects() + { + TextAlignmentOptions alignment = ReportPanelText.alignment; + alignment = TextAlignmentOptions.Left; + ReportPanelText.alignment = alignment; + ReportPanelEmailSection.SetActive(false); + ReportPanelSubSubHeader.gameObject.SetActive(false); + ReportPanelText.gameObject.SetActive(false); + ReportPanelCaption.gameObject.SetActive(false); + ReportPanelReportOptions.SetActive(false); + ReportPanelDetailsSection.SetActive(false); + ReportPanelSummary.SetActive(false); + ReportPanelButtons.SetActive(false); + ReportPanelBackButton.gameObject.SetActive(false); + ReportPanelNextButton.gameObject.SetActive(false); + ReportPanelCancelButton.gameObject.SetActive(false); + ReportPanelDoneButton.gameObject.SetActive(false); + ReportPanelSubmitButton.gameObject.SetActive(false); + ReportPanelLoadingAnimation.SetActive(false); + } + + #endregion // Report Panel States + + public void Send() + { + OpenWaiting(); + + Report report = new Report(modBeingReported.id, reportType, ReportPanelDetailsField.text, "Unknown", ReportPanelEmailField.text); + ModIOUnity.Report(report, Sent); + } + + private void Sent(Result result) + { + if(result.Succeeded()) + { + OpenDone(); + } + else + { + OpenProblem(); + } + } + } +} diff --git a/UI/Scripts/Panels/Reporting.cs.meta b/UI/Scripts/Panels/Reporting.cs.meta new file mode 100644 index 0000000..9758b99 --- /dev/null +++ b/UI/Scripts/Panels/Reporting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45b570e339fe8e14ca5751aad6d692a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/SearchPanel.cs b/UI/Scripts/Panels/SearchPanel.cs new file mode 100644 index 0000000..e3e0c18 --- /dev/null +++ b/UI/Scripts/Panels/SearchPanel.cs @@ -0,0 +1,253 @@ +using System.Collections.Generic; +using System.Linq; +using ModIO; +using ModIO.Util; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + class SearchPanel : SelfInstancingMonoSingleton + { + [Header("Search Panel")] + [SerializeField] public GameObject SearchPanelGameObject; + [SerializeField] public TMP_InputField SearchPanelField; + [SerializeField] GameObject SearchPanelTagCategoryPrefab; + [SerializeField] RectTransform SearchPanelTagViewport; + [SerializeField] Transform SearchPanelTagParent; + [SerializeField] GameObject SearchPanelTagPrefab; + [SerializeField] public Image SearchPanelLeftBumperIcon; + [SerializeField] public Image SearchPanelRightBumperIcon; + + public static HashSet searchFilterTags = new HashSet(); + TagCategory[] tags; + + public void Open() + { + //We are selecting before activating the object, + //so that the input capture doesn't force the keyboard + //to lock onto the object + SearchPanelGameObject.SetActive(true); + SelectionManager.Instance.SelectView(UiViews.SearchFilters); + SearchPanelField.text = ""; + + FieldNavigationLock(); + + //ScrollRectViewHandler.Instance.CurrentViewportContent = SearchPanelTagParent; + SetupTags(); + } + + void FieldNavigationLock() + { + Navigation nav = SearchPanelField.navigation; + nav.mode = Navigation.Mode.None; + SearchPanelField.navigation = nav; + } + + void FieldNavigationUnlock(List listItems) + { + Navigation nav = SearchPanelField.navigation; + nav.mode = Navigation.Mode.Explicit; + if(listItems.Count > 0) + { + nav.selectOnDown = listItems[0]; + } + nav.selectOnUp = null; + nav.selectOnRight = null; + nav.selectOnLeft = null; + SearchPanelField.navigation = nav; + } + + public void Close() + { + InputReceiver.currentSelectedInputField = null; + SearchPanelGameObject.SetActive(false); + SelectionManager.Instance.SelectPreviousView(); + } + + public void ClearFilter() + { + searchFilterTags = new HashSet(); + SearchPanelField.SetTextWithoutNotify(""); + SetupTags(); + } + + public void SetupTags() + { + if(tags != null) + { + CreateTagCategoryListItems(tags); + } + else + { + ModIOUnity.GetTagCategories(GetTags); + } + } + + void GetTags(ResultAnd resultAndTags) + { + if(resultAndTags.result.Succeeded()) + { + this.tags = resultAndTags.value; + CreateTagCategoryListItems(resultAndTags.value); + } + } + + void CreateTagCategoryListItems(TagCategory[] tags) + { + if(tags == null || tags.Length < 1) + { + return; + } + + ListItem.HideListItems(); + ListItem.HideListItems(); + TagJumpToSelection.ClearCache(); + + List listItems = new List(); + + //this can add the items to a list + foreach(TagCategory category in tags) + { + ListItem categoryListItem = ListItem.GetListItem(SearchPanelTagCategoryPrefab, SearchPanelTagParent, Browser.Instance.colorScheme); + categoryListItem.Setup(category.name); + + IEnumerable v = CreateTagListItems(category); + listItems.AddRange(v.Select(x => x.selectable)); + } + UpdateBumperIcons(); + + var orderedItems = listItems.OrderBy(x => x.transform.GetSiblingIndex()).ToList(); + ReorderAndSetNavigation(orderedItems); + LayoutRebuilder.ForceRebuildLayoutImmediate(SearchPanelTagParent as RectTransform); + FieldNavigationUnlock(orderedItems); + } + + void ReorderAndSetNavigation(List items) + { + //Clear any previous navigation properties + items.ForEach(x => + { + var nav = x.navigation; + nav.mode = Navigation.Mode.Explicit; + nav.selectOnUp = null; + nav.selectOnDown = null; + nav.selectOnRight = null; + nav.selectOnLeft = null; + x.navigation = nav; + }); + + //Link up next/prev navigation links (if possible) + for(int i = 0; i < items.Count(); i++) + { + var currentNav = items[i].navigation; + + if(GetWithinBoundsOfList(items, i - 1, out var previous)) + { + currentNav.selectOnUp = previous; + + var previousNav = previous.navigation; + previousNav.selectOnDown = items[i]; + previous.navigation = previousNav; + } + else + { + //Upmost nagivation leads to the search panel field + currentNav.selectOnUp = SearchPanelField; + } + + if(GetWithinBoundsOfList(items, i + 1, out var next)) + { + currentNav.selectOnDown = next; + + var nextNav = next.navigation; + nextNav.selectOnDown = items[i]; + next.navigation = nextNav; + } + else + { + //Null down navigation for last field, we access the functionality + //through controller buttons + currentNav.selectOnDown = null; + } + + items[i].navigation = currentNav; + } + } + + /// + /// Attempt to get an indexed T + /// Example: + /// if(GetWithinBoundsOfList(items, i + 1, out var next)) { } + /// + /// true the item exists + bool GetWithinBoundsOfList(List list, int index, out T item) + { + item = default(T); + if(index >= 0 && index < list.Count()) + { + item = list[index]; + return true; + } + return false; + } + + /// + /// Creates and sets up data for list items + /// + /// Fetched items + IEnumerable CreateTagListItems(TagCategory category) + { + bool setJumpTo = false; + + foreach(ModIO.Tag tag in category.tags) + { + ListItem tagListItem = ListItem.GetListItem(SearchPanelTagPrefab, SearchPanelTagParent, Browser.Instance.colorScheme); + tagListItem.Setup(tag.name, category.name); + tagListItem.SetViewportRestraint(SearchPanelTagParent as RectTransform, SearchPanelTagViewport); + + if(!setJumpTo) + { + tagListItem.Setup(); + setJumpTo = true; + } + + yield return tagListItem; + } + } + + public void ApplyFilter() + { + SearchResults.Instance.Open(SearchPanelField.text); + } + + /// + /// This updates the display of the bumper icons in the search panel, showing whether or not + /// you can continue jumping to the next tag category with the specified bumper input. + /// + internal void UpdateBumperIcons() + { + Color left = SearchPanelLeftBumperIcon.color; + left.a = TagJumpToSelection.CanTabLeft() ? 1f : 0.2f; + SearchPanelLeftBumperIcon.color = left; + + Color right = SearchPanelRightBumperIcon.color; + right.a = TagJumpToSelection.CanTabRight() ? 1f : 0.2f; + SearchPanelRightBumperIcon.color = right; + } + + + internal void ToggleState() + { + if(SearchPanelGameObject.activeSelf) + { + Instance.Close(); + } + else + { + Instance.Open(); + } + } + } +} diff --git a/UI/Scripts/Panels/SearchPanel.cs.meta b/UI/Scripts/Panels/SearchPanel.cs.meta new file mode 100644 index 0000000..3fad013 --- /dev/null +++ b/UI/Scripts/Panels/SearchPanel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f256e83bf0cc2d2429e619e70800b638 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Panels/SearchResults.cs b/UI/Scripts/Panels/SearchResults.cs new file mode 100644 index 0000000..5591231 --- /dev/null +++ b/UI/Scripts/Panels/SearchResults.cs @@ -0,0 +1,388 @@ +using System.Collections; +using System.Linq; +using ModIO; +using ModIO.Util; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + public class SearchResults : SelfInstancingMonoSingleton + { + [Header("Search Results Panel")] + [SerializeField] public GameObject SearchResultsPanel; + [SerializeField] Image SearchResultsHeaderBackground; + [SerializeField] GameObject SearchResultsHeaderRefineButton; + [SerializeField] RectTransform SearchResultsContentRefineButton; + [SerializeField] GameObject SearchResultsListItemPrefab; + [SerializeField] + public Transform SearchResultsListItemParent; + [SerializeField] Scrollbar SearchResultsScrollBar; + [SerializeField] TMP_Text SearchResultsFoundText; + [SerializeField] TMP_Text SearchResultsMainTagName; + [SerializeField] TMP_Text SearchResultsMainTagCategoryName; + [SerializeField] GameObject SearchResultsMainTag; + [SerializeField] TMP_Text SearchResultsNumberOfOtherTags; + [SerializeField] GameObject SearchResultsSearchPhrase; + [SerializeField] TMP_Text SearchResultsSearchPhraseText; + [SerializeField] TMP_Dropdown SearchResultsSortByDropdown; + [SerializeField] GameObject SearchResultsEndOfResults; + [SerializeField] GameObject SearchResultsNoResultsText; + [SerializeField] TMP_Text SearchResultsEndOfResultsHeader; + [SerializeField] TMP_Text SearchResultsEndOfResultsText; + [SerializeField] Selectable SearchResultsRefineFilter; + [SerializeField] Selectable SearchResultsFilterBy; + [SerializeField] GameObject ProcessingAnimation; + + bool moreResultsToShow; + long numberOfRemainingResultsToShow; + string lastUsedSearchPhrase; + SearchResultsStatus searchResultsStatus; + IEnumerator searchResultsHeaderTransition; + float searchResultsLastAlphaTarget = -1; + + internal Translation SearchResultsFoundTextTranslation = null; + internal Translation SearchResultsNumberOfOtherTagsTranslation = null; + internal Translation SearchResultsEndOfResultsHeaderTranslation = null; + internal Translation SearchResultsEndOfResultsTextTranslation = null; + + enum SearchResultsStatus + { + GettingFirstResults, + RetrievedFirstResults, + GettingMoreResults, + RetrievedAllResults + } + + #region Search Results + + /// + /// This opens the search results panel as well as inputs a search phrase to be used + /// + /// + internal void Open(string searchPhrase) + { + ClearButtonNavigation(); + + lastUsedSearchPhrase = searchPhrase; + Navigating.GoToPanel(SearchResultsPanel); + + Refresh(); + SelectionManager.Instance.SelectView(UiViews.SearchResults); + } + + internal void OpenWithoutRefreshing() + { + SelectionManager.Instance.SelectView(UiViews.SearchResults); + Navigating.GoToPanel(SearchResultsPanel); + } + + internal SearchFilter GetFilter(int page = 0, string searchPhrase = null) + { + searchPhrase = searchPhrase ?? lastUsedSearchPhrase; + + SearchFilter filter = new SearchFilter(); + + switch(SearchResultsSortByDropdown.value) + { + case 0: + filter.SortBy(SortModsBy.Popular); + break; + case 1: + filter.SortBy(SortModsBy.Downloads); + break; + case 2: + filter.SortBy(SortModsBy.Subscribers); + break; + case 3: + filter.SortBy(SortModsBy.Rating); + break; + } + + filter.AddSearchPhrase(searchPhrase); + foreach(var tag in SearchPanel.searchFilterTags) + { + filter.AddTag(tag.name); + } + + filter.SetPageIndex(page); + filter.SetPageSize(100); + + return filter; + } + + public void Refresh() + { + // Reset results while waiting + SearchResultsMainTag.SetActive(false); + SearchResultsSearchPhrase.SetActive(false); + Translation.Get(SearchResultsFoundTextTranslation, "", SearchResultsFoundText); + Translation.Get(SearchResultsEndOfResultsHeaderTranslation, "", SearchResultsEndOfResultsHeader); + Translation.Get(SearchResultsEndOfResultsTextTranslation, "", SearchResultsEndOfResultsText); + + searchResultsStatus = SearchResultsStatus.GettingFirstResults; + ListItem.HideListItems(); + SearchResultsNoResultsText.SetActive(false); + ProcessingAnimation.gameObject.SetActive(true); + ModIOUnity.GetMods(GetFilter(), Get); + } + + public void OnScrollValueChange() + { + CheckToLoadMoreModsOrForFooterDisplay(); + OnScrollValueChangeHeaderCheck(); + CheckRefineButtonDisplay(); + } + + /// + /// Based on the scroll position this will either load an additional 100 mods to the results + /// list or display the appropriate footer message for number of results + /// + void CheckToLoadMoreModsOrForFooterDisplay() + { + if(!moreResultsToShow || searchResultsStatus != SearchResultsStatus.RetrievedFirstResults) + { + return; + } + + RectTransformOverlap container = new RectTransformOverlap(SearchResultsListItemParent as RectTransform); + RectTransformOverlap screen = new RectTransformOverlap(Home.Instance.BrowserPanel.transform as RectTransform); + + // Check how close we are to the bottom. If we are half a screen height from the last + // result to display, lets begin loading in more results + if(container.yMin < 0 && Mathf.Abs(container.yMin) < screen.height / 2f) + { + searchResultsStatus = SearchResultsStatus.GettingMoreResults; + Home.Instance.AddPlaceholdersToList(SearchResultsListItemParent, SearchResultsListItemPrefab, (int)numberOfRemainingResultsToShow); + ModIOUnity.GetMods(GetFilter(1), Get); + } + } + + /// + /// Checks the scroll position and determines whether or not to begin an alpha transition of + /// the header background image (opaque when scrolled, transparent when at viewport top) + /// + void OnScrollValueChangeHeaderCheck() + { + float targetAlpha = -1f; + + // Get the target alpha based on what the scrollbar value is + if(SearchResultsScrollBar.value < 1f) + { + targetAlpha = SearchResultsHeaderBackground.color.a == 1f ? targetAlpha : 1f; + } + else + { + targetAlpha = SearchResultsHeaderBackground.color.a == 0f ? targetAlpha : 0f; + } + + // If the target alpha needs to change, start the transition coroutine here + if(targetAlpha != -1f && targetAlpha != searchResultsLastAlphaTarget) + { + searchResultsLastAlphaTarget = targetAlpha; + if(searchResultsHeaderTransition != null) + { + StopCoroutine(searchResultsHeaderTransition); + } + searchResultsHeaderTransition = ImageTransitions.Alpha(SearchResultsHeaderBackground, targetAlpha); + StartCoroutine(searchResultsHeaderTransition); + } + } + + /// + /// Checks whether or not to use the header refine button or the content refine button based + /// off of the scroll position + /// + void CheckRefineButtonDisplay() + { + float refineButtonY = SearchResultsContentRefineButton.position.y + - (SearchResultsContentRefineButton.sizeDelta.y + * SearchResultsContentRefineButton.pivot.y); + + if(refineButtonY > Screen.height - SearchResultsHeaderBackground.rectTransform.sizeDelta.y) + { + // NOTE: checking activeSelf may seem unnecessary but reduces extra UI Dirty redraws + if(SearchResultsContentRefineButton.gameObject.activeSelf) + { + SearchResultsContentRefineButton.gameObject.SetActive(false); + } + if(!SearchResultsHeaderRefineButton.activeSelf) + { + SearchResultsHeaderRefineButton.SetActive(true); + } + } + else + { + // NOTE: checking activeSelf may seem unnecessary but reduces extra UI Dirty redraws + if(!SearchResultsContentRefineButton.gameObject.activeSelf) + { + SearchResultsContentRefineButton.gameObject.SetActive(true); + } + if(SearchResultsHeaderRefineButton.activeSelf) + { + SearchResultsHeaderRefineButton.SetActive(false); + } + } + } + + void Get(ResultAnd response) + { + if(response.result.Succeeded()) + { + // set the status so we know how to control + if(searchResultsStatus == SearchResultsStatus.GettingFirstResults) + { + searchResultsStatus = SearchResultsStatus.RetrievedFirstResults; + } + else if(searchResultsStatus == SearchResultsStatus.GettingMoreResults) + { + searchResultsStatus = SearchResultsStatus.RetrievedAllResults; + } + + string numberOfResults = Utility.GenerateHumanReadableNumber(response.value.totalSearchResultsFound); + numberOfRemainingResultsToShow = response.value.totalSearchResultsFound - 100; + moreResultsToShow = numberOfRemainingResultsToShow > 0; + + // show searched tag info + var enumerator = SearchPanel.searchFilterTags.GetEnumerator(); + if(enumerator.MoveNext()) + { + // set active tag info + SearchResultsMainTagName.text = enumerator.Current.name; + SearchResultsMainTagCategoryName.text = enumerator.Current.category; + + SearchResultsMainTag.SetActive(true); + + Translation.Get(SearchResultsNumberOfOtherTagsTranslation, "and {number} other tags", SearchResultsNumberOfOtherTags, $"{SearchPanel.searchFilterTags.Count - 1}"); + + LayoutRebuilder.ForceRebuildLayoutImmediate(SearchResultsMainTag.transform.parent as RectTransform); + } + else + { + SearchResultsMainTag.SetActive(false); + } + + // display the used search phrase + if(SearchPanel.Instance.SearchPanelField.text.Length > 0) + { + SearchResultsSearchPhrase.SetActive(true); + SearchResultsSearchPhraseText.text = SearchPanel.Instance.SearchPanelField.text; + } + else + { + SearchResultsSearchPhrase.SetActive(false); + } + + // Setup the end of results footer and text + if(response.value.totalSearchResultsFound == 0) + { + SearchResultsNoResultsText.SetActive(true); + SearchResultsEndOfResults.SetActive(false); + } + else if(moreResultsToShow && searchResultsStatus == SearchResultsStatus.RetrievedFirstResults) + { + SearchResultsEndOfResults.gameObject.SetActive(false); + } + else + { + long numberOfDisplayedMods = response.value.totalSearchResultsFound > 200 ? 200 : response.value.totalSearchResultsFound; + Translation.Get(SearchResultsEndOfResultsHeaderTranslation, "You've gone through {number} mods", SearchResultsEndOfResultsHeader, $"{numberOfDisplayedMods}"); + Translation.Get(SearchResultsEndOfResultsTextTranslation, "Let's refine your search if you haven't found what you were looking for.", SearchResultsEndOfResultsText); + SearchResultsNoResultsText.SetActive(false); + SearchResultsEndOfResults.SetActive(true); + } + + //Translation.Get(SearchResultsFoundTextTranslation, "", SearchResultsFoundText); + if(string.IsNullOrWhiteSpace(lastUsedSearchPhrase)) + { + Translation.Get(SearchResultsFoundTextTranslation, "{num} Mods found", SearchResultsFoundText, $"{numberOfResults}"); + } + else + { + Translation.Get(SearchResultsFoundTextTranslation, "{num} Mods found for {lastUsedSearchPhrase}", SearchResultsFoundText, $"{numberOfResults}", $"\"{lastUsedSearchPhrase}\""); + } + + // Create list items for the mod profiles we now have + Populate(response.value.modProfiles); + } + else + { + Translation.Get(SearchResultsFoundTextTranslation, "A problem occurred", SearchResultsFoundText); + } + + ProcessingAnimation.gameObject.SetActive(false); + } + + void Populate(ModProfile[] mods) + { + for(int i = 0; i < mods.Length; i++) + { + ListItem li = ListItem.GetListItem(SearchResultsListItemPrefab, SearchResultsListItemParent, Browser.Instance.colorScheme); + li.Setup(mods[i]); + li.SetViewportRestraint(SearchResultsListItemParent as RectTransform, null); + + // if you're the last row, have a larger viewport offset for bottom to show 'end of results' + int lastRowSize = mods.Length % 5; + lastRowSize = lastRowSize == 0 ? 5 : lastRowSize; + + if(i >= mods.Length - lastRowSize) + { + // TODO i'm not a fan of using a GC method here, but it's max 5x for the entire + // search. replace this in future + li.gameObject.GetComponent().SetAsLastRowItem(); + } + } + + // TODO show tags that are part of the search + + ListItem.HideListItems(true); + + UpdateButtonNavigation(); + } + + #endregion + + #region Button navigation helper methods + + void ClearButtonNavigation() + { + var refineNav = SearchResultsRefineFilter.navigation; + refineNav.selectOnDown = null; + SearchResultsRefineFilter.navigation = refineNav; + + var filterNav = SearchResultsFilterBy.navigation; + filterNav.selectOnDown = null; + SearchResultsFilterBy.navigation = filterNav; + } + + void UpdateButtonNavigation() + { + var childrenBegin = 2; + var childrenEnd = 7; + + var items = ListItem.Where(x => + { + var query = x.transform.GetSiblingIndex() > childrenBegin + && x.transform.GetSiblingIndex() <= childrenEnd; + + return query; + }) + .OrderByDescending(x => x.transform.GetSiblingIndex()) + .ToList(); + + if(items.Count > 0) + { + var refineNav = SearchResultsRefineFilter.navigation; + refineNav.selectOnDown = items[0].selectable; + SearchResultsRefineFilter.navigation = refineNav; + + var filterNav = SearchResultsFilterBy.navigation; + filterNav.selectOnDown = items[0].selectable; + SearchResultsFilterBy.navigation = filterNav; + } + } + + #endregion + } +} diff --git a/UI/Scripts/Panels/SearchResults.cs.meta b/UI/Scripts/Panels/SearchResults.cs.meta new file mode 100644 index 0000000..78f4e16 --- /dev/null +++ b/UI/Scripts/Panels/SearchResults.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 39e9b7fadd921ea48aa046a7d8fd1d14 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/SelectionManager.cs b/UI/Scripts/SelectionManager.cs new file mode 100644 index 0000000..c5b6dfe --- /dev/null +++ b/UI/Scripts/SelectionManager.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using ModIO.Util; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + class SelectionManager : SelfInstancingMonoSingleton + { + public UiViews currentView { get; private set; } = UiViews.Browse; + private UiViews previousView { get; set; } = UiViews.Nothing; + + private Dictionary> selectionHistory = new Dictionary>(); + private Dictionary viewConfig; + + //TODO! Get rid of this setting and hardcode it. Having this set on a prefab only adds to prefab vulnerability. + public List defaultViews = new List(); + + protected override void Awake() + { + base.Awake(); + + gameObject.SetActive(false); + + if(defaultViews.Any(x => x.viewType == UiViews.Nothing)) + { + string error = $"Unable to set up a default view with the UiViews type {UiViews.Nothing}."; + Debug.LogError(error); + throw new UnityException(error); + } + + viewConfig = defaultViews.ToDictionary(x => x.viewType, x => x.defaultSelectedObject); + } + + public void Update() + { + if(!Browser.Instance.BrowserCanvas.activeSelf) + { + return; + } + + if(currentView == UiViews.Nothing) + { + return; + } + + if(EventSystem.current.currentSelectedGameObject != null) + { + if(CurrentViewHistory().LastOrDefault() != EventSystem.current.currentSelectedGameObject) + { + CurrentViewHistory().Add(EventSystem.current.currentSelectedGameObject); + } + } + else + { + InputNavigation.Instance.SelectGameObject(CurrentViewHistory().Last()); + } + } + + List CurrentViewHistory() + { + if(selectionHistory[currentView] == null) + { + return LazyInstantiateHistory(currentView); + } + + return selectionHistory[currentView]; + } + + public void SelectMostRecentStillActivatedUiItem(bool force = false) + { + if(EventSystem.current.currentSelectedGameObject == null || force) + { + GameObject item = CurrentViewHistory().LastOrDefault(x => x.activeSelf); + item = item == null ? viewConfig[currentView] : item; + CurrentViewHistory().Clear(); + CurrentViewHistory().Add(item); + + InputNavigation.Instance.SelectGameObject(item); + } + } + + void ForceSelectMostRecentStillActivatedUiItem() + { + SelectMostRecentStillActivatedUiItem(true); + } + + public void SetNewViewDefaultSelection(UiViews view, Selectable selectable) + { + SelectionViewConfigItem v = GetViewConfigItem(view); + v.defaultSelectedObject = selectable.gameObject; + viewConfig[view] = selectable.gameObject; + LazyInstantiateHistory(view); + selectionHistory[view].Clear(); + } + + public void SelectPreviousView() + { + SelectView(previousView); + } + + public void SelectView(UiViews view) + { + if(view == UiViews.Nothing) + { + throw new UnityException($"No views with the type '{UiViews.Nothing}' allowed."); + } + if(!defaultViews.Any(x => x.viewType == view)) + { + throw new UnityException($"There is no configuration for the view {view}."); + } + + SelectionViewConfigItem viewConfigItem = GetViewConfigItem(view); + + previousView = currentView; + currentView = viewConfigItem.viewType; + + LazyInstantiateHistory(currentView); + + bool revertToDefaultSelection = (view != UiViews.Browse || CurrentViewHistory().Count() == 0); + if(revertToDefaultSelection) + { + GameObject defaultObject = viewConfig[currentView]; + InputNavigation.Instance.SelectGameObject(defaultObject); + + CurrentViewHistory().Clear(); + CurrentViewHistory().Add(defaultObject); + } + else + { + ForceSelectMostRecentStillActivatedUiItem(); + } + } + + List LazyInstantiateHistory(UiViews view) + { + if(!selectionHistory.ContainsKey(view)) + { + var list = new List(); + selectionHistory.Add(view, list); + return list; + } + + return selectionHistory[view]; + } + + SelectionViewConfigItem GetViewConfigItem(UiViews view) + { + SelectionViewConfigItem viewConfigItem = defaultViews.FirstOrDefault(x => x.viewType == view); + if(viewConfigItem == null) + { + throw new NotImplementedException($"The configuration for the view '{view}' does not exist."); + } + + return viewConfigItem; + } + } + +} diff --git a/UI/Scripts/SelectionManager.cs.meta b/UI/Scripts/SelectionManager.cs.meta new file mode 100644 index 0000000..eb9a5f4 --- /dev/null +++ b/UI/Scripts/SelectionManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b276e6c7ee7344844bd2d09adae7074e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/SelectionViewConfigItem.cs b/UI/Scripts/SelectionViewConfigItem.cs new file mode 100644 index 0000000..debe71a --- /dev/null +++ b/UI/Scripts/SelectionViewConfigItem.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine; + +[Serializable] +public class SelectionViewConfigItem +{ + public UiViews viewType; + public GameObject defaultSelectedObject; +} + diff --git a/UI/Scripts/SelectionViewConfigItem.cs.meta b/UI/Scripts/SelectionViewConfigItem.cs.meta new file mode 100644 index 0000000..42534ee --- /dev/null +++ b/UI/Scripts/SelectionViewConfigItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 282c5400d21b4bb4eb409e050d525542 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/SingletonAwakener.cs b/UI/Scripts/SingletonAwakener.cs new file mode 100644 index 0000000..938bc7f --- /dev/null +++ b/UI/Scripts/SingletonAwakener.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; +using System.Linq; +using ModIO.Util; +using UnityEngine; + +namespace ModIOBrowser +{ + public class SingletonAwakener : MonoBehaviour + { + private bool hasAwakened = false; + + public List singletons; + + private void Awake() + { + AttemptInitilization(); + } + + private void SetupSingletons() + { + singletons + .SelectMany(x => x.GetComponentsInChildren()) + .ToList() + .ForEach(x => x.SetupSingleton()); + } + + public void AttemptInitilization() + { + if(!hasAwakened) + { + SetupSingletons(); + } + } + } +} diff --git a/UI/Scripts/SingletonAwakener.cs.meta b/UI/Scripts/SingletonAwakener.cs.meta new file mode 100644 index 0000000..e33e69e --- /dev/null +++ b/UI/Scripts/SingletonAwakener.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47405576e9171c7448ffd9a3ef83beed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/Sound.cs b/UI/Scripts/Sound.cs new file mode 100644 index 0000000..d79629b --- /dev/null +++ b/UI/Scripts/Sound.cs @@ -0,0 +1,76 @@ +// using System; +// using System.Collections; +// using ModIO; +// using ModIOBrowser.Implementation; +// using UnityEngine; +// using static ModIO.Utility; +// +// namespace ModIOBrowser +// { +// /// +// /// Plays a sound +// /// +// class Sound : MonoBehaviour +// { +// const float soundFatiguePreventionTime = 0.05f; +// const float UNSET_VOLUME = -1f; +// +// static float lastPlayedHoverSoundSeconds; +// +// public const string Click = "SoundClick"; +// public const string Hover = "SoundHover"; +// +// public AudioSource audioSource; +// public float originalVolume = UNSET_VOLUME; +// +// /// +// /// Play a clicking sound. +// /// +// public static void PlayClick() => Play(Click); +// +// /// +// /// Play a hovering sound. +// /// +// public static void PlayHover() +// { +// //This prevents an "rrrrrr" sound if you pass through many objects +// if(lastPlayedHoverSoundSeconds + soundFatiguePreventionTime > Time.realtimeSinceStartup) +// { +// return; +// } +// lastPlayedHoverSoundSeconds = Time.realtimeSinceStartup; +// +// Play(Hover); +// } +// +// /// +// /// Plays a sound from the path. The path will be used as an ID/key +// /// for the object pool. The sound will automatically allocate and +// /// return itself to the pool. +// /// +// /// +// public static void Play(string idPath) +// { +// var mm = PrefabPool.Instance.Get(idPath); +// +// if(mm.originalVolume == UNSET_VOLUME) +// { +// mm.originalVolume = mm.audioSource.volume; +// } +// +// mm.audioSource.volume = mm.originalVolume * Browser.Instance.uiConfig.volume; +// mm.audioSource.Play(); +// +// CoroutineRunner.Instance.Run(mm.Return(idPath, mm.audioSource.clip.length)); +// } +// +// /// +// /// Return the sound to the pool after a given amount of time. +// /// +// private IEnumerator Return(string id, float delay) +// { +// yield return new WaitForSeconds(delay); +// PrefabPool.Instance.Return(id, this); +// } +// } +// } diff --git a/UI/Scripts/Sound.cs.meta b/UI/Scripts/Sound.cs.meta new file mode 100644 index 0000000..b6240a9 --- /dev/null +++ b/UI/Scripts/Sound.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 330dee88cac6dfb4480530e3ba360e33 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/SoundPlayer.cs b/UI/Scripts/SoundPlayer.cs new file mode 100644 index 0000000..c39fd91 --- /dev/null +++ b/UI/Scripts/SoundPlayer.cs @@ -0,0 +1,107 @@ +using ModIO.Util; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + /// + /// The purpose of this class is to enable playing sound via attaching it + /// to various onhover and onclick properties in the Unity browser. + /// If you intend to play sounds directly from the code, instead just use + /// Sound.Play(address); + /// + /// It also helps browser handle volume. + /// + public class SoundPlayer : SelfInstancingMonoSingleton + { + const float soundFatiguePreventionTime = 0.05f; + static float lastPlayedHoverSoundSeconds; + + [Tooltip("(Optional) You can assign an audio slider for the browser to listen to, this will automatically adjust the volume of the audio clips being played in the Browser. You can also use the SetVolume(float) method to change the volume manually.")] + public Slider audioSlider; + + [System.Serializable] + internal class SoundEffect + { + public AudioClip clip; + + [Tooltip("You can use this to quickly normalize the audio clip before it is affected by global volume")] + public float defaultVolume; + } + + [SerializeField] SoundEffect SoundClick; + [SerializeField] SoundEffect SoundHover; + + AudioSource aud; + + void Start() + { + AttachAudioSlider(audioSlider); + } + + /// + /// This will attach a Slider component to the Browser sound player. It will automatically + /// update the UI volume according to the Slider's value. + /// + /// the slider to be used for setting the volume + public static void AttachAudioSlider(Slider slider) + { + if(slider == null) + { + return; + } + + // Remove the listener in case we have already assigned it + slider.onValueChanged.RemoveListener(SetVolume); + + // Add the new listener + slider.onValueChanged.AddListener(SetVolume); + } + + /// + /// Sets the ModIO Browser volume (0f - 1.0f). + /// + public static void SetVolume(float volume) + { + if(Browser.SingletonIsInstantiated()) + { + Browser.Instance.uiConfig.volume = volume; + } + + } + + /// + /// Gives a reference the the AudioSource being used by the ModIOBrowser + /// + /// + public static AudioSource AudioSource() + { + if(Instance.aud == null) + { + Instance.aud = Instance.gameObject.AddComponent(); + } + return Instance.aud; + } + + void PlaySound(SoundEffect sfx) + { + if(!Browser.SingletonIsInstantiated()) + { + return; + } + + //This prevents an "rrrrrr" sound if you pass through many objects + if(lastPlayedHoverSoundSeconds + soundFatiguePreventionTime > Time.realtimeSinceStartup) + { + return; + } + lastPlayedHoverSoundSeconds = Time.realtimeSinceStartup; + + AudioSource().PlayOneShot(sfx.clip, sfx.defaultVolume * Browser.Instance.uiConfig.volume); + } + + public static void PlayClick() => Instance.PlaySound(Instance.SoundClick); + + public static void PlayHover() =>Instance.PlaySound(Instance.SoundHover); + } +} diff --git a/UI/Scripts/SoundPlayer.cs.meta b/UI/Scripts/SoundPlayer.cs.meta new file mode 100644 index 0000000..a008781 --- /dev/null +++ b/UI/Scripts/SoundPlayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: abcfba95a5a23e141b14a3ae260ab189 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/UiSettings.meta b/UI/Scripts/UiSettings.meta new file mode 100644 index 0000000..53db8fb --- /dev/null +++ b/UI/Scripts/UiSettings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c094fcc3e053f54eb5711884bda8c5b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/UiSettings/UiSettings.cs b/UI/Scripts/UiSettings/UiSettings.cs new file mode 100644 index 0000000..0d0108d --- /dev/null +++ b/UI/Scripts/UiSettings/UiSettings.cs @@ -0,0 +1,29 @@ +using ModIOBrowser.Implementation; +using UnityEngine; + +namespace ModIOBrowser +{ + [CreateAssetMenu(fileName = "UiSettings.asset", menuName = "ModIo/UiSettings")] + public partial class UiSettings : ScriptableObject + { + public bool StandaloneUsesVKDelegate = true; + public bool AndroidUsesVKDelegate = false; + public bool IOSUsesVKDelegate = false; + + public TranslatedLanguages Language = TranslatedLanguages.English; + + [HideInInspector] + public GlyphPlatforms GlyphPlatform; + + [Range(0f, 1f)] + public float volume = 1f; + +#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA + public bool ShouldWeUseVirtualKeyboardDelegate() => StandaloneUsesVKDelegate; +#elif !UNITY_EDITOR && UNITY_ANDROID + public bool ShouldWeUseVirtualKeyboardDelegate() => AndroidUsesVKDelegate; +#elif !UNITY_EDITOR && UNITY_IOS + public bool ShouldWeUseVirtualKeyboardDelegate() => IOSUsesVKDelegate; +#endif + } +} diff --git a/UI/Scripts/UiSettings/UiSettings.cs.meta b/UI/Scripts/UiSettings/UiSettings.cs.meta new file mode 100644 index 0000000..eedb180 --- /dev/null +++ b/UI/Scripts/UiSettings/UiSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 064fc74cdbf63b94d96be3341706d869 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Scripts/UiViews.cs b/UI/Scripts/UiViews.cs new file mode 100644 index 0000000..8da1eba --- /dev/null +++ b/UI/Scripts/UiViews.cs @@ -0,0 +1,34 @@ +public enum UiViews +{ + Nothing, + + //Big panels: + Browse, + Collection, + ModDetails, + Downloads, + Report, + + //Panels via auth panel: + AuthPanel, + AuthPanel_Waiting, + AuthPanel_LogOut, + AuthPanel_Problem, + AuthPanel_TermsOfUse, + AuthPanel_Email, + AuthPanel_Code, + AuthPanel_Complete, + + SearchFilters, + SearchResults, + + //Minor panels: + ConfirmUninstall, + ContextMenu, + + NotificationPopup, + + Input5Digits, + + +} diff --git a/UI/Scripts/UiViews.cs.meta b/UI/Scripts/UiViews.cs.meta new file mode 100644 index 0000000..cb17697 --- /dev/null +++ b/UI/Scripts/UiViews.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f43255c5321a8fb4cbd520b63f472b49 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/SoundClick.prefab b/UI/SoundClick.prefab new file mode 100644 index 0000000..93d7b76 --- /dev/null +++ b/UI/SoundClick.prefab @@ -0,0 +1,143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8835443316407937473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3795605667935323192} + - component: {fileID: 3229280020641105771} + - component: {fileID: 8029960759454986326} + m_Layer: 0 + m_Name: SoundClick + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3795605667935323192 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8835443316407937473} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3229280020641105771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8835443316407937473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 330dee88cac6dfb4480530e3ba360e33, type: 3} + m_Name: + m_EditorClassIdentifier: + audioSource: {fileID: 8029960759454986326} +--- !u!82 &8029960759454986326 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8835443316407937473} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 8300000, guid: 86f9eebe8e027f54c8029709e5862ed1, type: 3} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 diff --git a/UI/SoundClick.prefab.meta b/UI/SoundClick.prefab.meta new file mode 100644 index 0000000..e4c5c98 --- /dev/null +++ b/UI/SoundClick.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: df8dbfd7eb920c84cac3428cdab16971 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/SoundHover.prefab b/UI/SoundHover.prefab new file mode 100644 index 0000000..2f733aa --- /dev/null +++ b/UI/SoundHover.prefab @@ -0,0 +1,143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8835443316407937473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3795605667935323192} + - component: {fileID: 3229280020641105771} + - component: {fileID: 8029960759454986326} + m_Layer: 0 + m_Name: SoundHover + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3795605667935323192 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8835443316407937473} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3229280020641105771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8835443316407937473} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 330dee88cac6dfb4480530e3ba360e33, type: 3} + m_Name: + m_EditorClassIdentifier: + audioSource: {fileID: 8029960759454986326} +--- !u!82 &8029960759454986326 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8835443316407937473} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 8300000, guid: 59d84de1300d23946834a15eaeca1303, type: 3} + m_PlayOnAwake: 0 + m_Volume: 0.5 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 diff --git a/UI/SoundHover.prefab.meta b/UI/SoundHover.prefab.meta new file mode 100644 index 0000000..b5d8ed8 --- /dev/null +++ b/UI/SoundHover.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e79ecd68380d674eac69e8f8f33193f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites.meta b/UI/Sprites.meta new file mode 100644 index 0000000..1b3c541 --- /dev/null +++ b/UI/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a9321fd788caf064ea078052c5aaa3c0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/12px_circle.png b/UI/Sprites/12px_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..2e74460d374d0ebfefa07eb7789a4f5660a6818f GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k&H|6fVg?3oVGw3ym^DWND9BhG zcoS*4GKK2tMv|W{hz1kTPs8R literal 0 HcmV?d00001 diff --git a/UI/Sprites/12px_circle.png.meta b/UI/Sprites/12px_circle.png.meta new file mode 100644 index 0000000..aeb88a4 --- /dev/null +++ b/UI/Sprites/12px_circle.png.meta @@ -0,0 +1,164 @@ +fileFormatVersion: 2 +guid: 76b0c694066d6224586590780d96ab40 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PS4 + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PS5 + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/20px-radius_dropshadow.png b/UI/Sprites/20px-radius_dropshadow.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb0d99c030065a9ff670897adfed677d7d4d7a3 GIT binary patch literal 2734 zcmaJ@dpMM78-E!YjGW3@?Q7CRm>K4PVRD#p+8UwRSgV*5hUQ>qM8npMDTOVf!@cf?ZdNYHA{8#H( z=l}q)Ixv77s#?QWUM)@4H}NDIt6I!OzTu)Byckh3O~3-YnLIiR4CK&aS)nW%b6;W` z%L4!)2sSlb6i(SjVDLCd+DZ&Eg~L~&0l>pEg->H7utXr870c!l;WLdl;2@hxgooiM zXbPXiiem?e1*{$7ASy$gz;I*2J-2`!DFhV(hb5wcDV#lAAt8kbf6q%$?N{6=IQTw9 zlt6_4T~s(F7$oroEYJn%9ZLLmflg(4c4!3rc3;VKd&o6RIRxw)W8WLFomt7^_p zz9b*KpOX*S74L)hCaD}gAF*T}BZ zbbTP%o0@Wes_@%{F}%TH{|J}duIDhe-d*qB*NX=(g}(CFwiy$1Kxw41Vl}>Whacv~ z@u-u2pz+^ZK+VN)ABXW zb@iAgq0Tm!Rf1ZhaP11rO=Yoz&8#|LXFK_0I0p-B_5~xnHpoJN-M9ho;}Nx37fh3H zb4g22>XGYuHxmtxg=C&8c5_f0P!E$mLr6-rqupAqAz^tjW&#Xk=-id~;B~+d-8asw zAq#-*09{}=pHvh97HZ!qcS;H^!EA85`55-($e|lVEn;a#x*EUT%3V_c3z(gfor64z zH_E;qamh^jd`S-PUnS%7T24- zI+5w89WE~^%DK^^<9et-otyvqmu{RvS1ko=^DN1{%c4uBhQELiOiE>U`!+z%8U>z? z5$CRTStYYj%Pa69qI30iqEX@Y=h({4k{sP3#?u!8){Xz#_ET#Xe^o`ZcC@g?ZmdQA zFnNyVx<5-2z*>5jFF(I`uBvh-G4A=JT;sp0 zy)H7vNEHMX;5;?|@&~c4Q{QiD(;2V7;b!31A3THjIbg(~NvZAEIm|z@f7<^3frc!b zzkvBbYT3)w^;G?hnEL0&l$vtoog}|^aF|AnvGu;1;5l?>SG-*vsUQT`>_oc?(0zYs z_e_*2zyGm=Xx?D_gV-y*Fe#T*+7Wr};=^QyO<)Rs(T3|1*$mFe!$vNWtV zc7QIF)0?(y4w|Y@dq2o_b^R^-3wzBpjSiFuTE@;LrLCo&dArrT?qc6KT4g%I`Vdvc zaltg0`c+v-!3?g+cX709dEt!Zquq8xqx-KN>On@90D2=05m3d~3r|*??!un0Qg7Y4 z-e3e+DjbxAxJR7?JB8)Z;&tFGo(1#1|E(GPLC(`Z?}njs@~foI-dHWLcnw7&lhmV!8m~)%&SI zy>M65r?T%(JxVl9(~F0d>7?Z5bEQDQY(44e1$YzN>aa)1*z}j>v+UW5Va`Df8(ApST~(2 zHs8g(YLk`Tykh_=?VmoDDwLfDuY9&&G|eqDel?LP5)cf)Y<1>^#L$>i#ve*pa+UAXkIFTIl^OAMHg z+YZwRiWrbS)bC{AWGspGCB}IT`>@#;gYVZx&mNUE<5~mGAF+F;drWe$@lom(k>-$D zw>n>TVKe#n2uOrMahmz*jE(zIyR*#K?6R8JI-2b?d}}*4%IDbcHk-y;3rR8jvTW0z zWxW%Aa#^Isse49lWXZSc$(1LZ^WIdgvU0zZ`K%)YF+GvOh z&Mb^K-GrS#b;gQG?d@lWkEX#I(qa-y=XCt45iQ4zt8MN?fLQ3+ttNGTbV9qmB2O1( zZf*Blw?>j%>b{(EW5@`#w4A^7D~-)REX5GyEIQ=$n!^~YakYAq8ACHD=zB=DC z_@&%mAuqODXr zxs7cD$*v=gH0+^EfMe?bHkrU&;UREnnKwn$0<69;zeYHg(FkSbc;@6ey cvAiZ4xP8b2rA5~ft^7d-`Ua8ZKGEs_0XLv=0{{R3 literal 0 HcmV?d00001 diff --git a/UI/Sprites/20px-radius_dropshadow.png.meta b/UI/Sprites/20px-radius_dropshadow.png.meta new file mode 100644 index 0000000..174931e --- /dev/null +++ b/UI/Sprites/20px-radius_dropshadow.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: bc62e97fd943d4c4b9c6037db82c8230 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 40, y: 40, z: 40, w: 40} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 1d8333c4d11c8c940babd440db0b1685 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/20px_dropshadow.png b/UI/Sprites/20px_dropshadow.png new file mode 100644 index 0000000000000000000000000000000000000000..4693db39e47a42e2a2c13900197d1cc1e45c6362 GIT binary patch literal 2734 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 P00000NkvXXu0mjfAciHL literal 0 HcmV?d00001 diff --git a/UI/Sprites/20px_outline_thin.png.meta b/UI/Sprites/20px_outline_thin.png.meta new file mode 100644 index 0000000..cd37258 --- /dev/null +++ b/UI/Sprites/20px_outline_thin.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 2c5791dcf492ba540ac131f751f70c40 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 20, y: 20, z: 20, w: 20} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 19036719a20068a4597a1a2b7fb35a76 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/40px_20px_capsule.png b/UI/Sprites/40px_20px_capsule.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc91f6137beba8b8fbc3dbeec7596c9ee1f5d6b GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<k}#7srqa#iq zAhqdjqptK^<~fkvN?bl1TFKaP)wNy>jq^5vH`sb+7WI8*r0R*a}&S@Ite>>ieiUA-lqTe`AY~% z{E+1MA_Kc_LGpl1dFrRRpQa-RR4DfRDdVWV$?n(ll5ux%tpzziPP1mvQ|4id(jfvn?#8{kn~ z*h2cq2AJQJ26(>2x#0#d;=&QqM+*7W0CHHkhxCy`zMpYdnE#?qqVZPQ6p(ekgB$0& z0pP~r2H596&}~sC4HlR9_S^unSNs9#W5oHfpaD=E6{bqzv#%Rq@XgL1kV4*Z1IVG_ zEi}MFobO80VVvM5$R()hu*ol4y;PJUp#_nA9PnG*_YCP0Ui!m2>*fhix%7vLZi?jK zxqS~T?xEG&Nu3aQZr=kV>*gt-q#yScP+DM9=?j$f*Ht%aEl6Q|JX1n7=N?!pb(!qw z5Q~GnunG6O1 z<56ney7gi_WTv+nB)aLlRb}8ZUDw-RQ2>KIM{#+H^Q2}I$d|7f=o_q#;(Eu1GfH1+ zmi8Ls;dzau-bUc00T(p+0@Z<&TW~ATr}$tU@aW%@2TeZuV^!ef8@Ry9ariWNvxsR# zTMQbdRvWC2_Pi8}J_;2&pmT=^bgC^?ntz`QpXYQk8y#cZHh%%7u|PZc_u4%G0000< KMNUMnLSTYy{N5q} literal 0 HcmV?d00001 diff --git a/UI/Sprites/40px_outline.png.meta b/UI/Sprites/40px_outline.png.meta new file mode 100644 index 0000000..432585b --- /dev/null +++ b/UI/Sprites/40px_outline.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 91a797609e9a1bf4eafc93d15a99087f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: b13b140b88ee5ae47a208d268a56993a + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons.meta b/UI/Sprites/Icons.meta new file mode 100644 index 0000000..4dac292 --- /dev/null +++ b/UI/Sprites/Icons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d4cab5b0afccf144b92d0cdaa0ee9379 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/Cog.png b/UI/Sprites/Icons/Cog.png new file mode 100644 index 0000000000000000000000000000000000000000..9eac5f3298507451b4dfdf3e373507d008564bb5 GIT binary patch literal 5016 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 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/Platform Icons/Nintendo.png.meta b/UI/Sprites/Icons/Platform Icons/Nintendo.png.meta new file mode 100644 index 0000000..0e4e293 --- /dev/null +++ b/UI/Sprites/Icons/Platform Icons/Nintendo.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 414f4e81374260440b9e822c8d833957 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 32c70fa4daab8174ab34af864a1107ee + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/Platform Icons/Oculus.png b/UI/Sprites/Icons/Platform Icons/Oculus.png new file mode 100644 index 0000000000000000000000000000000000000000..b395657ccde439863cb32b341b0417c0b1de2ab7 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eB{vS^l$B+ufx7RN6HaYMxT$oqL;BH}lfLG!u zZwd2Fm$?T7OPKFCm^JWb>1QRK@T_(ZwEs1!t);;IVHGPwa*yG$Ka-k$I$ped&^o>R z+)izu-bq>-=R|a$-L#j_ne@bLMLPSeDU+*jdc8Y)O~G#36SiMgU7}ahj7u)cR9tQU zEZ)VIV&i(#di#P1{xkZ{`5Vr~&bwz5nlkUBw(!g?tv(Vr|K6D)x#abO`7Nm(dyYOa z6FlbfY~{|vNxnr(UZ{(_TG>)KTP0z?-X$~Pc_oa$rp3$_}nFz-T=-;5ud4W5;+W~huc)7qK_boY$)yP12UtN7B)u9XABfx*+&&t;ucLK6T4 Cg^!{D literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/Platform Icons/Oculus.png.meta b/UI/Sprites/Icons/Platform Icons/Oculus.png.meta new file mode 100644 index 0000000..3940c38 --- /dev/null +++ b/UI/Sprites/Icons/Platform Icons/Oculus.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 86664f10f720c42488eea6cc8e8fd549 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 57800a8546cc4274788284900f84937b + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/Platform Icons/Playstation.png b/UI/Sprites/Icons/Platform Icons/Playstation.png new file mode 100644 index 0000000000000000000000000000000000000000..284131292b9d2de5d5d08c7f3e38e8ebae171a8d GIT binary patch literal 517 zcmV+g0{Z=lP)_J>Zcvy&NEi9Yhn-mT68Eltce=C} z+j)^2MFogNB9Y4`ffGT*nhxI-Zxo+Nl6=8AL4tei!rz}M3OENWf_>RFMFyd82p%n> zD+qx@u#o7pyre@gbDZPMrkeGyU|CpBmBpn6nOrkCgy4;4a0o#aAq0OkgF^_`n!!s8 z9_U^DqM7h-K`F#jHSL{(n+I+tJ}7QsPPhQeyVVrnY^+eX=A|+=m!o&FzMdK&i`_$0 zU<>d>UTb$UC$pUAta5gD(6ng>&>&k_p_@uFv$tgs-A%+RHtksd{F6qmLbp`e-Xae{ zmfB*gKa?9=Tjou_WoXdKGSPN{62~*RleN;`u55AGj-jlR`3R;s%piZ?NK}qYbp%`M znFq@zWyCh9>~hTAau#ZI;}oQLK=)6jv+Z<*lfWjcIsP@Gxw&KXe@KoZ+^L@|C+op1 z$oAADf-Kc}uzK@NwhNdOxlk#x{P__*|18P)0wR$}Br@O^9Z<^@TRhF-00000NkvXX Hu0mjfCz0CC literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/Platform Icons/Playstation.png.meta b/UI/Sprites/Icons/Platform Icons/Playstation.png.meta new file mode 100644 index 0000000..7824696 --- /dev/null +++ b/UI/Sprites/Icons/Platform Icons/Playstation.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: df059c317d9d7e14f929e2f13aec1a7d +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 63ba135f97087314482ddaa5f5cd5933 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/Platform Icons/Steam.png b/UI/Sprites/Icons/Platform Icons/Steam.png new file mode 100644 index 0000000000000000000000000000000000000000..ace914357ecf1f8f1c35a33234d657ff7c65001a GIT binary patch literal 565 zcmV-50?Pe~P)gO23|XYLRhjTOaTpK$Xa}ihO_R)nz?-` z#955PavUe#hDF{Qw*Unav?Vj3<4E>K_D#kD=8o@2Q54UPurF$VLJSmauTK)zaQVlE z`}*25(a1c}(ufZ)qL%C+*O~OU@?7VNj}>@N_IO?`2BG3#im;(9rOToO)zXR24!wy_ z?Uk7EpAYdA_0I7!!H@oYk$@ zU!iVWj9Vl!*b)OpRkC#6_{m;ShXn4deTz2xZgGJLUvqfQb*RV~RXIrma8G zz!acv`*X84%}3J}p?vn+ds!VmJ9!aRkjZ2+nJ9h$_ZoY~nhXcV00000NkvXXu0mjf Db^`T> literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/Platform Icons/Steam.png.meta b/UI/Sprites/Icons/Platform Icons/Steam.png.meta new file mode 100644 index 0000000..90eec5c --- /dev/null +++ b/UI/Sprites/Icons/Platform Icons/Steam.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 185dd140e706341438f5d0fef6a2e6f9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 0383a60678365e642a59761b1bdf6a3a + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/Platform Icons/Xbox.png b/UI/Sprites/Icons/Platform Icons/Xbox.png new file mode 100644 index 0000000000000000000000000000000000000000..f7052b0999c40cf99693bad69872821f1f2edb6c GIT binary patch literal 508 zcmVx1EFsr{C0qw*2eAV!!46CZSAr#^1g-2h%r$DfwmGc%e)hok~32zmPZT=iL*zb zjmjcU--sBWj5*d)Q!JL4qh(=RmTe+0&k)F5*|TKMD-!ozJyR@LH_2!$#<0!mq0Gm< zb}vbj^k(+pKJ+fc+)~?^BKURb6IhzNh5yasLeKsLZNn)}S$8S%s`!P#{>&P{r*^aeQ+7EsEk6GWml72@M#)En%#CuzWnsJIX738ae`b yCLihK5qQntoe(NM=O?&-JCFTw%49N`H{%a75gtuPw`vRk0000}0E9FPxkiBL0t1E}`v&t%>v*=0RbDI}n0netCn_>=}HlosW4#o5nVB zpP5ejKC!?R%7mB)5F*V%f@Vd-QjlRgF?qfo(mp_rvpkb$Z~1zrd<*njJm%ppy9z=egO#}apNqATZ6|d#g0yV zWmis?H7==xlvB#Hxl5@6@nyuf$t5R=fqz6igSdPz^F0^n8f_Yuzi#4VErdj%LP4Jp z_}$`Cve?C(b9DdC{)%nMJNW80?Guy1T7P^OyDp<(h1C+dSWv)6r*7!LyjecQJ{9m)Xfu6W z&&$yIQEf(>6Guj>yr5NR2QV#%6rH0zp$W&gg1@%Z@^2qFuEyQnLMkxHojyi+e7g>x za(%Ju#wsXqP>y?z_6bIfdme2_v1c%KCOO9D8WpS|1={pN-Bmk0PxU1&6HZL!JVQV# zoCH-*TuIh5*9=WCrp>r~Kt}>NP~+YBlEm$#Eq{e6a1@lD`O-NYJ71E#^^+(lcx*db z10`dtvj+dIhuV~{(T~GY@VzIdp* zX6x@DC79q+r=yBpH(EhXQsQufc8PWcM!}GZHILtD4cZslo*Q>2lgVUGogaiAPhO-H Ra1a0h002ovPDHLkV1k*%^PvC$ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/Platform Icons/itch.io.png.meta b/UI/Sprites/Icons/Platform Icons/itch.io.png.meta new file mode 100644 index 0000000..8589fd1 --- /dev/null +++ b/UI/Sprites/Icons/Platform Icons/itch.io.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: c8011d3a7f1ce5a44aa30d529bc09fca +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 69d38ea78eb1f1b44bf94330d8d9a14f + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/X_icon.png b/UI/Sprites/Icons/X_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f36528ba01babe49f322b5f1f6d89c60d682285a GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k&H|6fVg?3oVGw3ym^DWND9BhG zAbU_flPY;uHOwEvAb9P&jwr-+@I-z=t)&fmJRr!EMe-?koQs h>-JS}3wCZ}u)BTumFw~HRG@ z9OUlAu-f=F8Gd)G+*|z!wXhwPCj*9+bM0sc4^KQQyW16VL48Y-(k+z z^f_7^LRgk@bZ_A3F6d;BvRH8bu3M&z1BkSwn&9EA0#F3m%$iL0?o*w#<8O`P&LwYW*f%2M-!S zYy)&5*GvdOmp8A-pp=KRR(e86D6Z@AdZSauF0#o5!-&^pZ@W=p_ zOYKrTkikH=EFFi5$w2dy%Wt%CHkXCcM*Y^$3Qb@k;_?xgFcNJbsy$ zQP+W!wzuwlC`BMS5lIP^fWA@{d{6b<=zKWsbt;C5ObuE<-&C)ZdLm9?prEl~d#%t( u=$vqwoHkOr1S&aGJ{(Xp9`Fz9|KO literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/Xbox_R-stick_press.png.meta b/UI/Sprites/Icons/Xbox_R-stick_press.png.meta new file mode 100644 index 0000000..56efe2a --- /dev/null +++ b/UI/Sprites/Icons/Xbox_R-stick_press.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 23d6facb8fb72a14e83fd70586d5fa4b +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 0dae532a54ab40d42a0171b831cf1e27 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/Xbox_RT.png b/UI/Sprites/Icons/Xbox_RT.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0a6369b6275359ece44b3a81ef6c8039b29cea GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lb!3HFSk|MSNDb50q$YKTtZeb8+WSBKa0w~B> z9OUlAuLyC|De1 zENx&D5n*p=dc?pP!syC4edmQwjJhgsY9`vA{Id1z$tAvJ;tFZgj72X;*!x=V`%?a~ zGt5jyYLSdcaYFX~hpJt6i8|U_FI1ZG*0opYoiS+%NWWl^)#q)>zAt|Sr9qj_*?-W!XUn+l4$t!q}f6kU#$u%=Lm3ID5-S(xms_)0L r<=fT2-RRAo@%VJv<6o-jX@$(wG}>KczglVl{lehs>gTe~DWM4foI(lbQC-XqqOD zBulm;1J{n~Gnj~8_@`odW+_;1{~zsG8kP;qQYrO`l(6BNMN@ZV>>Gx{N(z=W#iK6qv~tCqV#l237N2`n7NPWEPQ(^;DCl%;W=n{hdjDBW}fjnqj911Q=vQu za?ak;aunt#4v;A_tI!+w^C!gcqrcBRTG(Rcrl8+e8OEtCj=+k>V{PraDcIsr+jFzy z6x{g^(7DkW)&SUnKie}*%;YI>BhX?z8hdf$-27rGL!&dSfsMUzBe2AH>}^e6iv3;i zf&9F?e?p&QsZu5Ka5Q@%R0m#Ry4=)=&PAt@WV+zgMD>NKn$j9Ekm(OK#Um|!fuT^w rgGubs>;Yz{xJR=VrkbWdnq4%%N+Di0REXH500000NkvXXu0mjfq9MZ= literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/Xbox_menu.png.meta b/UI/Sprites/Icons/Xbox_menu.png.meta new file mode 100644 index 0000000..2ef1e37 --- /dev/null +++ b/UI/Sprites/Icons/Xbox_menu.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: cedacde8e3a148a49a326faa6fa7b03b +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 3ec03341189c851498238852cac76fc7 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/Xbox_start 1.png b/UI/Sprites/Icons/Xbox_start 1.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f3df3225b4c40b9472616f2265bb4f52cdf73a GIT binary patch literal 431 zcmV;g0Z{&lP)JNv|Y{+Y=XK_39W0qzLziWRG>`ZPL_av^4!w zGK4+at7dL&esyz;9g<}bfgXS~dAl?}4?0SgK}75=Fy9=XP?IeChr9bnRqC|-Gx&IW z0-s6)LXRHRyHjH@94qsdX2hl`wGD8N_ zGx@u-J{=DZ%n2zW1z}oLK42yMAN2Y#GPkB3`UHo-Q&&*W@hAAfQA6}&-oDe@QYGtyC zdH-r-*>ui=7P+v#h6Nt1sVWCpY~_R=@Yz0Nu>G>*sGmmf2_=2u@8bg=d#Wzp$PzK#CFpF literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/Xbox_start.png.meta b/UI/Sprites/Icons/Xbox_start.png.meta new file mode 100644 index 0000000..2ed64a0 --- /dev/null +++ b/UI/Sprites/Icons/Xbox_start.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: c5da99e6ae1ea3d44ab962194ac27f6d +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: afbbb192277cdc4498ef4e5d50d1e061 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/Xbox_view.png b/UI/Sprites/Icons/Xbox_view.png new file mode 100644 index 0000000000000000000000000000000000000000..3352dea4b4323e572a993ca67a7804709b8caca2 GIT binary patch literal 491 zcmVZ?NnlQ%YkK^W!VlXVZ{YYMg5V!_ZSKfVp#SR zPbFg@2AKiNCk;o&$U~Lql%9S|Le}jmX6_?n8ed=5VL%1D!^fcH2)WiTED@MSqe7d$-S6)9Ud?~8~xCFfNYX6UH>>Ut8W6lC3|e`l9gV9uu$>nW2C2R z=NoW^07CbNXW+^;^d4AZI*e;*56lt4IoBWYRI6)-Uq&0y9P1>raPs`}iUc%W2Gp32 z(lzuRc!ReQ14Ao>gKKCHY%v|JuGRyRnK(n$2t0@)&Wl=?YOCtC`de5-Iv> hR>Nk~^jEV#%@=S^@f4^1E6xA_002ovPDHLkV1ls*$tM5+ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/Xbox_view.png.meta b/UI/Sprites/Icons/Xbox_view.png.meta new file mode 100644 index 0000000..0c0ce11 --- /dev/null +++ b/UI/Sprites/Icons/Xbox_view.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 2340f7281875ef549bc0b0e42604678c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: a28f7e11298bd8b459da0ff2e5ef7ab9 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/arrow-down.png b/UI/Sprites/Icons/arrow-down.png new file mode 100644 index 0000000000000000000000000000000000000000..79505918e0074f6b05a5621bb011c0481db85ab2 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWND9BhG z^ z(@(Eyo4Y39DMU=^>yd0gmXRs4)N}KaY(usrE6CoHBq^Z_5tt&Il5MeDz3|v@syJd~ zIfhpbZG~0T){epEWD_#o=IG7A@-`!~g=5^c_juGXbHFi}hK^)l=MKp1*oJoGc;1a6 zka%pY&+X<&n$xgubwu4jW{&-)u8z4Cx!`aXq>N;4cTiYYu+w?~a%?du**FsobBH9Y zUpUj9GquPyL=sk4x144vJBPx#fXK3V+rw9h~F7t{qpu* zodlD0N7*L)xoe~)Py$yV$#er(t{(7Q^?>K92Rv6jU|WfM^q&~86paevOFnK(2HXgT zg7}iD#)bjEghNAoNx&ro7Q!)rh%)o;eCm-&Wpd44Vs>TzurotkE+AG(fioYT^L%i=1O%o|97ys~@bYYNw~WSVeP&-HD;T z4VXH%fA2gP_pc!|RMiLt&95QQ`Y&HYe3HHSzJ~Y(G-~4R8x literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/border_16px-radius_3px-thickness.png.meta b/UI/Sprites/Icons/border_16px-radius_3px-thickness.png.meta new file mode 100644 index 0000000..df9c5f7 --- /dev/null +++ b/UI/Sprites/Icons/border_16px-radius_3px-thickness.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 9ae8334c5762228449c08579000dc44a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 16, y: 16, z: 16, w: 16} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: e2c07cb4788f6eb40a8a34483cc8cf8d + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/check_thin_icon.png b/UI/Sprites/Icons/check_thin_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bdf70649de0eacd513b9ff778ce7181635264f95 GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eB{zFd}$B+ufx0emM4jD+aJ=|X^;^nrH>m!>L zN9^9#*;Pi?R@a0}bS+*88fCnUcoDU>o<-2H<%)~QK6a`$Fqe$Wb^nQOkETAU-jl7GT{!C_pO@sxS+i=3XUC?gZ?)dhb-72s^HK9T#^`@$2Txy~usG&u=GwZ# zP`SwtJZ>_QA7`*9MHJjPRyOC`MODsJkj X;dREkMT@6R2f5SJ)z4*}Q$iB}*6V(* literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/check_thin_icon.png.meta b/UI/Sprites/Icons/check_thin_icon.png.meta new file mode 100644 index 0000000..1c7d8d5 --- /dev/null +++ b/UI/Sprites/Icons/check_thin_icon.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 6c3c868153362974893b1a2dbf46b5f3 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 01f12816a8f4eab43909bf6ef71202a5 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/circle.png b/UI/Sprites/Icons/circle.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3eb2cf50dfdd61efe3a3952a7dac1c5f09a736 GIT binary patch literal 424 zcmV;Z0ayNsP)iMqwMz}PrFPWHIroJj(5Rp)3#X)(xEB7DQ5(A*8E2tpORBcv9H{(~ zS#INUv~wvopT;pF`;Q{cIv>|Ftl&>z3^qK$FPcnRvm&CIn0BdktzpdQIx0r_I5B^z zGsH({WUiFvNQ1Jukl_>3F>|^K_^XYvsby$LhfRc z{On3w$>9NU@ujW(_&{6~-Mc3J=V{I18FBcHPLuvUe4}cNkM?{$xnjOcJKA_?ub{r> zV8hWK1wt_2-;{QHv}+4(6Hlc08sm$NunRPvb6CK?om1+*T~Zz1!&j@IR{sZxap$@I SfK^=p0000|M z|IQTD>7|*TUMuUA3ldCYd*%j$(WmZlko>LJz6&B zYd(Ly75CnAcf{v7yc72?zUA|Ga3q2s<%v&@PT1?Q92$b4268AZdkoCqN_;rDfETGP+o*KB$ z@wkIjF8bNLnV}<}%+yF*haMMvo#e*x`NT%r?fZN8+HBZcl{{_lwcZ<4YmxI;a26Or zm5WAHBx{%+E#+>#2Vkx?=(tBy9Xkr|W86|jZu)qtwpoyZv5q#w=s0X*qk zu*#hh0nMOm?@~ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/error_icon.png.meta b/UI/Sprites/Icons/error_icon.png.meta new file mode 100644 index 0000000..a27c943 --- /dev/null +++ b/UI/Sprites/Icons/error_icon.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 9b31e17cc7037c44a89ba3260f0b53d6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 2c6eb80837b89384995528a0e492b1ce + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/exclamation.png b/UI/Sprites/Icons/exclamation.png new file mode 100644 index 0000000000000000000000000000000000000000..2e6a91b96f1380917afc75f3a230647c1591d239 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^JV30#!3HGNq-U-IQk(@Ik;M!Q+`=Ht$S`Y;1W=H% zILO_JVcj{Imp~3nx}&cn1H;CC?mvmFK>l%07srqa#-mdn3LaA6X$@Atz$fu->DOK$cXAG{GzwxqgH;TA z3Rxezr0(@kxAT$xyk(~F^vAqMr<|&qGLJp9*6#Cr!4MOmml!-<{an^LB{Ts5T)=Df literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/exclamation.png.meta b/UI/Sprites/Icons/exclamation.png.meta new file mode 100644 index 0000000..6c16a10 --- /dev/null +++ b/UI/Sprites/Icons/exclamation.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: bf3ef0ed793cec648b85261648c43e27 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: f4631558355ce24459800acf50733857 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/icofont_flag.png b/UI/Sprites/Icons/icofont_flag.png new file mode 100644 index 0000000000000000000000000000000000000000..745382ac02d1612d424a7f5ad84280c569a2f8ef GIT binary patch literal 404 zcmV;F0c-w=P))n8X zf516sNORJb)VPidX@-(efSR;-?^#2NUzm4cUfze@#sUY9sW{`vH{->DT6$hdQ?Fbs zq)^a})4|5#j3VDo(4mIVKnoqFQUh8Uu#gz2s;Wg-c%L$X#DGU53-T9Qf4_L2rdORk|zu7Oa9 y>W!wa0gG?&)RG%0lhXJaApL-bcBTf0000#+dBp}blxvL*vc^3Au{3m zHP&z@AC}Zc)+wypw(v-6a2Xg*VO{pa;lRD!+NTHuS;49i=`#PZcZ73C3ipo#t{)N`R^5-9WSq_s zI8CKyxqQ2q=G4$*pTwA@?yf$NEO~aTqx`ayyF#+sHcyuNA=Z1_=!xuv1+~&04=)~= z$M=v?jyER9aXQ<&4;c;9_cypR7v65*X66iCUn}|G$lUYqce5?I`|e7pt?{-aTvw#~ u6m?JEXfaVf>$!DVs-m<1*Tw_>1?*A(WlRjN_O=59fWgz%&t;ucLK6T%|Ae9d literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/icofont_thumbs-up.png.meta b/UI/Sprites/Icons/icofont_thumbs-up.png.meta new file mode 100644 index 0000000..ac8686a --- /dev/null +++ b/UI/Sprites/Icons/icofont_thumbs-up.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 1f0db370342be444ca956c6c18d9c900 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: fc24a14462b9ca44c8f9e2917f50450a + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/icon_FailedImage.png b/UI/Sprites/Icons/icon_FailedImage.png new file mode 100644 index 0000000000000000000000000000000000000000..fc143b1a69954340740b0c364c7d75beadb8bcd2 GIT binary patch literal 2509 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 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/icon_mail.png.meta b/UI/Sprites/Icons/icon_mail.png.meta new file mode 100644 index 0000000..9dae1da --- /dev/null +++ b/UI/Sprites/Icons/icon_mail.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: b1878032b1c88794bad59d6ea4030899 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5d217ea7dcdbf9d46a84bebac10225f1 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/icon_more.png b/UI/Sprites/Icons/icon_more.png new file mode 100644 index 0000000000000000000000000000000000000000..16ec1ce68a9b5ede6e07b89464620cc41ff1b68e GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWND9BhG zC$QXIP{?%WflZPppH9G*-uhpv;uRrasIqa8TXguJ$yHn_>{^7vSR?jrpm5g>YaEC5>k*Q`r zUARe^(W~bE4W<3R%DA+hH}>dv#>Fkxs7jjWbtgUIz^M;DWif~QcJH{Kz*x+5?L&`e z!yC0$S)=!j@eB7ouDsil%=+|y?VOW$yJJ|zGbRU$xrGGCmrwIa(_XiA#;p(QKKHV$ zTj1|)c5!Y`olAzI<;?!aW$TYvE&rr-C@4cf(8Z_I;(>gIpej@20SgTe~DWM4fV^NN( literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/icon_search.png.meta b/UI/Sprites/Icons/icon_search.png.meta new file mode 100644 index 0000000..49f1f09 --- /dev/null +++ b/UI/Sprites/Icons/icon_search.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 9add6864895115c4587c2a86d9ba1a46 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: e98e9e09077d8ed49802edc8672c1791 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Icons/icon_user_logged-out.png b/UI/Sprites/Icons/icon_user_logged-out.png new file mode 100644 index 0000000000000000000000000000000000000000..848f0fef7847377f97943cfd683530988f38e2ae GIT binary patch literal 488 zcmVP)T8e6QpGU0t-Y)jeO|b_+p>kr}n@5 zFS*#(XSb3Ja8PEMn8}DZqQ{h6%BQ6<<_&fsf?bju+*VD#f}Em&w+>__wra_DkV6!x za6qMeXHOLPo99BRD9E#d70#H2Hgd{GNEHRC1UU1I8?~v=p?F6ytU{h&o^d4qK%hc^ zOL?Aq#<{f4D zgxkH+ramXg3;C72$d)_~tnEt<*%T+!JP9g+77BJ9F#kqD-yuc}P>X}^If34*O@?(H zSy;)!3L=Ev%~3_261!Gr71bM^pSH!2hJan4vGZx^prwfgF}}M_)$E)e-c@NdGZx^prwfgF}}M_)$E)e-c@Nd_PYY$B+ufspoEUGAMAgK6J|rcF&&Tmcg=n zfxtrbzXzv3;r8Y{a;DUG`bxU61(-kJ%Z*?tB0H+1cN=@;5jf;cE3P zJX&H9F?p+TUC|N^hg}vTre+2jnaxssISmW=+_y5OI2!KHO}H(7Av!iApg@mBI4LrH zjk$HisuyuzemOs^?Mypx^&8vb?W2$g4<@dMz~yS`dIRF zmfi7+ZCqPgotGEy({tX%S8}lV^z-5eyS6(#m6A>Mh~6U1)1xhyb%42CsBy(3If>7u zf3AJ@S6bV=+%u-|+5e5*DGwT)ZaiRlbwm6A%W6rxZMtmBnDc9W_8076{<+yN>Sty0 RZ(uMnc)I$ztaD0e0szKpld1p! literal 0 HcmV?d00001 diff --git a/UI/Sprites/Icons/tick_BlackOnWhite.png.meta b/UI/Sprites/Icons/tick_BlackOnWhite.png.meta new file mode 100644 index 0000000..93d7551 --- /dev/null +++ b/UI/Sprites/Icons/tick_BlackOnWhite.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: dcb50c4098334d540ab560993d32b3c6 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 14b96a6bced0b3f418f812cf55924143 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation.meta b/UI/Sprites/Playstation.meta new file mode 100644 index 0000000..6c78f99 --- /dev/null +++ b/UI/Sprites/Playstation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: adb0be6ad1227d74ab6c0236d8433c16 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=Circle.png b/UI/Sprites/Playstation/Key=Circle.png new file mode 100644 index 0000000000000000000000000000000000000000..5e728d29d88c34f89d47d404bb0b8befd52261d4 GIT binary patch literal 1429 zcmV;G1#0?t<80drDELIAGL9O(c600d`2O+f$vv5yPfRi;4gQAZh$tp-2iVuH)uDw-Jsc^+zC=9048WU0c8T23Frnd5^}&m(2rv|mh?X7 z=(y*|r-}VVvTW-|goucUh=_=Yh=_=Yh=_=Yh=_>hvXP1axGF$Mo1y?11LOL7Ndy`(v%A=vgZ_v&SG8|6c^ls$ROKu zprkf%&uc@9ufh;lT|Y`q5LY#Sl1d=%MM*txp%A{Eu=z?Vfw8q3o z?pdw3^hyIFOK~Te{3H3i3FL330Yj(xw}IXMladU-T5st^3lH805v4d=V=Gq)?gIHu z4F?&H^}(}?4Q`fKqPYSbs-7RDJs$)4os+qI{M{nPcz84RQIK zQ0Yday(dq}%yIY#UJ)g@_v9%d<;m-1W;p`vd)92bt|ZTZ zQwwwK_E~fBRrHrYekbi({8eg>0Ph3&owTctSE+$6J7sqCp20b~GUd8W@^wwI*WpeY zGaR$>?6Q{(as@clH6_&RvPPj{Iv=DIIAcfeH5$%`hF>`y--nLgd(STRV9FYb4FvBU+Ux0}u8e<8o2G{r2#vlfqFm7EUK*6m%A zMgz0fX9w45Kw~}5x{h&`@Us!5aXt*}63hvHgS17OPYtSV53Ftt;~1-JMW+}_l0EVE zS#>A#4KVM;4JFx|^i=Zf^hF2wcSFGcm7l@3=|Ya*2KA$@P0z!&=ztOt5fKp)5fKp) j5fKp)5fKp)Q9j=Qq)VuK-XtLD00000NkvXXu0mjf68NY2 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=Circle.png.meta b/UI/Sprites/Playstation/Key=Circle.png.meta new file mode 100644 index 0000000..1220e06 --- /dev/null +++ b/UI/Sprites/Playstation/Key=Circle.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 8290702cec9758a418d6fb2506abc976 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=Cross.png b/UI/Sprites/Playstation/Key=Cross.png new file mode 100644 index 0000000000000000000000000000000000000000..8028218439c4000e9c223c4c679d6d71caa28745 GIT binary patch literal 622 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9Mg}jd{$lxGy)yWQ~B#BfB)#2|Ff6%*Gk?rIS`nxzWl`W z9m`MO?n`wEFMKNUQ*B*aPmTII*C*_S$GiTh#%@%u?YPBcI+}p7740Gzfy(@d1Q}^s#?bDpP%XA9Q;nW?5TTU>$?bDsw z;q10YbE`+Q+peQtEs4r^64pLHpp++V+a^|cJIiuM$8GoShpu<_ZR1gRbZmnwhoJei zS&lAuW@NPp7A8jvdmK5N=&A8YZL@+z;pU$PMuoGrX| zS`KP8U1ngUh?cPd_LXMccB8PrUuYa!bdawH(auI}QddNmRa@r1)roV7`~;rwJ4Dy%i5P zNapcqUM`rK$E)}_K{EfH(&vDg`T2(u723^n4rNL#-yZVNqT}&wvCBXIi`?SXlJ^@-u5bMIWX{rL4o;ZsCmdicb(`+n}|v`M=IjFEGi m@7@UA{Qh5r2|e-{5=!b<2Yj6oe^uuzNY2yM&t;ucLK6TTHUZxN literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=Cross.png.meta b/UI/Sprites/Playstation/Key=Cross.png.meta new file mode 100644 index 0000000..59bdfe0 --- /dev/null +++ b/UI/Sprites/Playstation/Key=Cross.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: f5a3a955d59d997468d0bf0cca879ac4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=L1.png b/UI/Sprites/Playstation/Key=L1.png new file mode 100644 index 0000000000000000000000000000000000000000..3659695378e09288acd6c8307334038663a429a6 GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9|Mzrp45?szd+VU@VFwY{i{>3nFB+yesb64J zoxrz1#Ht}kLs51H<7OTwmDM)$l_TpDPtIN~c|J)9s23eH_?_PLX4?I`&wV~i>z}@# zSM0d%(00jpiG9bX2wJ>8XK=iji*rxa?DM`{xpp67_Wrgk)7<*+8!EM%(9!^@>CQl<*;m~-GMi=KLcW#ehi7{3QaOw+LlW$(K9u~hS) y-hY#075*ES9r!&bZOIJXU2v_8=#B;PrD~W`JrfR2zNNAb#PxLbb6Mw<&;$UC5PdiR literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=L1.png.meta b/UI/Sprites/Playstation/Key=L1.png.meta new file mode 100644 index 0000000..ad6275b --- /dev/null +++ b/UI/Sprites/Playstation/Key=L1.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 573ccc0e8874f3c48b53424f58a800b6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=L2.png b/UI/Sprites/Playstation/Key=L2.png new file mode 100644 index 0000000000000000000000000000000000000000..9ae218e5d45be5cd9e46719cb52421476a43c675 GIT binary patch literal 723 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9hps=F^+XMYR)*Fp44@5LZ zG+tZHt)?-{tnoFms-^h3 z%irzTVsUZ8@{P|gol2H|NeEy^JRDROsC96%6!&+{>7DhCGsZr&wW1qyKH^9lf1h!%bmM-=6$<*NUG@i zPw|T#d--FS?-KkG^U?|hPIce!>#F|d&w9aEDit#8$;kstmp+qwR*=8Q zG3$fvtHUjqRQOx1dn3>0rbTV>IKcf%c(o_yMLb=Gd*!G5F!xh_~OA0*;tAGjY}rK?FfEXn^rcZ)9%g5XLcpp zoj~Jpg95*q59H77bTVIhOuF~Z|6kMHmTo+|>CN^BCcoU{b|02|BKe}UxVJU-e(CPZ zKQt`vP2jwiea=KKww`}o-rE=1D_C~#x;igQ?L~SA%j>Pn-qkGf`K0YRW%cfBJLjBt zQ~DBhDKtw&_jm5HJyWZm&H0_I&U@UiG;ObFOZ7XwT~B|dt(+)tvHU{BTiMe&za*Gd zc4S_w5ifX`qjS=CQ}?&E#`!ny-n^PsUbFc6j_bLq6TQnOU0uXunZa|?)Kl$-zNwk6 z`LtVB;-8$B+-bVK>(NfNpY3j%%F~OQ-dlgWt$Xp-)zcHbk5771$!pMkE;b@D@p=`H z@${C+7dOJ+ogpDNXy6J1IVC&y^ih|8cE6{?h3}zx0j= z@9jU&&5l2mlYMfhOGj&;?5$b*vm>(iUD#k~wxuB;qeiUdx4iC-ht)SE_7>fJ{3UtK zS_`j@DizOv%dAp)+xv`I>CWK0 zH+B`jICONyyiPx>gX`8wtzEK?S3fpF^riFZeO^k&r<(R#uR9fNd$r(i&h=xL{(4@F z`M&r1+pTiDGk@IK#{ShzXl6!y?8e9~EMoVWbxktkYl`09n%wtTd*%D)`MaKY9=H6) zU!pkC^W8*Q?QhwWoR3{}`sF)IOlV=q@dw(L?<+F(m()(?So-HgpRQ-#lagz_@t#X2 z&2|0V%I&>LH!h?|X7-BMV}BUro*vTKJ$099^djdj?rXnvH!hu5E&F@-p*;-yj-TIj r-^(`no~~SoUEL=p3*4y)z4*}Q$iB}N8olQ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=LS.png.meta b/UI/Sprites/Playstation/Key=LS.png.meta new file mode 100644 index 0000000..2aa4716 --- /dev/null +++ b/UI/Sprites/Playstation/Key=LS.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 9e970e64b5af52648a930934d21e5a0b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=Menu.png b/UI/Sprites/Playstation/Key=Menu.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3bca373a4d804b31a73dd21266781bb543b286 GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9Y$2QDemg(8pex>rX#i@B)i<++UEb%QkxqIE52f@b*eI}k_t51=M*9_X}YQOF2 z=Bsn|>8_2t#TUCNd8+A;MW$7g>t^rSa!ig1XwiZHcMp4ByED!ASILT9?E4DDYHPi@ z&M(r=pIr8G|IYo-!q#gBSsuKfTX{~xFSlua&;fZ_bE8M{vfjrwF7ZfhzHi(Y+cm}X z$Df}YeD6=*vt?H7FJ_RbvC*y;F>^WEZwoxUU@6GASNP$D?a5so1v_{J`DCM&4mq}f dl%ay~56m~NiLu)&p3wwJc)I$ztaD0e0sxRwnr;99 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=Menu.png.meta b/UI/Sprites/Playstation/Key=Menu.png.meta new file mode 100644 index 0000000..4c607b2 --- /dev/null +++ b/UI/Sprites/Playstation/Key=Menu.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 29fadb9eb6d0f7941bad461200aa1cb5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=Options.png b/UI/Sprites/Playstation/Key=Options.png new file mode 100644 index 0000000000000000000000000000000000000000..bd0362d522633616425a66e6fe5feb82b708308b GIT binary patch literal 1357 zcmbu9{XY{39LMKgDKo6(Ay2ouIz`N@6rDLcj}e=PxjfBNY}8^~v*z;Daq>_j(P>S3 zB`nTxtcI~NqH%56&O-~+kTA*gAlY{7Z@BO4_5OZ7pC7*8A3sGw$dmfI=DGj?K;O^T zD@3E|-_Y5v**_&Zi8KNv_(qTb0O#m$XqjF1(HMXhDdeOFpjlwKs0rJW+!5{oz~7~y zt$1xsl=*qNho)<-NT|eDPJ1rLPmF7^ey0I#1LH8c9lQH!zX-OSKG+J=ng_}Q_F}&~ zyt|P0I|122b7P$ucVSg_hI>_okPxTsPg<6}EJh+>M94TalMruS75Vl3 z0-x^}>kB7AoM~bQXc{!LsO7bY8PIc>a%Z*370#K(p`iEwT@~e9pBU|Yf6F$uBKw`V zc>1X_QI|DOS~Gb!%gc`-gv+Mx z8et@97#$d`5N6@g>E<@V0R!iuc(m*$v%M_W#unA4BeL?C>b;oUPi2a+l14;-j~#0z zdkf_e1pKwa!+1LLX) zQPa@_zW11#i?6u(@=gg=NLm>_xPT3|T)br(#uZ}G%d%!1Be>FMDc#ueMw@TW2W)a4 zF4p>s+t?UiFJymeOd+R8Hhm54z>UJ!tg~s|*x>F`WAYx0eHQe)19&<2<+G2xW#qY` zByziO(i-b;%#p^gmu;Xp93;HpW{Am&f7bVv3xi!I3{a#=Ak}7k&E-^kv4HK=!nBjR zx_s`noH<5*VIcP0ZFyr+;eeW<lf{(_;BxLr3p)G@rtU=H1*n44KhEEZ zE>EraYfvPIMpHrHA=c4W!E+VDIA*zl1?H0pu4klX+K=6i_1^QWe>ts(dW8cmhl|f5 zK4h^KHK%CK^A*+zr22ZG?1ec<}wWe`MQ zJ49|8tle<2fVFu(?7KgMy!|%QqB^ve-Kns8VZdkO82PwKZ|VF>Xo85wCq{(v)`!c= z4pHX9AY8io)^NKc$1xz`3e~^77+bekRf%9WuS@So~;*f0IntTrZ% z4MlIleBDeh=CJUxD{Vuj>f)nT>xk3kHW@he)N6k$6x_@8M+L4=C;!5fghjYg6x+z+ zx>D7dqDP($N5H@Ba?p2TrpPr{%)G2B|0sNd82*42U+dAC_&iX*x;1Yw+goB22yGD= z^< literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=Options.png.meta b/UI/Sprites/Playstation/Key=Options.png.meta new file mode 100644 index 0000000..78a38c0 --- /dev/null +++ b/UI/Sprites/Playstation/Key=Options.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ed0d1a90057dc524ab474a999cea3b48 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=R1.png b/UI/Sprites/Playstation/Key=R1.png new file mode 100644 index 0000000000000000000000000000000000000000..12d3366d2b503a54fb6b7d566bd27543f691ce8a GIT binary patch literal 693 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S93%NU7LwEau2v!%Cz05z~lTrV= z@0ITnt7GOb61{bUYvIXr-;e2b74XgzJ!Z|V;B+81u_lvo2cO0LZzZkU)5RKgt7)%y zS(;~|oAqa{&)g`6wd^+cHy@t6nsN7bhDCZMGSLEx)3r*!oYU>_VDt}l=lZ^%RY>u{ z%B%$m{hztQHGs;`g$gfQ7`6PXUe%fpVy~8nhs729-EQVSyL(eZ%$!A^XBEHo*cWm_ zU2MYa>ZrS#rs-lNfzzaBqTy?y=psIS#Fi8qbH8K3{YEmD-JyfD~TN1%MW z=g+Vgi;PkiEUviRT%NaM4}aJR^QxVzd@S=H&V081LD@oQ#s8as^<9iml%G|6FMN}k zX{_-3xm&-dZwlHxwX848_xe`LXLY((<=4`uYOb5TPGGku*UxKa=CRTLE!V0hZsRV# m9C}+z#x-LXo~Q*$S$t)hY?xtJ$nf(Ti0kR<=d#Wzp$P!jN*Ct< literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=R1.png.meta b/UI/Sprites/Playstation/Key=R1.png.meta new file mode 100644 index 0000000..52fe6c5 --- /dev/null +++ b/UI/Sprites/Playstation/Key=R1.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 32285ee5d67b7f74a953ad855e31c903 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=R2.png b/UI/Sprites/Playstation/Key=R2.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd914f0bf663e70fa0426cb1bdc6b6205cbbe48 GIT binary patch literal 910 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9V;B5nuhKJMR*b|udINn^4 z*tAX9#D`&SLrK#H$HOco%*%xtgjMD;SRH&_oj(0_p!YP{*uo?K@4h^9bJNt%n{^}4 zcL0sY4JKUn5m>rPecOkkJL{^p6y-n7Gn;M8b?N5Gm=^{7VR>usMEul|yius7z53e? z!>vL`2U`m~h`?rxEuA%hVE!XLcmXT`aq_e#y+17ezuhw{oqyzon69>-LGyF5Z3Wp|)s?U4{DL)~1cq z>L&Alh}QI0J$#n=b^Xa7-_(p-BYhfj6E;uzFn2Te+w}fh^NrT+^*SVe+)wS%0_Gg` zo6N8NuHJump8KjimHjtXU)}p4epdOaPcK8=jW#F8{W<^b+eaxiD?e3b{&l)x6Sce@ zx1TBBu>991U+JvLJv&}y76+BTf0Dveu-12x-SzjMZf?qT+I{nuPEZ@e^;?EpcRbJk z^lzK~$M@%03vC(WwyLT{@A8}d^I6nofjc6zCgfcB!EsGD)xV6#|M${6TjSJU3op)? zHN$t){_D2tb$ZIGF%I=tPNiEN=Hb}TpOLRzDt~NFjqiWCZud_TRtoZK{#r)fpJwxN zeP;Q(_>i6{$1gQ<*5}5>C*=v<{@T5C{rOnloe38lkJnz@_(tP^`N8v0WyE{y?6>cnyX8!#e({}VFJyaSp?h-b((DVa4g9V3iJBkRYuC2Ds$8}H z#l*tGp9$Qbq8?dB%9qBU&<;#Fbie7(Rk8cZp?Xs}xp601u#DFVdQ&MBb@0Is~7fB*mh literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=R2.png.meta b/UI/Sprites/Playstation/Key=R2.png.meta new file mode 100644 index 0000000..07a723b --- /dev/null +++ b/UI/Sprites/Playstation/Key=R2.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 96cbd8e5d5143854dad615103a038071 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=RS.png b/UI/Sprites/Playstation/Key=RS.png new file mode 100644 index 0000000000000000000000000000000000000000..332ae1bd549f8b1cb2997ae1bfd087c49cff613f GIT binary patch literal 979 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9V;VlD+wukfm4zOM2$PqAd zyv^yP?qSxzE74fOw5jnn=LxoD!Ya~#re+mRm-3#LdvWu_+IJ-<6HlJ{$-POZkppNp zZeV$q#c`F@c6+gH647?Qr{B;0nS1(mj+r&rrJLMYTjpPyc4(S=IiKW-dC4!&Uw@Wx z+PTjz|4>82>#|zCUGMi_c;^)@$5J>;|G{NfbJ^c|r8Cxs9k!a4aj#*n(bJ~vc?JG_ zR*NRspDZ=r_D1N{+SDvfy&YzlO<&zSizO+U@ka z@ce!MCX2J;8+JeFztmhNzs~*^$Dxvn19>w_Xa8$1EBBu-KM!T)XBe0wLyZEs(_ymL0M)P2UH zZAFgz{@<{_8CRfZnh;;UworWT)vT`v_e}79lj$Eny`lE+w(7@=oWC!3SG~Nj?!(PU zx1?9zQ}brOld#<9&wJ*2@%Q(7hhGP}cxC7et3W8 zvZZHVI)C&{%D(^q>JxM6KXq@mdx(lV6}X;e+d4@rCOA7dV{5lbe#Yat+ujw`MJ9~> zUe~J&*1ny5%+_?v&5T)2t6Tf${{Opn=|Ay@wI_DL`=H;2 zi`|x|zni^eCeyd)S-bb=F};1aWtPuY-z9UL-2bh0+Q%Tb@alG{o&}%^+oqcXb0-6Xr>mdKI;Vst0Hf>3PXGV_ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=RS.png.meta b/UI/Sprites/Playstation/Key=RS.png.meta new file mode 100644 index 0000000..41568a3 --- /dev/null +++ b/UI/Sprites/Playstation/Key=RS.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 5b18d4362e72eb449a837a6382977c1e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Key=Share.png b/UI/Sprites/Playstation/Key=Share.png new file mode 100644 index 0000000000000000000000000000000000000000..2df8a9367be4da36ce53f61d260abb248b6ebc8d GIT binary patch literal 1046 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b#^NA%Cx&(BWL`2bFkkR=aSW-L z^Y+%=%G+il?H~WYy!<<>xqzjVxwOebIAZRCw=9#?J8T(ea=!6NC}-L&>@oAetp{J4 z5?CGoH0T(G{o1o%d!_;(Lnl*#f;Z4`LSR9wui%xt+@AFwyC#LSoVNDVpQL5{`%=*I zo_Do|oA*~eGT*4`nf5K(ZT>o^`BL-GPxsq$R>1og75c^(99iB~7 zOr&>|t~{K7dC8uC-^6rlCA<}18rEj$A3U#o+`?qs(o=t0?nQOb* zZl0~1z25!5AY>ia_bxi=$f!G{i`Mf!4 z(Vn+oTsrD|F}eQ0$1lc{zto(Qu2{E0J;H6emgh_6Zy(S6_`Lnvf4O6E&F@8)>fg$@ z+cs(6in!|Sl7-KhFW*$!Z2z*hJZ)R?_vI^cUcNJT)(kFq{qAFJxM!v5mHB;zwWgcf zd%oR|KfPzB@u3O(Dsp}4N=)IXcWE9WlRx}@7?i9~hRG?kf=sw=tjKe@~L zr?$R2>wmp1TVt+9$(-xU)=jRs|EIuyLvP%98~xN>S0BEdqjGoNgioctucOoco_?Ze z>$Pm@^&io9Oy`yz(SGb8`*!ZD6~6hNlke2NJFZ^ZJ#XK!x*sN;rL;QOuR^8N4jP5aXSir*}@dwZJM(Oa86{+n&yzdMgFxHwqdI@M^ibou;j z`(;j-(yvON(JOv`)3E;e+c;HPfP49lK z^tw6s)=sY8#QXK@-O79Zt?%AS&+?70EXu$6?O4mV+4GC< zzOE1Vt=u+e-@L3VrWR{__pdr}39dL-yd}9kW%WO{8n43P}12pDy3z+PUOD`-k1Px$^q* z(JZg@6_=NHUlrN3((T|&TgBN~i`GXz0a2&LS8JvO^Ojh4+nfy8roH@oOODpeXR&LR zm9!b1+#kVPU-xC6;S~3cFJ z`AwOcw=}w$e&1sMHkD_3=3*VLH{ChArkVkb_;y|LTreZhh{qeh*ot|!0-ZBI<#LRc zPPdKH>}P?Akxv9~iY#~9d_sAXrdw;;ME8`*{;lai>T>ET1(2F^!KxrNU#4oER_Z^o z?ElJ5I-fdnez{Ktsl99+I?GjVqVHFrj_>n)vw%8wUC#+pj(l>_Hf^#LP{%vn*;gXO zDogxtE^*s@VzJYvm%E>eTkT=vxBR4B@nh?k6v?+bi~n7i_x7)TW2XP^yYIHAPWs)@ zuHw<=9rv5LZi~;pNVUgb)SAAQq~6SK{|^>>|2%*HnkV>A7WXN`gJ(_Oc4_dzQY0GP@aYfhIeUAF^dGZcfuuZL L{an^LB{Ts55~_Z+ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Playstation/Key=Triangle.png.meta b/UI/Sprites/Playstation/Key=Triangle.png.meta new file mode 100644 index 0000000..7958869 --- /dev/null +++ b/UI/Sprites/Playstation/Key=Triangle.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: b5370bc994cf60d47aaa50d83538d924 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Playstation/Shape=Capsule.png b/UI/Sprites/Playstation/Shape=Capsule.png new file mode 100644 index 0000000000000000000000000000000000000000..ac72a147eff31e825be7f96cec49119413196077 GIT binary patch literal 810 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 P%^(3!S3j3^P6<`3`Fvu>vtB{kR zrr{G{*1&sDftlx)#0zwf%Nw1>4ASNCkcP}YsdTjw};Px&*zjkUf&oK@4Yp; zk5_nw+Og`la}tl;s|c%eo7(T0F1mm7Jh|RyOZJM(e^K4lb87XckNX~7QJZA-qxwV1 z%iMH7>%JvEo7}>Uk6+fS;;1MQ=2m@hvFh26I~@0;+2srD%O*UNo6a)lqDbD^S;f+x zx|Itbueg8jzU;pIq&p@C=8dmT`TUOlQ1k2V*Jg9e?jt^%-jz?R{lZnTdtJyc@68R{ zt@TRps^34P{Gjr=>XXwRUI$9;Qr>EC?ua{eSJu0Z?_ba>_oJ2SOZ^tF`)S|v$oyd5 zSN|&??thqVdiKAXP+{jhpW27Bp8d~MQF;)qHT%CWklrnJ^^f?6*zT-<+&|W-iMbru z{w2A3<4nu7-7YLPFOP5M%%1gsWm)-+O~G!tD;IwJZ~bc9@oPHs-t?}ie|X`@={@%> z-@LQvbctCc|4eC;V8PziJ-e-0VwQLBN$TwBOn*Lg@RFyda{?>l;nww+Dd zSRv^ey8oc;lz+@?;vU2Y-p>^Y+j}5>@xJ#5A09I+4*ROxrEQzy`$=H>&c8iX|6iN! zy!WJ`RJ?Vn{H8MYh>fA^SBaMg{bPIo)OX*>w?mim7_)L^~N zp`%yaj=x-c+^pPq`^MU^>a2N3!;Ji_3$~uwldjvnNoIMag#F*X)Bu06XP+(ZEnl#% zFlKe$+{*c_g?A2Y<#{FDo|-&!d-um5IW~XSoVk6nB4+ipN^7bAW(6nr#P;q_fBe-T z;_Ei;Prvw&*2<=@d)nRSoML$YshMbr)Uv$dzaRF2(g!M7u;%_1Yi6+*>UmQ^5}vMp JF6*2UngB~e1yle4 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=D-Pad_Bottom.png.meta b/UI/Sprites/Switch/Key=D-Pad_Bottom.png.meta new file mode 100644 index 0000000..e491a64 --- /dev/null +++ b/UI/Sprites/Switch/Key=D-Pad_Bottom.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 873ac33a9c3f53d4abbc853a5ccebc3b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=D-Pad_Left.png b/UI/Sprites/Switch/Key=D-Pad_Left.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f1382e858194d9aaa773055d40b87b1aa1aae0 GIT binary patch literal 577 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9EHbOui}g7)*VuZ|IF8SoUgTK_Q#C7>9SuQufP0pp_$`vtrf3l!F_axqwB}D!ShJor_pBO`;(D`U4rUKjqhNg%(WEWAamdm2#Hdrfs)& z;PrzS*DWd({a_|#sTx1^h0o>fo}%w|7wnz8MT*AJ?!Wq-5FI`B2)e-5=w+XwSa z%MYHM#ka%jwR7&h_6h#i{v2-O`dOZP?^+H2w6%G&?Vk0Vub#d`?Cx9{IkTFx+#P(S z+l@YJw5y)Ed-}y{3t{cZ^pM}b);$aT`zPeHfKE8yd)xcZ&NQ7qHPbtypwcp#vzxCp zdegU)l3p_=T@_G$BY9F?E79?GQ4%Njt?9yE5f}Pp{BGY?{`8fzUGC|_|MK4~m&QH) xC-lwoMLeHsj&a+sABtPd8PS5Cf#JZ;zl?#Nrb})FMg{vd$@?2>{8~`0M}x literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=D-Pad_Left.png.meta b/UI/Sprites/Switch/Key=D-Pad_Left.png.meta new file mode 100644 index 0000000..9bdccc7 --- /dev/null +++ b/UI/Sprites/Switch/Key=D-Pad_Left.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: b7949faaeb1287d48b7b4ec3ea79f7b6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=D-Pad_Right.png b/UI/Sprites/Switch/Key=D-Pad_Right.png new file mode 100644 index 0000000000000000000000000000000000000000..72442c2fac1fabbe7ea38adb95a28787620d9f3b GIT binary patch literal 555 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9sFg>!HG1D#eBX6nU3TUB{pViJKT^a3G!_kHpFT6& zD0XJMjnw}-`7P^NeyaX|ACM-$Wo1kG^yR(Le>F4CKh~^Ub8ZjW zOuiTXsW5SQ8prlr;?$j~3H5HuIUg?9_CLO6CY-mqC^mNHs{Lnf%!xVvqxt{wj5+@g z{x6Gvb~tSQmNjv4e)G?L{Q5MtB5ASM&NX_uxv@o(vo!)|Px)N>a_94^rzN#k$G@K5 zuODmKE_Aia=DjH2+_kwra`E#^x`eK761w+XIC?k#t!c-vYnJxk{`EkH87-6<7;=uu Xmz9Vy>||n30?B#0`njxgN@xNAi}dcN literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=D-Pad_Right.png.meta b/UI/Sprites/Switch/Key=D-Pad_Right.png.meta new file mode 100644 index 0000000..6493661 --- /dev/null +++ b/UI/Sprites/Switch/Key=D-Pad_Right.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: a79f67da14b06fe46a3ecdd881fa495e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=D-Pad_Up.png b/UI/Sprites/Switch/Key=D-Pad_Up.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0072ae0cddae54fb9195ad6159d636926ce5e3 GIT binary patch literal 589 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9Jn zT;SyrKERgBVx}R@AiPC-i?q!Ar=ON{T+O`lq|dJZi)N6>$%%gD`^*bjfaanC2k+oL z3^OZ@;+_?rJGN8$`E?WD`%VAc3h(z6&#jNXXU+R7it9)Jqkn~~PxSUaihcHYT~nRg zL%Szs#TSli+&HPc_~*i>o7Elp7e~YwmCtYfRTR5sUKU^0>AP;9oyFFja%((ST>sqB zc4yzS+jr*Y#02J@-V-f(b?TG6ndPf3E%x29{hU`ichkp@PcIw258L$7@M#@LLaJJH zuWXX!u8w23#4N7wsggRMf9}}L9Z!X2cRsr!|5zrAGin}FrM2&6Uz5vQo2PHAJi%MO z^IGbMKc6a%-q-Ig*eZ2#=d(+xCi9OK-Z^5m>iwe5Jmp`>GV6B~*1rvlE}hM{FMiFs z#ckz_yZ5^@&$ZfdNuD8h*ACal&jmo+&2H}a({b)_`n|PLDUbPNYhIk$JvC>~dS#%% zGmSM>?ECwFdFjV2eSgrq+NHMqvE3i5u2uIA=GGamT2<9p?^e5XfAUwR`mSI5*!<1& z4vR;Izg}*8>V&CYY%1^R=8xfz=Ky096F7+OXY5igcKIaI_8uhb>FVdQ&MBb@04)su A`2YX_ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=D-Pad_Up.png.meta b/UI/Sprites/Switch/Key=D-Pad_Up.png.meta new file mode 100644 index 0000000..02d7909 --- /dev/null +++ b/UI/Sprites/Switch/Key=D-Pad_Up.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ca26cbc95342d9a498be0d7f9a279cb0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=LS-1.png b/UI/Sprites/Switch/Key=LS-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c56986914aa3388bfeb4e4b126c3ceb952cd4649 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9Z}fC=45?szd)twhDNuyv;C2>9k3*c7CLFW+ zDWRZJ&~#6Wd+wRsG@wch(3iRPYsC7y&lmVP&pJ@ZbevO0y%i0A3*=d#Wzp$Pzb%~S{g literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=LS-1.png.meta b/UI/Sprites/Switch/Key=LS-1.png.meta new file mode 100644 index 0000000..d466a3c --- /dev/null +++ b/UI/Sprites/Switch/Key=LS-1.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 4b49adeb9824832468f50e5a8b8816e1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=LS.png b/UI/Sprites/Switch/Key=LS.png new file mode 100644 index 0000000000000000000000000000000000000000..c564928b2ac86e4a3f6c7fe1df278ebef4cb2cd1 GIT binary patch literal 860 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9z_g%f}O^*J@`SB&n~xUcDsJDkfmNu7$%jJbBl{L^#o z(>G>6^U5;)@wcy7{`J1nuRnZ*XT5%RM}Ak=-pqANraf5m&gHU0+dO@fli_vy#ZQ{9 z{I=+S^4apsrqgcNsa^*vNIJeVQ+{9e_o-1$^=~bvXGT2F{3InT%Ua&D(CfO*vzVE? znS1NygS*~8&~LmRn|mM9sZtuZPsU7_MheMzq{Xg;=(-Ehkg?utbJZzklL=bWqIy(!`K_* zw{rep*^u^o?v%6T_X@gIzq<)MyJEWIS^lkgp0~D5>IiI>zTq<|FK5!iJRYmb9jbE^ z#DDl^8+-2Bc|Y*nP8Y4KuI1@c+w`(Gx~s1Y-|R6}5|Lgqu)wT8e*PgnuX6wu;p8wX}o|)g5`dDsvnbOzyw_=pUuKI`9 zFo|7K^u2Lly6vU2CJ&~?{Oik$ENcJsXVLCc9`YZZm8M>rG*{`vu7xeyNq*}*pUJ+N z{mS}f*!8ESdMo{=sohMQpraZ4r6Ygqo@&P(Z4=joWz9>L-L^72{b|-U|HX~gK~3iK z%3mH*7Z;N=Xkm}hEy=Vy~xOWK!JgIL*f5<{8|k?*PMib zlGwqHVp@Y|X-+-$9dn=z3G8}+qBl~R{s^&%==k&pg4B4r`njxg HN@xNAxc)E^ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=Minus.png.meta b/UI/Sprites/Switch/Key=Minus.png.meta new file mode 100644 index 0000000..69d6a4c --- /dev/null +++ b/UI/Sprites/Switch/Key=Minus.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 649fd52111778cd468e327c46300e1dd +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=Plus.png b/UI/Sprites/Switch/Key=Plus.png new file mode 100644 index 0000000000000000000000000000000000000000..acfabcd66f879853b62308d6e31b6df0b776c223 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9U-fix45?szduJnWgMk3c!S;XEY||f{Nt)R? zckP_Hbs)15;K%grL-SIf-`(nS#dZm&jC#SG1BFb-NnjjjyT5z!m#*N)RrVHs4=frV wv-Alg80R?K3lBB&BZ*+D!7jpxa3hcv6qkI4r;N4yyC6u|)78&qol`;+0N9>rK>z>% literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=Plus.png.meta b/UI/Sprites/Switch/Key=Plus.png.meta new file mode 100644 index 0000000..6fcd093 --- /dev/null +++ b/UI/Sprites/Switch/Key=Plus.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 4e18ed919515e1f4e96bb57f52c67f25 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=RS-1.png b/UI/Sprites/Switch/Key=RS-1.png new file mode 100644 index 0000000000000000000000000000000000000000..82bf2e008263e89ba0f871f6aa8645e923e33676 GIT binary patch literal 602 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9%gE@|#@ zP*<3{prk2<*)7AGv4rUa%UQOw961l>wK^&!NwWxj-2HyC-?TTy|9-xFQ~unW1!y)p zII#I_(xX|+BBvb=-E+n_^Y^;gY1`(WP5b@e#}-EO{A6LyT8?*Xyie47&vsX0s>=zy z<*K6eV7XYT$a-Z?M)|TZr+*@xDf|_t)(htR54x51V4vBY%N`GsLsq2h(Qc2GTzdP( z{3Kna##QncRbRX=+VO6u&I6Tiw$JxAPoD98&V6^LQ1&~z#d_6x_g$Dm#Uk%!U0t>1 zJ@Z|?=I`IzvM=)g?N-^-%zxWOh^a0sc$xoxH@+6{wT-+SDt9$^<5$zR{R*+Bo@K>bR?Su`{XKs_Z^_K*)0Vwh zRU~((_Qik03#nIC?yB2b>T7P|yHjl!R5JI-k*oVsm&+b?cD;UnrFiT#t;yoCSK04~ z#^#==Jw5aDj1T)|dmik#?`9oRqAMEv{)wsUwZ{8V{UWiNW`~*4BLl?e{LAh%kJT~r RtzsXD>*?y}vd$@?2>^z8`J(^; literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=RS-1.png.meta b/UI/Sprites/Switch/Key=RS-1.png.meta new file mode 100644 index 0000000..88e46ef --- /dev/null +++ b/UI/Sprites/Switch/Key=RS-1.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: d24a16cc5ac53e6479d5828661ba1868 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=RS.png b/UI/Sprites/Switch/Key=RS.png new file mode 100644 index 0000000000000000000000000000000000000000..332ae1bd549f8b1cb2997ae1bfd087c49cff613f GIT binary patch literal 979 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9V;VlD+wukfm4zOM2$PqAd zyv^yP?qSxzE74fOw5jnn=LxoD!Ya~#re+mRm-3#LdvWu_+IJ-<6HlJ{$-POZkppNp zZeV$q#c`F@c6+gH647?Qr{B;0nS1(mj+r&rrJLMYTjpPyc4(S=IiKW-dC4!&Uw@Wx z+PTjz|4>82>#|zCUGMi_c;^)@$5J>;|G{NfbJ^c|r8Cxs9k!a4aj#*n(bJ~vc?JG_ zR*NRspDZ=r_D1N{+SDvfy&YzlO<&zSizO+U@ka z@ce!MCX2J;8+JeFztmhNzs~*^$Dxvn19>w_Xa8$1EBBu-KM!T)XBe0wLyZEs(_ymL0M)P2UH zZAFgz{@<{_8CRfZnh;;UworWT)vT`v_e}79lj$Eny`lE+w(7@=oWC!3SG~Nj?!(PU zx1?9zQ}brOld#<9&wJ*2@%Q(7hhGP}cxC7et3W8 zvZZHVI)C&{%D(^q>JxM6KXq@mdx(lV6}X;e+d4@rCOA7dV{5lbe#Yat+ujw`MJ9~> zUe~J&*1ny5%+_?v&5T)2t6Tf${{Opn=|Ay@wI_DL`=H;2 zi`|x|zni^eCeyd)S-bb=F};1aWtPuY-z9UL-2bh0+Q%Tb@alG{o&}%^+oqcXb0-6Xr>mdKI;Vst0Hf>3PXGV_ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=RS.png.meta b/UI/Sprites/Switch/Key=RS.png.meta new file mode 100644 index 0000000..7532f4a --- /dev/null +++ b/UI/Sprites/Switch/Key=RS.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 0ed6e81001ddf1445b38700b4ec79f28 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=SL.png b/UI/Sprites/Switch/Key=SL.png new file mode 100644 index 0000000000000000000000000000000000000000..9ce0231ca8b8ec92a8978cc8b72bfef22a647307 GIT binary patch literal 838 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9k$j^h8KQaN||Rmk(}8#~z!x;P}ZvBkjBY&%V*v_I1X^XHWLF zy8?~J4J0o4xE-suzkb&1@!VrJ`)b!0E-##MHtl=U$BReevPAYp-+1ob|JiJ(*dCj` z7rlEIzkfetQilCUmi>ZM#*Xtr}tWzVv|=24OL;x`s@?#tAy>-zDduBwN-HSoUEN&h`3 zj82-DxA$=#Z(H>{KdWikyoAa98JX*5dB0rH|F~H#{a}Op(Gv5O$Ba_dCsikz9!x#_ zyEu1lw4>2#PP;8N+rD)!4%smKLA>mI>y>URofd81_bM#W$0XCf*8cc~Rkgn2s~%fT zUbpD%C25=Q&wY(pZeMZv-Kl;fM^sk(A-CrXsjCs$BJ9 zMQsS(82aACY4yF5H~&11OkT0ri#@N|zxB-{73XKdGV+H#wXID~F1(dDE5l>fiWyR` zyWh>pUCm%Uz4O zdrju?lB~DB-!Aoke%{+M^H*u>&iU(J`10OgJY9BotF**2k<&kJd45;g>nbBzUA1>% zc+9#lR{M`~bn99?ZQH(f(VESxz4Q3a)UszQIfXwDYYWaw*`0GOW#UrLIPdQVT)ToE zD_y@P9WhUjXRTh3<@BO?dsF7!x!CdeY^%TUx8FA&-*NWd_bprED*u66(?wt7Rt2s+ qzBrmc^sB6Q8YAws29#;2`p=*_cf+oS3f(I~3O!x@T-G@yGywpuA9RBN literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=SL.png.meta b/UI/Sprites/Switch/Key=SL.png.meta new file mode 100644 index 0000000..b1499c0 --- /dev/null +++ b/UI/Sprites/Switch/Key=SL.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 04bb1d891f9a5684db3e9d2ed70215ff +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=SR.png b/UI/Sprites/Switch/Key=SR.png new file mode 100644 index 0000000000000000000000000000000000000000..103c4dbb32ed7297fb4aaf03bd943f8b310666a1 GIT binary patch literal 985 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9RJDZj+{u3<5g zo~VNshpbA-ge6TaTzVk|it$Ke{!>Oz1JRpQtnUvrB_Qf@7-pzo&WqV z7ohRD!HmmZd@ZZi-EE&*zE0-n`u{sFtqWUieehwS=B~Kk6=ls4l)i-T#e5r-? z@x9vC;eN4}LOsv(9_(Dkd^`QM*VGl&J`MA;-$=0@-YH$a`m)Kb(w7T=J?Ho^d9A|y zve-{CW{t&XBol&jCfxUM-10g~KSge>zW%{FgXKXBwg*iMDUgrd`FXzC$&GnCUfo<@ z`t-)xb;_d?PW{v-9E3D_WDR=QtX%C2Mo*Rtv!~@@^?$M zij?iKowa&JO|QSp$~@Scd|vtZInzC7mMt;d(Ur4%GRt+@_?`Xz?>CvX{Y!=8vw2a*zn#|_?`}Ug|D;i` z$ch!7(_SxI+x<`NaL$s~`=o2{7XFHukeSMkf z({XkA$tLrP&89b{W}5q5?{rvG-FLc*?^=oXKc$E`r4!3-e?MotG4FKp$U#e&#ljTE9EHNj+%L5yn!Z=U2WW$x4N;VX<7R2(DR0i@4dM2 zWl48WnEcuEQ8(?Z3>tuWSCnyo3J^`^#h7 p|8n}gKJ|X-{Z>#$!~_1Z)-$eOCBw`3@;MJknWw9t%Q~loCIEOl!`}b^ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=SR.png.meta b/UI/Sprites/Switch/Key=SR.png.meta new file mode 100644 index 0000000..ae9fa45 --- /dev/null +++ b/UI/Sprites/Switch/Key=SR.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 8ceb81565a3ec824ca5aad1141d24248 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=X.png b/UI/Sprites/Switch/Key=X.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d3ab763a91f85f381d40314d86caf76b534795 GIT binary patch literal 709 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9+>TLr(Fo!`%hScTQ#4e|pH#-z9STg=ND-`H3tZj^X}`qL_gOqktd% zZ*R4!-t4dEZ*{JJTekasuH)ky=Z`wq_ay(%Ib-biB{=KdZKq@VOiiYJ%)eA0uJ*UYY0J!G+kRj1UsjuJ`MBktxca}PXHB-%>h%>~ zkGN;C@%SUAlIMlTIYajTTonFl`i09+Ywq97H)T5Y*XXdt!S*YA%Dz~N{Qh$*BL3CV z%fSovRWDw9lK=8cRLqRSF7{VfH%@x7`DydcnNvT_VO?7HyxQjSx1Be_JWD(uGwl%( zfA!B-TJ_>qkNbSz${kh9DI=5+kz4X%7 zYtdTozkEOE+&=bgX`I#Gr7F9`UTV)3QoZ<9QvA)jpg#MyEkXY&RuFV!}VmP zZ%_aA`);wE^zEs?luv86AN#h%zWlzii(J0{D{DRNCm*LRnYY_H>`v8bu1nun70loF z{A&BLr%Uw9^Y3qYZK;`7&vlr6>Ay2SANt&W^*gz;hV$i#yPbA@N9~?`O!qpjK5wQ* z<)!Jz&3nJ5roHp~qTat<jU957t{@(4W-%dTAo5>3_6$L!toxQbl z^(xo@yEx_k+RQ#%w_W%}^|{~IYd^eLzwi0=V-J5N-VaT?>9=J4SAlmwHx}-xo3Q%B zf&AMOe@V?hv^T8x@{4v$e*W6K_MVpax1P7UlYP%(Zry_K4-cyUpL_dT#Jp<$GLHJ# z{`Nn+vih|yTJ+cL*q+Ey{oj7tB^%zq4dRIc^4}spd+%6wsV495gnTXitNL*}Uad5- zXM4T&bqBXh^@=?q`b}G>J&dZl=e?>%qHuR|@0RDbHw9V)o-Qrj`tvQ(%Jt6is)#++nvV#cQh21=?OPGDwOB^mS$|h(rXdMV~c)_66z{e!JqxJ#wg;5AiN|g4?6}>r&WNy3g^;Mq5(`N4O zsJLACLqO2{>#~{CpD~|1*n>DX?3&sER5GHJzDpCO8(L*>$g6exp*0K zUq`G={5rYK{T=7Gvdvtb2Go=5vgf^J>h5Q2f6iB9miuw%Z)~Q_v1v2Qr-v=-`@Pb$ z_~Uk=*m9Y;Qq?M-U`GBMv+OJ0{aZh?fjw-|`>oG1U5y!!zx3L&OJArhL+JtI)ECR9 z6s<7v3r>^YQ17aDr_<}ocOScSUeio2b*+nbO82hLYMq$+Y}xbRsWX3;9obsblr0s| znHRb!@!5~bb2~cpFUEHA34YWzUa!CB``?-Qch(zyemXN-#!K^idfa9{^=+pO_pICS zOhdmudB#<-xyRS;TrX6(ERt2`c)UyAGPxwrXJQ7*!XFNCN??ROP#}TxAA__*Be(eT QJ@Y{Fp00i_>zopr02Kb^OaK4? literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=ZL.png.meta b/UI/Sprites/Switch/Key=ZL.png.meta new file mode 100644 index 0000000..1d63b78 --- /dev/null +++ b/UI/Sprites/Switch/Key=ZL.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ae26ea3e5ab18424fbc91a55d6464306 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Key=ZR.png b/UI/Sprites/Switch/Key=ZR.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb7e3547b98bc00adcac460ba669e4c2aac79a1 GIT binary patch literal 837 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b#^NA%Cx&(BWL`2bF#Y#*aSW-L z^Y-?`!pjB{$3D8t+&{@y(UQ}!o6*N%W`lv_VHRCs6Q2Mx4{OGp2_;O2Sor1N+$&U^ zlzhDJ(UbqXUr)bw>9^baqmyz%nSf^F1~;Nl%spUs+uQSLgJPG!q0eDwf-Y@JwU_pM z{p)%AlH~%2etr1z>#J5dld{=Flc`_gE;(Jg^vx#SX?MVbe%yoiw+xDHm zs#A)sa=ucjUcucu(ahPk8%=*%-neT1S*`G7&2`;v>90?`-+cbyV*L$Esza+U#9mWu zS?_*AQOtgKp!kielNTF(dfvNawek~#;5`TSxAoO;%Ms`O{O-6|?bcb%x&Ar+x#y*e zGUn{x=xlpnV{32j{q1k`Lm#XQbFTeocC4yG$tH z*t?wl&*7_kc6;&UWbK~vYWsSo|0bXF%Gbpmb!GqFP{*(P;Zq2=^(@O9FLf_QU21Q1 z(hoWN)6>0TM$x`IkEdx|s();D^4l84_DX&EZbJnuhp%o+ zUH-=L?rGuH*tZM30EatbAF@^M#6W*Ich_+PyeYcV_8Q|E~EjCM;o3k13g( z)YyH8b4#H7;k`korEh{(XcbL+Y`r|)~k!_IDhx9=A_?(_(fY1pyfZb#U}Y)-FxAg-sYpUXO@geCw;9fhv| literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Key=ZR.png.meta b/UI/Sprites/Switch/Key=ZR.png.meta new file mode 100644 index 0000000..b973668 --- /dev/null +++ b/UI/Sprites/Switch/Key=ZR.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 49a4409b0afee0f4e9b131f26a216767 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Shape=Circle.png b/UI/Sprites/Switch/Shape=Circle.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd4ddf156172d955ab5ee066db6becc49885a39 GIT binary patch literal 1627 zcmV-h2Bi6kP)t<80drDELIAGL9O(c600d`2O+f$vv5yP42?ZLIuzPrUIY>+`*&+@4bEoCw(>q2?8$2WaEnM~FQoCyL% zgw9|@>d}eqgA7J`D&s`w-LkAgEX=PkH#fNVx(rfH zi(HkeaubjyWavS1r**K%)#1e_P;MI%n0omKI;67*mN&M5X(^NASx6+`qXRk-Ou4<# ziR7aNQ*N&uE%_+Hw!U}(>61&5{D_vc7HqphI)D+u;;unjU(8OP-)~QAVZ=NJa0PFvrPmqLAhg~14y@MNF%{^aGYby<8jmU0!8f< z%|?|sXo~(;cSy5I1hY})2kM~qxI-<$b{0Yc;tR97srq1wW@`49TB*8D1Z&HUa{Z%L zs@@yHc53Srh|kRTP02kZ_#Lc!eJ2&c^QtE+Q?$KGlz{lo%x2o1R7NnPHz+cR;`3ck z?2KSWZ*U}4QM@yP<;B`9;*7|!*jX2UieUSnK)KaO9}qM*A+2u%O_$$(W+!X03uVkXWJM$XT-vj+<8%{00&$Owp0^%1L)|bN0oq zLd!s6LwDX;yMA!1`vDNI**JBAQ;^t5^@9`4mUMht0!GO^3^QWdz$a z%_t6+RrxL~yQb`Pa%*ui3aj!Lsx}1IJFUz>LgH1T_gndkRg><1f`rE1t}pVY9C6U> zrW}@QkWg4wJ#py9Sgecvr!sn#LlfUw7yHj*-;;X<+k4`rAikpg-sgQU;O%9@rJLK! z+8@AF?H_k_Zu5RHf*ovddBxs_RgosE3$@$CWiI2R4(4@VTw5?xwKpv5q-IB>^}+Ik zbvWz}WGuAa{jbS4)UJaa_L{NQ$K2y`SZde1MH;X0x7Um>!R0PPlA%GpTcmLWJ0y}d zf;E!aKkk=W{oN{B@6jQ@Q0Gzef<*sZx0S0LwF!&-Vx8VY$^Egg=eRYkQ*;qY*9$rP z0_hT!d-U|FP6R8I+$o*NRXW=zOWx25rghEHuJ&wtC|$`_I*VY3z51lB>jb0;8I0Uc z7XfxISfS*`sMO12TFX`RvX!BIqdJ9?!(@fBTJ`i}?_8l|dr7h>d1V*$bQ&DF%w# zB7+Ndi0Hpz7E2|Fn-r$5ea0!GBVf8rCXbKz-24+0B{!m9^6+`eJrX-wimt+*oCU(F zqus*!m2auoJHd|JG{$C9uHf%<-4sUby`Aae9o`BqQjq=K9>*FqQHeUN=(W@$K?p8m z)3{C8;H1EuaCDM@0`nZkQw-?|?~dx;%V&9N_q9HB`;$r2>$hInBt8jfFcNUi z{NnuV^G^*vX~X*Du+vX=hDqGgNs}tRV{-Q7VSP5By`JQ=s=W!C?e<`+K5O5GT$w(X8>!|$7yEbZsO-1x{i(0B`(k@|!A%F* zBX792&ZyNW=&W9MbTOaSr@RM6`_JxJ8!*?LS$KQhd)9p-)1R(dyXTwh5nGYM)!!d+ z_3aSWomU*VGre)=`>M*9LUZkHw>7o8Yg>f950g2^BJIx{-+49r={up=f09|O+WhYi z{%)Fk+q>kZWjtruFVQ`k5wDo@Ij7C~6#igqf@ZkEesk&52VOVnhHco%V z)ZH(3CS<#Aa7!p=F>|L6Az7ieV^->el@GFJHTtuJAOG9EvEuUf`Rg)g)&Et?w)W@H z+cl%GZU?W-(%-^!19smD?)AR>`}h)@iQZOr?~cTD+%5Ipbk+5YiqyKVg^Wm%$iQ%T Z7vuMvg)g$+f1eH#_jL7hS?83{1OW9u_#6NL literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Shape=L.png.meta b/UI/Sprites/Switch/Shape=L.png.meta new file mode 100644 index 0000000..1103323 --- /dev/null +++ b/UI/Sprites/Switch/Shape=L.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 84aa435578f105d4da5b6fdaf7c35ea4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Shape=R.png b/UI/Sprites/Switch/Shape=R.png new file mode 100644 index 0000000000000000000000000000000000000000..b382fcaec0a368c2b58390519bbcbaf9640c99db GIT binary patch literal 666 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9Y$SV@Xp%z9bd-$(0Z6g?-Y zAduCxqKXCYf2Z!-dt&DaOK#a{^K)wHb3d=#H$BMgBmW!b^c!mT?T!hA{g0nrJh^!G z#@!Z^avvDJi}e$>V$D5wo9FJa_*<<1gpS#|#-7u1zJE-9R`2yYY9(E>=FHA1v7MJX zKS%6vo7eK(nZ?s5&cCzjiG3|^`RU+Kdj2=p%l|%ZS|C4b*00a6UK#GrW%duBzWGON z3bTLo^x~hZXRB%=daC7XbWBU=<4}>AEeF%u0K4zeYRe> zf%{&*czHP!gVQ$tCqBRDmzeSVUfbydHs8ZGHqQLE`bMnD^~$}6pK?8`3XSJEW4c~{ z-lCi5Vh`q==RI>xV#eD;2Xffjtc%5YpL4Yt8_a2Z$itJKV8MJ?QsUf!0ybI*g)`?n zh1_1gZjE!uYpEa39j|IvuCKjc-}lh*@S_)An&-=AuURcIk6ph_FFnvchq<3$G_GYL z=c{>H8><7p{7VnA4VYe1S2Oc++wRwzE7#tdlWO+oq2>eRNS(Cg@ej5}t%el;*jiAU OWAJqKb6Mw<&;$UAgd4;F literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Shape=R.png.meta b/UI/Sprites/Switch/Shape=R.png.meta new file mode 100644 index 0000000..1da50c4 --- /dev/null +++ b/UI/Sprites/Switch/Shape=R.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: bb1949fc7a3625d4a995bd5bc419d616 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Shape=SL-SR.png b/UI/Sprites/Switch/Shape=SL-SR.png new file mode 100644 index 0000000000000000000000000000000000000000..24a8c941218368d56b3ae6a71ce30fd29ca14844 GIT binary patch literal 813 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9y>WVF${YRu?x-U@%M<3;_V8~1kfhG`_vH-n$_>o&!T-xLTdKW<JO1u32 zi>`08>wLMZqP|G|LCM+P%$cX&POo@h^Z(zhJ7NWErW8BNPYr92F;(BT?qKH6xzfM1 zw*Pu|dG>ZLzu?c87CcxtbCtRFkKK+(i$9;;)wD9s^R-r<){IwIH`nFg2{F)4x1AdP z;kl0O`MJ^}caMwM8m*9WJ&@eIDv{-ku4nA)hIY2l=7^NFJe&G{o#6Y`-EdTJg9VeA z`+-Ls5i*S3$_a%mI(?)G?%>#AvSO9egHsE#1R3MEq}o`mRZ7TpWw9|{G0XI}#$VHI zMFGKSk!9ES`2NZa2tFdd&FIS4dhNqoj58AhK3;lbcDn4)tg`LGe(KBG_RY@Ad%b__ z(t48vMz>ykxmopePi4~UMCV(t{~z2@d(+*wEV^u-+R{(|l3vVSzD+M?ee!1v`iPtX+CK za(1zli#v0F=R+~B+nZ~Q%#VZr>mdKI;Vst0GXL%6#xJL literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Shape=SL-SR.png.meta b/UI/Sprites/Switch/Shape=SL-SR.png.meta new file mode 100644 index 0000000..f9363ec --- /dev/null +++ b/UI/Sprites/Switch/Shape=SL-SR.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ab01a930971c22d4c8278d44c711c212 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Switch/Shape=Stick_Press.png b/UI/Sprites/Switch/Shape=Stick_Press.png new file mode 100644 index 0000000000000000000000000000000000000000..a8548b58c238a37239514d8c933d6d298c6d8e6e GIT binary patch literal 3430 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 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Switch/Shape=ZR.png.meta b/UI/Sprites/Switch/Shape=ZR.png.meta new file mode 100644 index 0000000..cf20117 --- /dev/null +++ b/UI/Sprites/Switch/Shape=ZR.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 8bb60684ae7da6240b378556f0c714e7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Xbox.meta b/UI/Sprites/Xbox.meta new file mode 100644 index 0000000..60899ef --- /dev/null +++ b/UI/Sprites/Xbox.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 951b550afa9ad264e98c8996f0964163 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Xbox/Key=A.png b/UI/Sprites/Xbox/Key=A.png new file mode 100644 index 0000000000000000000000000000000000000000..fd974899b9599e16d6a2af9e3ef9512f49cf59fa GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9de-OD|=D$o38Xsdss!LD}hl6s&JBhYlL zpn-qQWPYd6?;qb5EqdaAy>vgT-BC`vms{8y{R=-e-C}99FMRZ_N7#m=rgQSO*EV}i zo=o2IUg2{LXN|<}?}5)fzglOyyq1-Dl>IJc=`Z=FUzv7NbBl$p==xoXo6gx(b(B-8 zL{ceuZAqPpm3l|}+&(@1I zCRTe_+|B&wa$@lUzCxpQrte=}oza}=BQRz8wu~$Lr8XP)C>l*&wyk;fZR2G2!#5N( z)P3hAPSQKqvsH&fZXT7PlMY3ow*_t_Dg5Q+f^5{E_&uZUp_f&y;0?D_UPT^qK^eX={swN&%Cx^TXk<$ zYe#qG$GY; zW8swC$axD*zZVK#DDQI<{@-qD^fgG3UpD7um-NjWJtvMh$6!q(5W$8X^^7PRCG~wZ P%^(3!S3j3^P6<`3`Fvu>vtB{kR zrr{G{*1&sDftlx)#0zwf%Nw1>4ASNCkcP}YsdTjw};Px&*zjkUf&oK@4Yp; zk5_nw+Og`la}tl;s|c%eo7(T0F1mm7Jh|RyOZJM(e^K4lb87XckNX~7QJZA-qxwV1 z%iMH7>%JvEo7}>Uk6+fS;;1MQ=2m@hvFh26I~@0;+2srD%O*UNo6a)lqDbD^S;f+x zx|Itbueg8jzU;pIq&p@C=8dmT`TUOlQ1k2V*Jg9e?jt^%-jz?R{lZnTdtJyc@68R{ zt@TRps^34P{Gjr=>XXwRUI$9;Qr>EC?ua{eSJu0Z?_ba>_oJ2SOZ^tF`)S|v$oyd5 zSN|&??thqVdiKAXP+{jhpW27Bp8d~MQF;)qHT%CWklrnJ^^f?6*zT-<+&|W-iMbru z{w2A3<4nu7-7YLPFOP5M%%1gsWm)-+O~G!tD;IwJZ~bc9@oPHs-t?}ie|X`@={@%> z-@LQvbctCc|4eC;V8PziJ-e-0VwQLBNkj%eO_5s_0v{m@AXBs_A-n>qtU^J znA>l+-QHH)Bl+b0ot)#pCx5lLbGV>?qrm#+;L^y|Yf7&Pe5=)IXjs1c^o08KSeHa5 zyYs2nl10=We2#s#|A$_e&Z@=tSj8p-^5~bsIIf$+XF8V`Q*+-~0<*pvQYW8%_PTV-w@%{#j4Ymc0h99zuV*P0(roeSMlQy>4oxOU}Q z=h!bEhpS4iJ^!;Sb54sxi{c&Hz>45MX zbJ?iiMRr_~w@g;v*8kQ2)#Uh<)c^Oc8uFVdQ&MBb@0E0RQ{{R30 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Xbox/Key=LB.png.meta b/UI/Sprites/Xbox/Key=LB.png.meta new file mode 100644 index 0000000..fb72f49 --- /dev/null +++ b/UI/Sprites/Xbox/Key=LB.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 2c665852e658d7b4aa13b825d7cce91f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Xbox/Key=LS.png b/UI/Sprites/Xbox/Key=LS.png new file mode 100644 index 0000000000000000000000000000000000000000..9fb9ef6a778614bc24e704ebe69827f14eab34d6 GIT binary patch literal 840 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9*!G5F!xh_~OA0*;tAGjY}rK?FfEXn^rcZ)9%g5XLcpp zoj~Jpg95*q59H77bTVIhOuF~Z|6kMHmTo+|>CN^BCcoU{b|02|BKe}UxVJU-e(CPZ zKQt`vP2jwiea=KKww`}o-rE=1D_C~#x;igQ?L~SA%j>Pn-qkGf`K0YRW%cfBJLjBt zQ~DBhDKtw&_jm5HJyWZm&H0_I&U@UiG;ObFOZ7XwT~B|dt(+)tvHU{BTiMe&za*Gd zc4S_w5ifX`qjS=CQ}?&E#`!ny-n^PsUbFc6j_bLq6TQnOU0uXunZa|?)Kl$-zNwk6 z`LtVB;-8$B+-bVK>(NfNpY3j%%F~OQ-dlgWt$Xp-)zcHbk5771$!pMkE;b@D@p=`H z@${C+7dOJ+ogpDNXy6J1IVC&y^ih|8cE6{?h3}zx0j= z@9jU&&5l2mlYMfhOGj&;?5$b*vm>(iUD#k~wxuB;qeiUdx4iC-ht)SE_7>fJ{3UtK zS_`j@DizOv%dAp)+xv`I>CWK0 zH+B`jICONyyiPx>gX`8wtzEK?S3fpF^riFZeO^k&r<(R#uR9fNd$r(i&h=xL{(4@F z`M&r1+pTiDGk@IK#{ShzXl6!y?8e9~EMoVWbxktkYl`09n%wtTd*%D)`MaKY9=H6) zU!pkC^W8*Q?QhwWoR3{}`sF)IOlV=q@dw(L?<+F(m()(?So-HgpRQ-#lagz_@t#X2 z&2|0V%I&>LH!h?|X7-BMV}BUro*vTKJ$099^djdj?rXnvH!hu5E&F@-p*;-yj-TIj r-^(`no~~SoUEL=p3*4y)z4*}Q$iB}N8olQ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Xbox/Key=LS.png.meta b/UI/Sprites/Xbox/Key=LS.png.meta new file mode 100644 index 0000000..ff6acc7 --- /dev/null +++ b/UI/Sprites/Xbox/Key=LS.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 23da784e9a91ca842833be97d4974e42 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Xbox/Key=LT.png b/UI/Sprites/Xbox/Key=LT.png new file mode 100644 index 0000000000000000000000000000000000000000..276a089d78ca72501974c9d6c34b6e8c79202ee8 GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b#^NA%Cx&(BWL^R}zdcD^~-x zVt`L2->da+&n-MxS9I>`wLk3BD{fRVUQ;cwXgtg*n-_==u zo_#-fy|vI1mbfZs)8aL&woAV+ERVSeH-ZPlr9goR5BQ5Md;5OJ_d9^3Jzf1=);T3K F0Ra4qbDRJG literal 0 HcmV?d00001 diff --git a/UI/Sprites/Xbox/Key=LT.png.meta b/UI/Sprites/Xbox/Key=LT.png.meta new file mode 100644 index 0000000..b1ad956 --- /dev/null +++ b/UI/Sprites/Xbox/Key=LT.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 5243e71dad9bacd48b19927d18bfc7cd +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Xbox/Key=Menu.png b/UI/Sprites/Xbox/Key=Menu.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3bca373a4d804b31a73dd21266781bb543b286 GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9Y$2QDemg(8pex>rX#i@B)i<++UEb%QkxqIE52f@b*eI}k_t51=M*9_X}YQOF2 z=Bsn|>8_2t#TUCNd8+A;MW$7g>t^rSa!ig1XwiZHcMp4ByED!ASILT9?E4DDYHPi@ z&M(r=pIr8G|IYo-!q#gBSsuKfTX{~xFSlua&;fZ_bE8M{vfjrwF7ZfhzHi(Y+cm}X z$Df}YeD6=*vt?H7FJ_RbvC*y;F>^WEZwoxUU@6GASNP$D?a5so1v_{J`DCM&4mq}f dl%ay~56m~NiLu)&p3wwJc)I$ztaD0e0sxRwnr;99 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Xbox/Key=Menu.png.meta b/UI/Sprites/Xbox/Key=Menu.png.meta new file mode 100644 index 0000000..a98004c --- /dev/null +++ b/UI/Sprites/Xbox/Key=Menu.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ea6c2bed6b5cad84aa3d9e515f40883f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Xbox/Key=RB.png b/UI/Sprites/Xbox/Key=RB.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1cb5d124f04f3d23369634562a762b0a17047b GIT binary patch literal 876 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b&H|6fVg?5DSP*8EY;XfI7#NF# z+?^QKos)S9a*0l zfu`dDKK-lKeJ#-!+pjC9ledJ`HrD3(xkvYugiS6R9n80#KP$ub{$ke&F11rCImM!P zKlpAmN4wjiJI15w*|Z1Y+Pfb}OP)KFG(Bn3^H~ov)*im6oIL4q$=(SqXDkn1jA|3r zi4v`@o$1nKAF`poe&Y$9ZRakWu?vh}Iyd)hrE#}<`kko{Y)eHx(>Md?Joq0Y-eYR^;?z20$=kG}?o>2GX+_v+RIwDneC3$ov(2InzU~2njfCK zy= z*32kg`QEatwIZR_Q@43fojWt8>2zzW_sab% z9NBb=PF;VzcUqwDrY^nJPomSOM?B&A^kD8UZrN(dn<@L%A}1xEFMs?-=zXucc&x6@ z+}x8oRy}^vb{7+8Z+~^VuO~k=<>=$Aj|cXuuVnw=R_fLy9`$F}!gHIgT&I6q9w>Tm z`^oZ6rOQ-Y?DnGrQe4Yqi(n%f|Co*;pKVbz;lT zl@gb?S|6;w<=Axku}pS)TK>29r_MdvyV;VlD+wukfm4zOM2$PqAd zyv^yP?qSxzE74fOw5jnn=LxoD!Ya~#re+mRm-3#LdvWu_+IJ-<6HlJ{$-POZkppNp zZeV$q#c`F@c6+gH647?Qr{B;0nS1(mj+r&rrJLMYTjpPyc4(S=IiKW-dC4!&Uw@Wx z+PTjz|4>82>#|zCUGMi_c;^)@$5J>;|G{NfbJ^c|r8Cxs9k!a4aj#*n(bJ~vc?JG_ zR*NRspDZ=r_D1N{+SDvfy&YzlO<&zSizO+U@ka z@ce!MCX2J;8+JeFztmhNzs~*^$Dxvn19>w_Xa8$1EBBu-KM!T)XBe0wLyZEs(_ymL0M)P2UH zZAFgz{@<{_8CRfZnh;;UworWT)vT`v_e}79lj$Eny`lE+w(7@=oWC!3SG~Nj?!(PU zx1?9zQ}brOld#<9&wJ*2@%Q(7hhGP}cxC7et3W8 zvZZHVI)C&{%D(^q>JxM6KXq@mdx(lV6}X;e+d4@rCOA7dV{5lbe#Yat+ujw`MJ9~> zUe~J&*1ny5%+_?v&5T)2t6Tf${{Opn=|Ay@wI_DL`=H;2 zi`|x|zni^eCeyd)S-bb=F};1aWtPuY-z9UL-2bh0+Q%Tb@alG{o&}%^+oqcXb0-6Xr>mdKI;Vst0Hf>3PXGV_ literal 0 HcmV?d00001 diff --git a/UI/Sprites/Xbox/Key=RS.png.meta b/UI/Sprites/Xbox/Key=RS.png.meta new file mode 100644 index 0000000..63bd85c --- /dev/null +++ b/UI/Sprites/Xbox/Key=RS.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 1f5c03735f86c174ab7cf07e0de082f4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Xbox/Key=RT.png b/UI/Sprites/Xbox/Key=RT.png new file mode 100644 index 0000000000000000000000000000000000000000..9a615e0ee8acf779a8d36245193af5227648f552 GIT binary patch literal 672 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 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Xbox/Shape=LB.png.meta b/UI/Sprites/Xbox/Shape=LB.png.meta new file mode 100644 index 0000000..8985f31 --- /dev/null +++ b/UI/Sprites/Xbox/Shape=LB.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: d0321bfbd06fb2649aefe04056d3e620 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/Xbox/Shape=LT.png b/UI/Sprites/Xbox/Shape=LT.png new file mode 100644 index 0000000000000000000000000000000000000000..5b1c395441369a64c29e6baecd37e7c104b14c42 GIT binary patch literal 1382 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 literal 0 HcmV?d00001 diff --git a/UI/Sprites/Xbox/Shape=Stick_Press.png.meta b/UI/Sprites/Xbox/Shape=Stick_Press.png.meta new file mode 100644 index 0000000..95b46e5 --- /dev/null +++ b/UI/Sprites/Xbox/Shape=Stick_Press.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: e0cb10838b6bbd44aa10dff86a221d9b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Nintendo Switch + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreScarlett + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: GameCoreXboxOne + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/background_default.png b/UI/Sprites/background_default.png new file mode 100644 index 0000000000000000000000000000000000000000..526aba5d1370f89dd3ced6babf8190df563a377a GIT binary patch literal 485382 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 so|a$Xg{4 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%0D!N*EV>s-+j)$sRz<^ESn3 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 z

l>`BUWLN89^P*W>7Ik~=&6?rFtw<-LMArc>4S`YG{Gz4$mC`IBG5J_`+tT8>;x zU4u6T>ei~681tm|m!wkdZP))~>Gc#~*P5ct*3WV|E6g2zjgM2DI|-TVxIF3EBouzB z96HVYFU{yqy`Y8bod7wR`4%7S7kqO;RFMLz?(_YVp+~~|)WF~GlA1H7f`7n20dw~B z+q2vRHsFjY43gb!qJ5JunO{opkrTg|F&mliGw73b!Qa{G`LkDXS8>U7|CCbC>OFaZ z)eZy#J&89Wx7NEl^0!VTH?n-RO3mbwu+96*;ofD~8<7bxv{izwx!5?PoBE&H6;E}F zd8Ol3s7(E80znMY99{9>4_v2Fr-hEkT+aOtVU!I#Nuz z=)#hCS%1Ap#uO2i=A9 z@`sVm_I{o%=ZQ+I1jLK?GPxwH$+dXBh{8KV>+Zw8k$)=ES7O3#|DH?@%@Ri!-z5kh z@r3XX@sJw~b#zKALPDrsEc!h;iY*Oe2#{}5o*#;(tddabDaQ>Pn;)}hR~2O>IK>xi zU3osTUO2<%s(Yardh8j-O1oC1)2q{s_UzO-P>EAcuAV99WS{4?Yr~sgfsIv!~aj;pm5!{!JS{5b|jdoZ1v+ z!HG??6u3(9nYqNXN0^jx_o`0@R7{Q&{L>I=JFl;5+m{bf1?}DrMw5J@lfvMRw{B=_cKTnS&rw z(oGO8D>`1l{ncE21ucM}^iRPQhcWdW6b6^G+^akc6CLzJXaxoZXF&I=h&%5~erR!%mMU zkJbdvkT3r6oh-eLF6j;o4ZzE;jN=Wx1>o0RBciAxa(gLR0#wivk&HSbNnWx}5!Y%w zmG4bF)2C(a`rUshl*I6mecONa8LO!qap&z7*@LK%ze)}6>dI%6_F^n8n6+K2N*4`> z0&!ntTM#!RIEynfB9YOGOEhX`nnkXh!z=lXTETmf*}8iF(c!0ma^`E&0+V%8u)cAw zGO4{jpUtz634(Z++S&Ynub0M2PnpcQL8REiK)zk`CvMs*2i*Y5Q#rBF`+4c7w<%`F zwpL+(x5|IiwZ6c4rkV)8ccn<-R2x5MG9e#cD>XJwH*@)92cTM4DT1muje(Li81n7> zorhsrD7bL?mwrD00?QljooPVk>WtQ0x5oOW3>x*6&7yC}zTA?T-H%nZL!G;$(vUCS z-;J3trcEs-pPVQ=D?1Qxfse#{jr8mz36;rbi`llRIIlRp7L8=clX*AT?eu%9Ph7d4 zPd*^~(*YnyP}T*|lO2$URzNe4wCMCrg(YF8=bDi@eXj_sdq^#q>=*bF`JYM376Cv$ z*taYncyBJclR(SO_b!2PM0@xCytZ^?Z~N1$EPq*ZkMDu0_D3dz=NIx`1s>aFVSNvwxT5`e53u3;T|B&Kfff^${9e&wf;YIepR> zq+`J*eDC@kaAP=t3ve}Rykx&4((fdF`GKd?BsZmT;rocpLJ=yXFmsbG=iO{K19ZLj zubj3bLP&%&TuB8o%heYoKF z40H39T!GhqTzLq-@`in@eB6q?gw^-e_@E%G;6$aln(Z-5`sv_0VKe)J8w@j`>S=`7 zjLa9L+0i|Dbc_8Bs@AET2P=_bL1y(jOlZE=+2iorB{R28(= zrD5srcc1_7{k&i9z3#c^%sDgHnJ5t)wKyi%WZ1;6M?9WP@!Mpk=na&tb-ng?rhb=$ z#5lRmt0L-2yoBhp$^PrBmsiCoFL%3rX+GvfZX)uo@TZTV4r$*RNhMKvL+pc@nU_m+ zq#j1jK_M=L?R9qMJW23VXsfJKtcgKAdKEU9Bf;;;FWUr-TX4G7uaudo z5A5l`)t{d9-Xof?vZdpPfslTLdmIGyD>H|XYFJL!h?Nb91ONgOnYE=*O6DbdHq85_ z8R1_?1H0k*(i1;VEJCJOC9RIbgSq;TWY0vv~cF_s+__s&iTmk{2n_r7NZH z%MbPbfdT#wv(GMj8z<^p+^{J1gC6s-9`U;3(xUp=v{}GcTEnn@poJ!$E1wmP&?7K&;hyIsV*d0WN#M z*hbUy#jaEX<=zU9_c>54(m@9e^7|MW!zuJbTEMaTX-~i(t*y5hXo+9*HxHavgJgjX zGH2gTPbo~VDF1cI$cWFs>i7PYy~u2QbX`tGs{|IP%PCZaa_&j5Qtn^Ap z0KCYZ_02zEmU;f zH1&^tUdEJuZl&6og7%@k`8%sgN5@ z)nx_dj2LVYwnt96$%5~Zs5=Us>Cx3wh9Ba+vb%lT@YOJ94?n+O!Q4N=u5{;@UVsfd z&G+3h_iqci>VZ5Gxm3mb2n-{5IsIyP(Q=s9)AU(|2Pi51$c8LhcE5Gsh7H(uh@^ne zlT8BnC6$nf&igTL%B6{$d zw^gML|K=A3wQql5TkKf$iAR8IEz{q42Gb&b#0$dQnwi=%9~5_Y-*e1yx|VM8OLZEj zoM7YfgnyFg5u%kGmA`D${Zy7@l0k~?$#}ls!YFmeWYZjMADyg^@=3m79=N+AW}&>f z>AEQ|fo`{?cuZisF4N-zu9|~DAXyr0sas;{f`p9KL+n~a(by1vt@DwWSOM*P# zzZO08j*wf>HQy(JIw%p7p+4euiw8EOpk;rd+lX~3o8MR0EUZN)#EBS+*b>fHv+ z;0A(3g#W0Ari7!05>omLDjU0X6VCU$q875|riy$p!zcxeoJ|GA-e*kgO zyy<7nXTgVT8$T@j$BZ5nSNKUYLNs37VqOY?wxIkRqAmR8j#U;t*)>9vE$YJC7?ACM zUTQi?%0SN(4e(p;oKOsWJ6oa9ZQK=k5KXk!8ed|>>=TAQJ{m36n#&aGrg2HBFBTJ71Z9~+p#>fsIvOf&3(betbeD>Vr#oi z#v+4XtURFy4Q^Ri*}$tJk;g7D8WkikzpDUO^(P;lb7b#p7_cA6w(vc4U0FWh-Q6YM zgG==q4*RUH|Gu_Q8N>6U<6=1wknArKrM82Y$vJEgi}(3Nz2VtTuM7>or?JTje^m?b zO!^YmLZ*+jn&>-9##XPg7+YkcA8|kWF91}y9oBf8w{B_ytv%%(<#vD+L2YDKT4W&S z5Hsc-@!B_D8~ko2fpBYCs^>+!v~mb1NmjbF8d(P{QsLgZeSL*0^Wvc0Xh68`R^(`Dm)d`D8rR-z|U(!Zs{X)7fQ@G56W z9>8OP4(AuPp({DaP{S8D@Fpe`*)H%F(Ozr`Px*5>PQD#%bmMYDzEHJ`=M(`%RbORF zI%Z;ARTBw23jb>PAe08tlDg!gCx4I)?Q1l>s-<2A64mhJ$*I%vtoU8}dj~xkBG?@>H7FN!4U+>iKGMQ8eqKAl6 z<|=Ptk3Jm4T*_r40Ru;(d|Ipb_$WxQ*6moe=!rBbP8LC?kOQt?mr4z;#Fo)9zU`<4l>i$#U!A#IiSxpmA&1VM-0`R7vh!dH0Pe1Ej~bW7)K zYlObG#9}0D17djMcUZ=5Mk1>_4!68|#}Mje=CUNjWEVleLnTwk5m( z{CDYv;R30uYfaDeYmQ{?ry&vzOyNeSg%-+M@0q+>;Y%Y;Zkg4hZ6CAL@R$zi2UI;+hR2aTxD|u2&!0Wq#dCGR0I7~{| z{&qI#N#ft!g?JT#Rr-GW(@t<#Kwp?*Fu;F#IR-E)i*6P0^K#!*c$UvpWP}7^e z#B&$sC^9!nM^i!&Jo!HKdO-Au#}tZh&W~WgH;x7};M$b;28v=M;xV$P{j>U)>*Rmn~`jua0Q7`*`vVc^kaKi`^L@&K*~`-_XF|WgY#@ z&$gF|c9+GQ^PRc?H#^yVHYqwg3%chB7%MHf!r+sozma6LRuEaTd-)y?T5_=aD1ESC z?R-I6d{DK0`?=E--JGO&pk<-J)sj7FUUR7;QkYmDuV?q2mBi%<_r27IvexdR`tD0Q z?DLam1LY8>)HX|6xZR$E3#3)Z_eE+ub9|-?ZI|cGYL*Ee)gHnN6MR%%xYBX_fT(?8 z=-*%Es)qtmI$^jT;LkO&#wn&qiJk*HRrir$%QX^Q3Tio7Py#J`G997^!7xg{I61Zklsj2%*pGF2m9kJJvLW|k{7xUI zDh@&ng!8BFOvAfef@)H=k#YQPpP#)bPl5MsV6`_;){-=7YwOz5{Ck`%Pn2@A4`Do>R1OMd^18{=SOK-CbI z3IuDm-el>+gW0t{_w0?6__jw5JFGPD6HAc>c}lr0ve$vc&GRPDbdTPf$d~(b>KReC+NiDhaR=lmvVPHeZo}FiFWN8(n#(JKWI}B&Da-2 z&$E6~<^|M@$z5xvyTM!X~z|I_!lXk;jfVV9mtPC%To$j~u--`Q$CKOW%rCiJc1+ z8jps4{kg!EyDDpRZ?ewG@;XaQS5-XiK=K1#ZgIB+yD)*8eXFU!JDTK=^=0y5Z`y6V zt6jP|_H1=H#lzRkrHI7Y;Vn?5h7nO!rhLM}K$mdAd&2jp>0+avOVTakwJqF{oHl@F0wUVWubHOqP^dL(ut?>n@{tM$lXOxdIqsq>J-dU`gG;G2;%uWpJEo}yQ-`9T;2_{(G(e9QR`osRK>f`0Y ziBIHN%(ks!H$A8>7%qvwExNkZ??HaweqZr)^!>q|8^UPcfqTrA`_m;Bz>&9fVsS_# z;L!7(hUi~!z!x%ZxFbsk57hv4I~Ic+t-}@=*NQ)ky2B<7wVL;g_e>#E;r!50QIW#N z**6#1I^|JEV^Bl2jTM#3A0KL3**YZ$J<>Wbr0DdrttxD-!U%^a0I3nqj z{5@u>sr4aLk@bylOE}nJ>~Kj34-ob;%TEdR;}gdBA1(wgstbJQBnVhqgZD&XxsE7PV#^v`vX0U68OB>Guzl2wJej*5ZC zq?V9)(hJY<;GQnP>QV=?=aJ+~CN$d*XTMUP?x*fz-`Hr^Dy`OYe! z5WW@ra7}*~FtF0);eiyCg2_lxE9?BKQ^%ZqW!;LCk7W%*>u04^?PU!9$6g_u)=*G+ zzMm->CAZ*mjzW+8A75F6SLz&+BQU8Xp+$GXW~<{lmYE9hN!)tBrl5QxqM`Rk6NN#M z{{c|i!X}5}@I*u_ciX6aF_@V(_j`PmVV#DT#fa%ixM+xa8N=&I9~q_^%H>Zl+)9D? z^A^*9H(FzI`**#hbiN;|yh1H~!Z{1RJIHYBS1YtF8sfx!Z#k2}A8nHPIzseNUA51I zlIqZUq6GsQ^9i(vu`!35%71mx{7KfcIkuTXC=wdnE(LprhCUrVU96_{VMA&%5b^n5 ziHz;O#Mi`?oP+fIHt23ZkS2Pq`vH@Nj;881#k>g! zjx~*4d$(hNejLc%E!wO$F0p%y-pyavgKbHk&=7Kp4N?w&)X&g3x3P3uTdtnBr5{b| zD!&lh_|T!7H9gAZwO<8^RUPHD&eP6Hi>EJyAx3Cc3{ROHo+T(iv4=bh|86NP+kIFM z#}oSgeFnb3-5#*ngfH8HEjn;nA|2EdsmQJIUkTjG!rjSL;L8enAD@WwjW?MNTileH&Uo_r`U;d5>I6fsGBPjdi(Q?I(SvT zn38l73TLjIRiucFi`EwVRpv4OW_*&UJ^sp;HfaU3RJNJ6CZL>|_}hxWSuf2cJHM%_ z6oIGrzQM@1v9ERn(6qXr2H~(N1PvjD|48p5+gLylk4(=rb9~H6jBhJ`?a*A9lm{6( zp&Pz!O2q74cLEtPd#Le+#Tx-CT;GyAWsDG#X0Fq5RL0=;GOw9tCCY^xi!(HnqsMp{h4> zZEuH!zwoT94MYM`zYZhnPX0FgxvdMk!tQRexZS7Gm0zFaT|T%SbxehfT~Z_|M%nuI zS$;5ne5<9;cK>`{YS!*%TXo`y8-Y=qsa;6zP?;ZgVuZJxJPqd8q?fLydRVjlTi~ z*Bx@pK}&euo?-KVZT*_T9R_(nkJ5ab(yJH*K8&x{1h&jM7o^)()7#I@uCjb-WkhG^ z)`PU}A+$DQu2fb0%4#M9@BW40L*O0Gr60Xs%Ccj{cyt-oU}bMRk#Qu8_*sMf)P#xR z{6$cj zP+$^j;;k`C-KjD9wcAeB4L!;PVyKNXl`WN0Z~cI$UFij_aF=h#EpH2^Wn;FgfQdyu z;Im+TM<%FI6+(6K*+6?f@FSS8_ux`oV*f;7bXE)?;2qcimZWkK8zN8dG)anx9eB1v zP%l|bgo$|;l=v$fhbr37`K57SKlT0p0>>1Ouh?MN#ReUZ1%hpcH`dS>PM(;# zr90Iy|Dn}%csU*(b}x{ar7=p43HAZ?^3ziTJx-{zIS$78r#{JOh6!H24l2P(^4Z!x zqy~#LqBr(#NQW+*-$)9sr3Z!A5xxB-kYy}7CG1){^Hu4eiMgg-yOAW%utM~+;-i~X;jHV+YC*CLJVre8Xd^F`McS#`Nv z+Oxbs^Vs(ljR`^uMcP!kzl+S!|71@eH8Z&HE}H7|1Ys4k(YL%T1R$oE?8E4lyw5gGdof^;sf zllzZ_eSkK%<^zObddb4Ab0yuA>&J{9(=nx2Px?QX1Y0iIwr*$#=Sv3|u$DbF`A_7oH}V&ll^DX-m}P{>>4_7Q{rD6n$PQ`gjT9 z>vfXIqZE|=@VSpE)hRN8y^dYz-|gSuV#S#*wQ{RMfV4Xu;>J*((`ACVf_(u{^!g ztF{Gh{r(CUp6fk0TE(`QCHdl~6z0=BqAx4~K<{m83W~o}&dwRm_BXnHX5*0^6!)zz z2Ke>wB-)w8kcYVf4ecld8f&^UylBCzhIecX1$4c0%wuiZ?|YlD7;%v4>ThrrD?0dU z$n8ts{wBj8dX#!0Lq>T7rr3RG)RgT#ZYiyZ1Z! zZ_(IrV{EWIXpD3Hlc#@Y7-Wrav9Aj5vLt$hMpMB<{L4(2vn})8J;~9T0^u%;R6|a5 zFmR~9_~Q#IHEgRfTe>)^E30Qr19Ja_p?~Yst1aemUuK<2ZARdnxLm%ra7w&c8lf1( zH&yq?z3|m}Y*7c^boScre%ZbOvQT?QxoMU&G9*fQTCq~Lx9Fo{t=CB4E%74}-0b=l zzzb;cXB+eehn+uL8!!C|*jkFwZNe|6(T#SD_tTZTZPL9saB5i1{jDMOr#G_z=jlQ< zNX#uP-X~i_I-ug>Hxpo9nyKL8@txHzC`m~kOjSEY*=1L=UG$Be za=$}X0w)eNWSS?Hx_q~o!4IpKf=zY-{6ZloOMip|LK6yC*xD;>kzsUM?Qm-3(cQPs zq7i&L(g5voIZ#x*)8Rx?FxUz}grh~%KB zl|7&!znLE|*_J)N-qvV}0IO)hqVr^VVF_!{LefnGK&R)HZP&U5C=Z?GKfRH5|K>t&?pn#MF8o{z;!loWDWoxWc~B!26t?6*=1 zFt;DEjp7zB27EF&nyc4LK=2u5#fZbUO_K^Vi1&|1V$P~ekJl$ZUu;D~TeA3@`nZ}j zmzT>D(-%EeOg|tQB(F}$xs?`2{epP8(SD=e3Wt7n)Fr1A?D^eG$7b2U=1SV74XUMH#Z6ujp}B<#c`JpkKR2G zZ)|DCr+q*22CqJQj_(Ypj%oGGk@@_hgMz0&jHSEkv;GtL!2Pe*!o|2R%56XCg)Xi+ z7O%6+#5WqlByP=ZGb{_c98S?N14ix1de;O4HHlSH#mB9<)<0?$*KXOrhBP`DsR`}3 z9-s4MN{>BHj9`a?!51iwrD0>e^-IIUR_>9N<_<8b~OzpX`%U5^T96W+W|XVJmv6BjJbKq`W5KyugBB&>s zqJ{n4?8Oa|iTID`==z%=rH!%lwJ@RSOZ!E?PcG_^#@YM=Y}0i~D;2UvFSPlcA?}mg z?i8g^?an9gCOzAaMRrzb8{QbOV<|4AqH`mub2vX*I6smIBiPN?N;XM9C066Hk&&|s zNgCg4*!<5ikKwq;uz9N}ae_N&wrHX`mAW{!C=|UOFnSS(rN`!z^l<2|ufd6B^56^B z&z20m8>zA3vj=H2q`OZ(_{iAJQ6;{d`IQ{ean`s(gS}FJVBMD@jE}RcT83|APoR;> zVL7*-_GL{pu&iOWS?8ax6eY)@cD4v!7h+I_9I(aad_|_N(3OiK&z>L2l z&RcyqE7PUkMHtNiF9#Si^+i)rBrk@{OUVY(5i_0Fl7EBMb>hKYza&fyjNu#_&y8sh0XzyP#{r9+XwEz?7$G@m@S3c*|EM&eJ8t~6piC^` zU=#Gj_G)#j&E9VnesPNQBU@Me!|V|0H8-IlcTTW1flV3y_-$Y7qF;54^b*e6(!g4_ z|I_aMPx?A~;8{i!ypK!zpc8!skHO`FvN_mFR7mVF)#@ND^s=fj4xqs#K@d+(Iy6)O zEaY2WLbyDDdbDWI#X8KV#ftYI+aewR>hLkqSL3iZni!-~?u*S0145ZdVxs?=UE%8H z7`G#0fz+Zxfm}ho-h3neP~@!Y_`s*s>ig?|g+`cf69zt*FzFBjQKP$GIJvu6-_uO(E#;=i*M$ zm0;2jsfdr)_%#4l{Jo9-{+Bd0mrj8rp^zU5C)ygVUG%$^c_QE}!aMLF+dhnlI!E@}BIDgFHaDrKn@rg|4GwB(k-#no&eYYCT- z9~DQK=pu+JB=JZK9sZtsTg=((qm36HAtN136liM1RIToZS^2OGY>e|D6nBx1OMtM- zm?mJ?TvlKG7(TUOBB#Lxbod=|K^DGU0t5(g|u}x?p@Y+o7h8*46}l;R+w@ zhXBy^B}d>6+7&?c%w*1PQviIuUYGHzK@u^b zTZbRnB?mnKKy;9W33A#)GD?Uc&rz$C_C_^KQGjlMhuNKbb^FrqH<)5<`ROC|X1Fgw zqsQ?MDneo`a?rwya5SrYCRl4U&zQn!Vs$*4(7%r9&8jf8(Ti*u3q7i=>LAch^bkGi zDA5I-(9WAd?tR<(IVJ`D%sEKFjaoyeJmK(S%q*Q7K?1R%SSg$Te1-t1E`ICMJt^vIz_S_X`bcpQUXbrJh`^$J?@$mdz2NhYiTDaSBst@-UqGCZ5oTuxikeM)fG3F)FTK=lf1e4u(lTnNLvi<Exyw16h40G<=<|c@4Bq1CBe_{)Nx@jt z+RREOr#2*bC5oR=_uG`PemVHcGI9i{UrMeYEhj!mrX64Yx)dMwiZ=Yx_UIWJfKZSI z56let(uP(#bK4aQG(GZw)T&F4QP&y?G)vB3epZf6mxUocXw$5Zr>VADV%f)HPUQb! zS{P8}skyz2UbIJg^~z($M{Il&kPki<@lSM0lcu4rB2~@|@x-VO^GB--1%6au_leIX zmRl6Q;`}_`v6G-bbM7UlOL<$>W+ueM!tRw>qFed+$CJR(C4^=b%8ZBImZJZ`D!~tp z;eY(P%jj+KWAU|dR8LYa-_JiZzt~P|e5do9Kd+&D6W)4RavlLUviOr?@ZjDzm0J## zp}@VD?tcN;V(i+bBUNQ~JsUDo4x$nr?{{J zDv17uLZF%kTNIua=&#Db$x@i;N-l0c+E%{K;HcU%rf2#su!i1fn&CXo7O}K6FbIe} ztCUcC$#3%ccNyxo17a+(aF`0j-T<6ODj%=zG%GAi(7 zQUdnC<8@;>jL*(vbQ#PTyG(xsCp#D;$qcPHPgAvzNjjC$D>`t2Yf~Wy%}Z34qUXuU znSNhi9UxRXWIEpR)xV$u6}HYmYRe+A#rUcfp&Gv^oDmVP( zXmd4I^=QI10ej3)`sT0K%yDcVv6i_l?*zqdszVBqX!e*`{a@5H?9LjIi5wxqm{pPs z@)TZ{8A8g(jhnEVgmoo9!THWjMDc%YR_05AZIk8lGDea@38a!@3|$HfK=n^KS>HbF zDiuuNo5PxW!eb=kEUrAZ(=}s|wOTh@9Aiz@n59Y?70fw2X0k(eydeqr{_e0#Il@+V z$#Fil9M1@=YMaV@fbBe#wWTr!76XLCoYsXATtOXHPG&2o@9Uw~C_Q3GB)vC*#Wz83 zpZx~LbX#j{5`C)xfGT(3pLRm0y+W=T*|6y6TZ(G%bPrK90O&|t*ZR^E;PDkhiP-xY zAjY>t7?|y1T&K0>%b!a*-vR@5tc;p`4kU%sFKQM-Mc}PDb6!rK_JmFFt)c{i`_B-b zbc7{qF_B1Oxb9IIb7(s0#JFD{{Tl&qUa)VTNGKEMl9Pn#-RN$ySGmcyi2J`)uGmAV zSXwgn{KQHyfQ2&G)l#H{ABef_`DG*Xjvr?Hr4b7lVo9)PDHn9!@Jol3hOjw0=kN&S zEN*&gNZzdVKWs&vall}%W}AJ}mc%()aQkB6&4Ok?RhOeA)v>8F>K*WzQxN8s=Ahr$ z;FUdu0Sps}YhSkDI4`iAAg5%=(=w=zqjD*&jsaFANPLRpNR?B(6q(o#J&;zbDw7c% z7XI7k0RT>j^;asMxo5rMYj*`a8-UtYrQ;x9Sl2>lcJxwM z?(<%8>gy$e2M-yDc;fx5YS6~7ZJ3%dfGWnfQyj*`eI(u(7q_Fb!vvI=T^MO!(&7Z1 zVU&MeK@^6L{*OIL+YFe;dr&;#0R-+@pO*oUJ^9Kwf0Z1rLoiCUhIq{^X{p#UQhU*} z5$6)}+q+$5J6)c|GCcY%(EER?4fE*E+Zr)UDTCl5V}~C!Hk;+U{ifC?Mt)m6(b9i> z7J*y6ZQTJI{BY{8IPIU-Jr!pTi0m)Mi}vZ?;%f$Mtyfpb+Eg$cKq&_FdW zSAn2>_x;yh`wS&snIzaKCjHZAc3nqeXHQ(>1F{Ql1#lt*G`$vf_Or?!wJE=Ooe2+5 zhBxW5z{W)N>pnsm@KDgpcTgsJ*AN9i6SJhxa~6b*S8>P+1-oonfh6G(Ec2t9x4?m% zo?%bdYX&`BC9_Wh5)hB9h|gr7!u;KHyWc4GHU1HCAi(Z*fhU`oUG*vU9np!+81&w$ zrzrYLO(o#;hA?Rid;qNI6N3%RlkTrMO-^uMp~WjHVe2=K;GB;9-t&6gr__6TjN!3` zcW{ZBFdH)>%FRXI_v-!+cG()&%V9DP5a>~TvhrMC-M>c)?v%2*i&dP>v^r-4Cr1*Y z*P>h(OVoePNL892L_>_`C__?{J}N@-M7H04dye+yQkCC!0%N(G8;m(yh!wy6>=*;8 zth-Io?-v{2T^`_w*7nZA5UprF)mQ~-`B=xn@O~+K-3gJtEV5Y=UCYioExNV8t1+*A z>cegMY`rej|AlFVi0fmf$;)E!(UTS58oWF5XDN=sZU9EamInLnJr2kK&d4OMqO-aZ z{~aGf;j~_uIzP(#D-QXJp+B5egsL+>9CM9e&8Nojs+C*pzb^br2{lBVe4KKPFIzJs zIiVBK0lGH9Aq1M)^Fb~>ppAfqQv1Sh}wFY~Zd+ulr-Nfv9Z?puXUht$%*!I>~ng>h>XBB9(Ps%#}}|sgg*q&?U8W5|f^4pT_xbn$NF_ z*w~_j@9mSn;h6-QD@;Zke0&nvV@rxsi9Z~VbhKsR9Y=j@g$p9oQC&WRZM_-Zm(x!s z_QhyYKe%pf$bk%-X}K&o*_E8ztx1sOd*>w?7+i6%(ta2_i*Md^$yCuXII++ z=li!6+(S)1AUlk!+9ul(*{sXtzfu#`#5x-0A*FR~dm42=SR7}51=09KFT#%%vqV;5 z;^?m((TSrSm>_3|RlRhVtPNi;Xv2KUVe zkaKLN&PX%(WH#Ua(Z-iBo37{qV-VBH&6+^=B%HuGnXA^{s=i0h|HAs5*CK?!ZRpHH zL{X+H?Z&>~NnnaG&R{wJdaO1<4P|I#J%E3x@yjO<3Io-RjX&YDUNwmMIy08a92dQu zmAni;h#xrHmc^-*@}ST3XbLheJv081b<|((W3Ao$4wVqzRBF;U`p80#hH_e1xZ_HR z?8Z!HNh$d*4Pvg)5yja>n4UOa3UZZ8n^0^5B9n`U_Ge90_2_Q|KGC@dj`u zZ2+zteDyPqM6E#@HSa2^DqO5q!jlAkwu|VutF++J7u<1@5ZF}V;Xm*Pt5U~PS!YkY z;hJCgSd3IYJ$F|+qBzd5$|U$W6CiOhfiHd-lF|aN9wu|)O`&$pyYMm-FWK|F46@Go zYAwxF@$PB%EN?stG$npXFz|y<+c~1&b!ijhegwTrv5w%PWZsOCj7ewEZ>lyWle%5< zmu%(eFQ%GIYb@`43_I9WA5*wndU z4Abio&Dlw>xxgk71PzNEL&Mrc#8jmNvO$Rlv!hRq4MaqM=7QzpixeIdK~5fEW3&$l z1Eh_cvy1%}m(0GfUo1nJVQtnxF2!u&IMjuuB}RV9iRBzZw_G#ASl-KZxHf$`7wV+T zD<+Dyg!A9UxMqee(Xn|DqOL+Qif>0JG#7~$(1@d_>HGIzWURyD!aI)4vcg$w&l~RU z7)Q(AA3br6I#o$~IhCXf+59&H!G8C?^V^jW>=tdM)qU~rFABdWQ6aVl6cM&#%43;j ze^5@}w(Gg-M5+jl8AKFQ${F6#MH?fDw8pZvYH0^&<@m&U1}=x|78$?(wdK(O%wSV7 zkN42Hm=KvB5FTaObcVRx#Iigu3Lx;?{I$BU(qQXGe>o|EUK8p0sgpQ+4BIP&cesPc zD#AeB`(R}OW0g`SrC3#|h2Ilb1Q8HDo zMUws8W1a$%)nR0-`f8NTlX{v8(=}F%<6Jhtf^$6+&2`3d0)fjI#=~^1Wtz%nyI`(S z_5#lVGl~%erqA`ALN{$L#CqxudD?zDHv^?L%uHzg;ld&S*LUHdeTmW-tAe{rRe_>G z;4BEcPaREDt1)_$L5F;~e$=(OEH+)|96zjF(fr`~P)lBGBcc z@s7Fu6Q88(+{RbF2DbQ$#X(;BSKosTw?P>`Z`ww^<^&eo{O&@z5VWLOw7f_&B~c+C zXy07){UZxRfc-}}mYD9#0OQ!XD9vI+Oww2UMOb zBaR znckHU0%fPQ&>X1RNj|9!ou}UR#!~xDRE2UGeF6M9FFSZYDp0M={3SrQ5)pX!d^ zTv&Wr$B-yga=#fkt$DkT#s4ssb?$OYpCfI{Pmok5t3AEfL=}pW7=XGmV-vZ3=YuzN zEgK56Y<;Dch&LYjyAir7k4tSuv}6SRTh6GP6ixWkpVH#h6^7D%@k315qufs)UpxWt zUQNW6`Yu9f=2f)VLGc52sGjNmr98v!K7GNj&PkKU>&@T1(ED63SoD;*tRNGHp!E%K zy!C722PvhXL!A8ocrjsBZVeA$x%k==5G3eQhVH6JU<@xZtY{#Khp8RcFMlk3z%z4j z6W(<0xW-7s+9Qc^_Xk7`7Zgt`XG_Ue0`y z%;LwwaXXGOj(cD@WJH`=QeKjOkSsQs|B>fYqhNsRjkvFJbhT>4H31rAKSvUO_5Mq^g7r*swpanH#P5`;kiz%@`$q`YwrYemC=26*CBc>{;W(gbu)O(9RZSAKbaQpR{Bls%7vt1Yx}}YUQ`b<( z^U-V1Mdc!GGj6cF?z3zX#&n63l-^vDbR)$6!KTic+e+h3b3^Bnfr*$b=U(wiNE#s9gob&aJZiYNOzJ{G#<*e@kGfEIR9f$yf z#yv`_5+Y#mh!p_Xi0P2p=Ua<^RcW^MwHcsPx!doTj;{|B8&EhhHZ<-fbY_-}y%(!~ z4#c#a2thy>-#GrA5XG(hht=1ptGa9cVMl~Hh`J~y)%CLHg!L_6xMAi)jj$spUh5ij z6y#VpAo*QDFEeS+#M8-GQtjd6WtZn_P-a6;k7?x<==9chgT5!l#~Fp;$>M@;B2jCFyHLH+QubyXqEo zHT>Qn&hmKkE(G{7(tQHk7>KU$w#H6`u%^{lc1G)d;xS_8%W7o25TDopz)0X-Cg=$1 zut_%5ZB#p^3`o1qcBZuUYArich^?kk(M;)|y(_E%?K zyZq2xerp9Eoc>EZ-R<@6aIpkkJQ~2DU*~l7O6_{{%;(18Vd*SF4z?6^mJXX7N3v(x8j901(?H{{h^Igx%^dWP3zD`nPs+S5hKVGHgG82w%`gaI-IM+|A^^67Nqb9@((+8{jojD@Sx+i`ijU#;9FWxb?BYWQXYKz-xRVumchD_+p9|8 z-alMoq;l|gpSvxng*kw|a&F`90Z7`1SsLjv9nkE-@Nj)0P+iWyHz*%=%YA2(C*xuj zW<%k1VL%tZwa**eg;P(9@zNm!;3_E;j7Z9n!S1NbK)?9XTyf%kv75+S*(Lf#N(Cr-n$WK40fBvPNwzha z`% zRy_4ZcuRCfg}>*-{rLau9ri@hn`7L2BAou4iik+=n+>l8p){uYMdqPcIdOEryVPe6 zzts%B_eWr=Qv!3}j~y7){xb8)tEWw4PEK}OC>6th=JoUU1*uBOtCnbj;oKxp{|*4q z(mR)1rHK}OO1I6jzv@xCp}qkBSV?bt(pqF8B})!G8N_Z3t$-n-TMNw ziXfTuV>7tL_DvY<0da+U@_!_qg+tT-*TuInx_dN8Ne_^2P>=>uI!1SQ4^R;421!Li zx;r*Sxe?@C3?2A2IeQ$8K-pZp}~z4C%>z8~JNAqIng!-1O)-@dZaty2Oq%kW9Qpis--@ zK8J-m7S`DxbOuQ0?C;BlAgVk>YJA>1Wh!ufG|6oCVBqeV-QALf9am88Sm47A-z&=+x+%U!dQ#Z17aAeSid1(72S19U6T8649$Pm^|JP#JG=qLY5l7y5=s z|91M}f{^#y(xpWxIFPXXQ{}6G)-BXOjzq7tGtuVfZMD!ySK}{feUnkOmVDOHvlMp~ z#j+(~jj1+Oi$SK29$w=CZdjmjCiz5WmDo@NbXvf$oZ!s*fOu{U*!@p0A6bZb7>jSx*NVO>OtRcUgOc$StS$ub(LFVD%aPtnA$ z+ySXPqv9a9I4=PvF38FYR^=kX(xUPLr|w^^2$(Crrt6l=$-Ewj6@buVWX@E3_zt-C zF(PFd=;s$8MsFP2oEaZIvyNivY-G%V#Eiv7YH-RgEY%OxmgNUv5mXL$6xjCHh1s(C+i`S5yY?;>7DU?zKbUh?DM zrskU|-@H`=`UamGI*BTpzp86YEs1aLM;)bsn@hKE6q?#B+`*{$*=*ig>AF$-rG~7$ z=$kdWNg0NCaF{icQ3LN=5h~y?plLZ34;0FxW*6z1mY8Be&(09?$QR=`Z(roYq1PPu z1>`W}CyxTm_wo~{65E^W_kpso8mEWqmV*M@b+!1c^1@?5mWO8bm@lzR_b zWbA00L<-|IkEI3`lFJ&Lk9OW?^~@4$#W!&sw=^SY=LB}bN8oo+vTV@Z@^IB%KI~J= ze9#%z{Xg;LTku?gGBDI^anN#4VU|CmzQ-;mSP_@FGOZn>aRX5EY&`1LDHna8NZ)B* z%E4txR=%iE9XX!^xEivcOZLdfPfUzNKAx?py(dgJd=?_~l+!+xjg zDDIdNc6ivfH^XuL4A~|{;pu07@f)-0A*icSh~(I;ZRQg}Fz>ZWH4vgku73=OE@_-v zY5W!nt_PN`iI9>^WwY>CO8CzmvjSGxgRkNn-8sm4++Pj8(zFGeX&3tP$Z(o^&#UC8p6p4`0_`XaIz_h}vi^lni!K>H!@iU_u3p3F?-JAox|LKAJtMp_-!E)8+iShRrFet?PIfas7c$ z>FH3BG=dt?9d3^3wv;kFxm&rj$6t;d2nfpe7;9uZ3A<_KS9JSRucfeql!NLyrtq_^ z#PmRFbmL}r@_&*%d!CKu%^6oQW}YjVHM;RGFZ1p@S>6H%RcCH6g*@My1H)xVrRMMy zZ+Zi)PHTBROzD~va8d(&A@)UvRuqGc^aA^xyaW+!8Do8nW&sj@e|)l57{Td|8?x0nkL z@qo+FS2npccXzvCbuSX%W9<3So{8>N1IBViUz_H9{rC9sGa{WJ>=FoG_v_qO0vd$U zyFr`QD_l!g;y^2a_rTY^KGgQvD?8#mx;|B<1k$}C!jlA5?@l`U$nh_BIPfVB3uq6{OQzX#XW!x$ zjT=^UG2&*!|JdulF^#K0ht}Lf_9A0y)EC}aMc3$Zg(nZ;%URW}b_CWc*2Lf$RWq{7 ze*IM7TF~H-fxcn-EH1Y3Udz;y_hX-EsVZ$2Pp=*Fgl+2kuavjR`bE*L`4A;{;{6NW zn2f^)f$oE5_F9XKPW}}%yG3(jE`~jWh*jxa5|-j`!Yr9d$2IcfCXOe)d+Faku473v zUyJSd+RTl825jyhrth!lJJtdrcs?~fapEaYUKCcowx8Txuduf(B6~{Vb)pF{^ul0_ z#a5*MsB(z9LB9T6HnVh0tFr9M-?6~7iP*DIY`iB)d-VO20Ab5D*>+P>H{V>g`Ritj z^#9bB2Yu+u@A79u_dbdU{4;X>t_wBNbwJM=W~?coI{Td}+~-;TSTPO(A39!d4w?;L z<_`ca@*4fQD(|v|BAn7wKZv0TAzh-oo-v>?cpZ28^Y`0LYZZ9rBQDE{2;ET7`|&%D zK^mVMtM6lwYENcU$2eFTHCuT0dQTL+`TGRG0*X1O#oFnJu6z(B2-wx`ymnG2>sYDlvV-pHT06-j}vA44@P4tw+B@H|`TMW}bj|W{!2Yv16$dx$~ zp5sld9s##yyNO>bHH-GbI|+XflB3gWdpw(E?jgbniCRlJAHK9Nx}<)~3vEpiKJr^A zRgYz8qU!eBkgQ*%*ix*icJI=D%A6R-cy|0|Bc;G|lMSV!WoAihGA`q}Q8tDBcz$b^e4TqV#yoS4o_ zcZb^EbyE+yur2sM?;&7oc<^(7#OjeJuxZsD*s)DGnhX&wf%5=%jSkX`Jwd-qs3``?zST*B7Os~hmOgrsEiCdnUuI!-v$b9-g$fidv_{)<-g1wANl zbj#)8`Zc3pgz(s~tc|n1SaYVY0lQyolX&J-Mo^(gAxglG9NC)CCY3b-H6%-lJJ+MR47by=$lrEp^3S?ZfR2NdnL+L zhQ961l>H7>jA!>Nthcde;@^dkTIP-EP?mr4eLV7^-%4gY0X4#CM4655+aAw~oYBKP z&qHFVGVyK*#9D42f4?hVtQ*$6wBsJR#06NjhK2CtnpG+S>H^*{6)g};nlb=-1JDwV z^aEQSPlo7vd(I7q^yV%+a?*0@foJE8XKKxW=X5;-3R2bpB$(;Xq2l3HX>BsvH`A(jo#Qe^WHeUZ+h`ZvuU%EC-erDOFkqoIiaytc^W;mZ{UmkaN9Qj3Rl4WzLPa* z8KJDf#uGN%7>Bz(nw@1{pVDA3&>3|`8M0^_yT?2)`{XVOSsp^mymmj$iy^%qdn#zm zdED;igg)9oYxoc5Q8B~bi~@}%#dSlDPV3T?rrI0-J5~66c7K(H-iN4@&23h$loNXm zl-D4VYpR+b37}bs0>m<&N$QMK2=!5y`%^ofUP6CQNt2LH=`&by*`2%A&*}#+L-lp& z1G;;CIxZ{_(qe+}R3nQEMXK$#f8B&)FlZpD(KppqTznhO7H?GNx&_evq%UwGbbTtY=k@l<U+W3E8_0*)!37@Rt{cNF+1OcrhCtEK#;78 zut>2q3A&SSa^dnM{`LhZ?W=rn=;y!F!6Vg2Y8p8B&5%YDu)S7_dd~wDS4>#a!C28>;5*MmVuTKFfgUU zvQt>3x*H{ZST7^hnLA`Yw^>6Vy$4)<`;~=r%1<2@>+yH=3d-=XS8U6<4PFH*pOU11 zYi!K-yxvP=rS-|n87j8N7!+r(NjC$*O$GzNq%B5jJL78F30I6_c4(MMVpn&1U2KVX zM1n(kc!5o>p_G7Dc@s0VFG^D{oSAmeh-*H5!WLMDk>M(#u z`lR}E=T}4S0+W2_QQKOyTq@*fvV9?>M3NTWeK)eTq!DH=N*I`M^Ck5i2FHV`GV+z+ z+XL^-vfHd{S*+{w5DU?4aqjOPAK&2bubu25hSaer-)BGF8U zf9sZM@3T2`p5?+lw0Y?-VhpTb6hvI~+~0&tPRKlX@>riosR93n_TXb7Wq?a0p)db9UsjSYgVxr6sMH%;2(IP?7yai%%WTz zJ0Gvr__vbF{;(TSJMUf- z{5!8XfWnDg>zk+D)5=oCwqTtr5YK|!TuqJx-=iP3O{lyPXd80i%Ol1cxhq}(j&;GA zXjo(2pFpuDi!zD1^GxssZ(HlBZ5Z?xAREBzZdqfitw}}lcabfln1G!>qM1~O6DZ;m z^2Ek?9eyPBc#={e0>23w&V~LssEhEIS`~^~0~Q_5`!KdXIMMw2&Y_DUvILX?|9nNpvdUfCn`+as_DgpS zG#&>k)U=KkEcn~Hm$g?BD19Y!N|=MH=rNJ}4St!QCbpv%kbM@Y#o_p%8*;xbe1xHF z*)nBijEQ2LMJNn6^52VG5fT0yqX%Ri%v!qswAk8zrDySuO)5hmn?GnAyi}Jc*rczXSLSFUfPA`&Y5B@H*dLc0Y=wrG=F5x%&hr(BCSF zUHy0N$3cZu$mcM@q2{Q(fXjir>VH|gN)D(kP_#5py|I^_<@Pfhs9MAF_f>&=qJYHUxx@ENuJL59@ zm?uV#=Q7(vZswZd^Tc%?FaNLpkh)O?`aX&M*zRBT&m?cS*!BVkJ;Rf50O{T6w7n_*mT zF3~K}0p}PnxA`H1ym~2kJs^+Ltozt?@)ZV`=oCwWk5jwYI6f;Fn#aF{yj^i*>qpS@`LIO^ zN+_lD(m(f+;J<6_Bj}zHJ<(Yw ztl8OugJ^m>qI=`hOq)Ipkz_99m{7Ls@3KG1M1NN-0A5KtHY9hnbU)C(b?ggxcVu-u z6enIjpGm!C^{3Jsi<+Ikn^KJHO-1k53siVuv5f-PS(|^3#L2 zP~}Ta%PzACoOOu@ic+J`h>S_W7?5Z$z*EZ`HU~p=lbg8jpFy1N>c2h9yJ^DK{PH-$ ztWe z30X=BU%WO};KT~XNb#M_to_BjQSh`nW=MM7{V>8Zusjs8!tB3tbhG*&jzgqblPb}# zTlT2szjLzE-}a{Iwjfq%!~H*5`~*aC*>%0yQ=Em9b~OD2%E(+gn0-y~OJj1NywjMZ z11@zJ%URCls@fWrTygYN_g_Fkm><904ne!7&JzhK^Na_7j%4jQTx|@arya{G+_`Z3 zRapP?S?Xsyw6{9>M|(M*e$Hkbqi8j5f>|Hg zEoLhWJsK@#$g*>@r%jnDA#p~JNg`wH>iWJ3w_zGg@c!=KTNxCbp(w(c8Gr&AYZShRilBD;t!-(8}f;#|_I0)g|N{l1w?8{__dWxuifc5X)`4udsLD*5Z0YzqRxC z&1T+ehWlOg_Bv?TB1mS$)^zi;_Bv&ie4-M^OxKJs+v7=~5BIgFcrH|Xd^$jFle+lh0E31gFk`Q)+a!h>Rpf38*C0I&K0ny(BIJa?RB#a1AH2o zZWIf)^8ppAAMCk0r=|?*(nL&DswU=!_&8Y;(BZjahHEv!KrC){c?>#PSTh=U$s7Mn zQ=7RNoz4`)C%Bsy6Etr+EB(z*`*~n0OBMS|hAr6H5|Lk3$Wj8D2atZfI8iua!LO7x z2!gf$htcjAu^i7bwR3gqTqw2Omd+L^bI=N0Sih!^ztQNKaLB1vtrQ@2EP7xCR6|$r zjuijd7@kIts9AqTweN{)vHNit%bz3L&puR%OBb}aOi3fp_wCldh7m%gn@w+4MC7X4 zzvb~D6nm@rrHP1QosuBq0lIABhlOv1ap8Y@E``!WFir?e+HW7xFLNWRA`%E2T7D2> zAA9%ydzYB1W>!)_I-8-Moc$k~Z=ACRwt1`q8bQRX zFKJ@2j%BRPUa!%6L&@CsxLItNe)GWi_jm8Ure zISD&c9ou$E$rg6|a+;!owhnm0V1RKR_zFWemLF-*7DgZ14|_F(H@)XRqmHE;0kda*9h(EV90CFZO2+XyNkK=8pW@>;C0?bW_5oF z1z=%pL>#`|)i!I5Gv52g_VdXybZmaxS#0mqbiEI!S>>{R#KB_Z@WtY66dC|#tI<3l z*WB-v_zDL&5&?k+yfJi_1%Na|c+mSz;?eSl>zzWCOw3xbP-%YpH%MmITqNvJi&BA> z;GX4Mh*_w%gpw>QN}OS>LJW>5Y#NypS&`@;!EbUwUuoB2e>9M=T7V^CDsE41q`RB; zB%J{mF&~0{W$(ZOi(R!90~{`VkwNhS6W8Jt{@Fq(r%%HmiOXs9aHmFdZE_z=tRWKi zZ_t~ODCnsG<{YS)NEU0~5ccZg=eqJ8MqvgaC^pSS&DmK3X2tPvCUY_~7y6X#xe5BKQRK{USd=vBIM z5jXktD~#>kbOxMT^_A59*g=QSp!2w}>NBAJ-R-IIOV+9PuK*(9xk25Ryu@ux16Ya8 ze-ZXphd#Px+~1~};@1$+QOD6nb4|=3$g+1`v^zb=P-%r>nu7=|8^{pjh7!8NK=Yf)|WiQ(^>W0<)_N{a}j4iMtLJm> z(fq>k)srootgFd8w#@~S>kp_7?;7|;8EXV3o|z=di)um)&0~>;c#Q5TrBz^}yd%@L zCJ|TYWK-XSgN5tVu=@2Ir|^rPTI`$OAi}SG({4ZMJgA$I!mTZZf-M(9dpeR8ynpw7 z=gJ@XlCDLXzu2@)`(BOFX8iL&ux;?1%!AndixWSAl5OmodulE{nf}TcFlAw(T*_BfEmR?cPv` zVBS`f=@nW&G=?8uch>s9ByYAu-4?4cryouhSvkr?8WVQt zx>N2NP`cf;eZGL5+sMjMYnQjRF8#Zs|Iy86Hn}r?DiFmZ_#o}4X7#(NVZ@FNAEf3r zwOrrYWAU)wQK$XEZx8!?ZfX?^kQL0bhj(ECe2_m}%_V12CLFoYL=`Z)@<@J;cb>ij zYmiq6r*ng%z=0CD6h21oaVLGyCYhzo$+^ays4sY$){J@_U7Pp_eEyGFGYh;DO6FWL z%kb*T8H8%dsnl4}UDa>TzRDb&a$n<%x<6n&^nMnY(=@JS#0B9r%@P;Ka~c7T)7S$q z-WtzgcejQ9&X3fsXA(ej);tomDjFEn;o@tPQ~%!E{F&y&BbJ>O3<(OruJPJC@V74@ z#%%{{A+MCT7gRH6nh0!_=VMsIYxJ1R5WtHR@rpuBE+VH!%D6sG_<%8dbFFNYNvJ;*JV=%~;;<`EYTY!JNT!ohipm{2^=77txi@7Vy8_z5wqIrh z_*cAVu|y@!1?cnmhVF`ncLhNWZt7Zllz7Y867R6!)tEkfSDu2b<*6QHr&3OYLX?2+ zW5Rh1f$>}EJY4Mq^iBC=YH1?<-rT=o7a>?U9x|jCW8)bY;)C*kBz6gf@-qd=V>b5u z)Tu$QO$>IU%bGl`BtC9ZubH_og$T^E_SL$Id@t&$?r{#(Qx0j!!6aq5D`WYdADq8< z!>~3_Auv8~B#)X7${A?e|29FGvxoV9DK2K+P1{2K_r{#cF2W0A>g~h%Q*)*I+E<=7 z&7OE#h#LhlmZ6GV`n9McN!kYa+34E~S%v~DjB%x<0(&Rte>~BJC?$-(-)YBAd>);>sqP+a{n{ugE<$XS~ z6g+>P4jD}D9!mDQo?7;A)DA*k1p0j6Tk4ZCKBqKAyjd!&7dCXCEp#u(nigC{NoIEBI1Vt;VqtzN9T>q=vSzSE!CERj*rNA--&_I1 zRHVqbB)a^-eQC5bsgj?L$k5Mt`=Oi%M z%-c(HfCiuvqK7v;C?r1tW(o5@%IbI#Iv5dBK8d5N6dk#Iz-w{?f6mZV!=k>;+>STcY)ZEjS6l_1OMD$ z&zp)F;8u$K;Jpu$x|K(6zHw@nT#LN<=+=A$J19hOTh~!V%=bQf;$pGI55JEl89O;<7$(VALR(IIT* zEMCYNzfnGy3Haf@NYPo$&B$JXBuGt~anbm^0Y&*|^tPfd?{^@PX=z#FOMdAl{#^#c)9*MTVLH|@TKOtq4V2I%I#&L1MB%v^*>&Cz;JdP zoI=G@H9;D*c=7^?7pJS^@}RAWFZ|rEDNY%Y7m;M56w!e2P$~U5nD0016k&%p_ze%E z+YGI*+R{I&6zqi;%)(H1y?AF3(RFnwCHyYKlNk*sYTg!vsuMwJ!cLY=4pM{{w*$ci9;1~K}bBQ$kQDS`Zys#G$(;AlE%M=^@tANHq|~ zv`w;BGA!gCILsx)+AWoW&)7<5ii^cdiaIUx>E~;KTW#SjfB>4QH4`JcWvXB@cuQ%9 zDpY@q5Z(-%`Z4yyCow3hL$F-_t5<19LU2Voem9yhe-rAk#K=1bmc{e8Z$QJ|d7Cor zxM&bW@RyS9aUeuE+HLm_DbDhjI=p|x%{a00CK#N2*dM(lf<{)(4X_HD1sc;-3gaDXD?ud3SpDM$KqzLx*45oZ^yVdfWf9<7_c!M5^Sxq|8spkxys;0mp?lVzD3T z{`KF5(R%TqHQhG8Ao8VUrj*(RfKb&2M6KjR*N=?K+v%{11sI54uUze)Z^DP&x3aJ_ z3!CgdI3lL?Z0+Msl$6K#YSyEr7IXWB?&XJPqnTC!&Jt%{k=IOxBm44bN~AE%ZPIuX zi?B%U#h;1|&A;hP#SzU72Q&-iRxjeI7@>9ER%;qm&~ZfHj2zEDEDW=MGm^HRdS8lP zAYk0Rq0%jGq09BP2`(x1c#cG99rzWM!8=wZ>)9UT&T2R_)9l%?n<1r7yL?r5dkj@E z>(`~0H)?tR8W$!0w>(_#Qk+jq>e2h~FD({vC4Bd_oDTS|a$h@RTZ7fH=Bs`qn|Ath z!nGbqYWWlKmRC#yYMH9o-GrYDbauXgIT1>9UG96{4J@Ua5% z{Djt^Di%l^e@75so#B(GrJHzwQMpNtH0ymW0P`{HUd*!`w9ZL+`&GnV0Zd$JT7CH{ zBFZFn1Q$8ON@bDXN!zgg$t3#&k_*ktQq~{@L7^yR2(1So!WY5C6cGJ+wMp3UXg`V1 zq2zQBm&0GoP9|p_#^d{;IC!e(xEU5BC=uO}oFwHWWHyb=!>jZMdqr%=34(0b0>EfPVfY*Bh9}7&zND zN6!fPtfrImqunVz1PMF+%5WXKvL$=*qh1%3B&zoZiDyT#v9X$D zdAV;0f^w|vlSVgU>$g>tWe6l_3m(7G+wh6`*`LydaNH)n`&&Y)v7$|cocPca-J05_T> zQM}x_3bd|^-xow^I^k07h)>zj&D&DSt$aTdwQ-L$z8Y@D4ZI{z#mCd-zm(IW!uzXg z!`YK9T2&Ftk9)HLgK;eXyqBvC>m98$p`_(nA{>jGP+ff6r!OPc<2d$$5^#O0-~+9D z)*|ovPLb;3OZF6sVteO#{>#M^aFo~{h6m2+K9WKIXi63HICFV^jlf_V&u95U*irI} z6PlK^8X-Oyc=z={cftkbi!`~L?&gTOhS}aQ2Nuk4uZ3UvqI5Lrs^GQ{w|&6Sg!#3& zO3C7-IFq5G!OmZ&|qK{4)deg>le~v@&588i7;RK=8xT? z{;$CmG^riU3#r-Cs22J>#G}MvYnpH9*jqxjfA2o>caVl^ zu^CzJMZ=5S>)d(6ibQoAhQzRBDhGs_sjL_EgJBuWy;RqGOCj<7 zcSOc2Eepb%^XdlWqPLALTL%~_qUwZB?S6KYhEnz2X`TjaY>uK_@9j&b|Ck-cnn=A( z64UIyy&b+CLVYhzo@m4kN&#M<7x+wG)v(_UmUjNrpaJSg^q2KZJG`EcPY?TBKOWR> zZnA)?R;%+@xtjeIfMd#d2U(+U!51qUGk=CUO{U`?g543C!oI zxrA0gR{UO#wHQQYAIqTfs*s?t$8qlBb8M9f@u^ONw_DjwLe3rzVrK`cYiRR#vP{i+hWSUvR@p;qz<531L{-m6HWCJ~pzp=;jxaz4`C1wci*|k#zc0G2 z6YvfZWEug?#S$!O6l*!GBMl$z4JwW;|0|CHsN5G1ZSuqscKcB0of_rRpzG$FMLlU- zyS70dc(paKmAk06tH7j8=p9rDet~!cZ%j0a3_4U>LX*X*q39Zx-!fe&ELXBVtDCBp zxZep_`w9{yMj~zp<7%<0Wxc>)rNl=WgVU+(piEO$BpJMFpbX56`sb=%g*1t z<4sdUDyh%29k<85nN3;^O7cup&q<`ox64O?soB`Q{S#RP!;H1|L)$Hd_rP_-*;8>+u-D=u-2)13 z*q|Pi3=uZ#gzAz~lY{xUwAb!imoU1ac+LWUrYg%r?gR3$C2c}yG%&za$o`rXY(VVF zWWHN8@J3C>qdJ1?t*Rb$%Nv0B__;QP6Zo&m;jNZvvGh-l$cS_bWYu!$LT~Tb^@#`X z{O27%$;*M_Q4F6xY6LAi~^V>5q zX*$ge5V_<(jJNnzHLdsx@JvD;@6A|gJvxA#JC+>6Y|y(Xf;iF+gYhuE11%%JpxGA7&a#n38l zh8lgHY^HCG67wQ9SC6Bd{YA<+Xt5yG-i`LANsLA^exE)A^j7qQoP2f?1BUC7L^&f~AGXym+WODKZ0e;2EQ&}h z4OR9VH^Ql zeOUn-#O7S`j+PE2WGk_9z9dF#A`kn6?vI}wW(m?;#aBNq#3F!8o*$)7oEN=6i}U+r z$~{mmvpXwx;t;YH@ormak=-E7FxSjVxLX(g~V2wY`EWJkX!@8U!X#yYzmMh8x z@MK~#k*ZPzwa#s8(C^bVv>xekZV&Sw%}!yEv8E>mU%jHOrU0DtS@+Q6PW86eQeXn! zfZR5;86W`Ku!EUv$Ir{a@!Lnr5J38%RhbM1g^r(Dy%~QxP#coTK<9a!)g!pq8%Cb}w?MMD1DGUq zCv0w3V+OSekiDs);?6gcUrvmqt+Ql|`LU7X&I@?ayjLuf2ZP;G!M|j1cZ_eZiiCeq z=dP6w<_WLFS&J-)Wk?8jZgQ!PZJjWTjUL`Ao7lrttj}@85aHPwg6hu~ITFb)M`et# z&pHuV=rhm8M{rN-MkLn8^D@1`{jB>gcO$L+ZpYbN1!PU_#ekXIX3mYJfMVLGsK9$fM*?bZJWfcvK3T+ zoph;(dMJm&>6spp(&y{*TY~n!K*pK5#R^@Q3kCQ}QTVf)dk+f68AppBwA-ffl+I2p zhj^Dxl$M@{lFqxvg(Negy$<5ah_fx=w)dY1ex)WcQQmEA?lAB8K#4(xc5bolk>Kj> z;-u!$mFK$L_0lCO4=KBGDtGH$7IpFW#h-utAkj}BL_{qJ!l(7KDOb3bEQ61W>ioBx z1=W{GL(vMj^FCY?L`u!H!pOK#iQA1A@FqXPVI8)Cfk!6vIGWKpgvv~l= zq4#4U_D+hzEzXe8jpFgKsxc5;4)I8p-a5`ipputZ%31I)GX|_dj;fU^D zU~9lH;~2vp(8d%YS2?TXn%YZ%0o=AGgGuh-iY{SSRP6JwKG)+! zB^-O7qPGd1S+vfc&{)l6s)DcGW$QT;{w~m{qGlAjp~03Ot)kV!3azl`%XLar#)o@($KX3UAtm zGlejENjHl3zvcxqq;2e9o1aMf;X3qMPOW~+`vOu1piYb($AWzNoCHwF_SPLcQG*>a1P-5`J4~dJnRf5|L~dI)9NPU3G2wq8ExEQsgJ69ZT!^cX%d)jjYn^S2>X#0wAvi8p zt~(~~=n?dgfAwh&pr%v+>H9r<)FJ&)73dDVnzt$&SMn1$di9HH=#BrUZI>GsPH^@* ze#o_B;>cH?u17EPXlEaNa#Hl5=26%g{O$*|eq(3B(R?L2R}p2nVjl)q>YLRe zb>UYQ0-D?)#1u*IM@dN0{}%UV^D&I>fUzBA z-7l1-pl!nza!|FqKRC`nsS!RHxDeS zcH8His^T`GDy&Eu4(O+$+%Qa`lT3UN=K;bIg8$GIrZ7jj|Gj1JJ4)=qyKCDg1PB*Z z%qvjr1cU;>Hj%t3T$gI1#@hq(4}9IEUWXxz?FshNUSt0qjZJ1s49L2pZca$yof-P& zWD>JWd#oJ%ofc6ut-bzDWkDwOFiOw|n7-^Jj_UYD**glCJTRR|bgXiewdE@etZ-GV z>)OLPEI_kBBp1XR@N-TftIgQqs?iOb5fb=<7I62{rcOi!#A4f6Ty1$=FSH_}fy&`-u9CEtLs0jO9^UruHH&5aCl ztN5czbpXX9&m+adD9|3t5n{IU&lqLiEMu(#rwdT6&Gzt|{yEX3n$Ib65TXWjVZ|53?u=KU=_ zGonGXy}Z$>@l`(dsF;p98W~uqY^><}`FYG|60f(jn$bhG+XW?f`V-9Bv2-JCv-lcl ze+_m;-NgU+I>CT)iJ4lF^wB`D%>j{(^c4-QPRXvD&G*0tWLsCS;o=MABw^hI-WZZa z+quV$EPu7lFr!K3(ZuS@zq8gTy9dF%U*pVY%AG9lyO{kj)=X;3zdIzBS6fJ*83bQ= zN|F%@qmA&G;{&*p-EwYd)K8_tB?3oQuzs{ZCT4jV2BL*u7%YAm)E~Uuj~95!Y%~CX zxr{tX0GkcN5vAB27CdG$ksq>Y#Jh>0H$J_j!YEgyB%q`g#z~+-Uv_|M>8xazq%U;{ zc~Wsp5}2r%{XYQdKo-9`a$B+Xw=W7Hi(}*;4`e~Bs5qslgY@0YjgNhdu1UOa-!|3= zl+M%%AQ0SHt=-&%yK1w^VE|nFezao&h2tY@wKh5F$QG7kMHbDT7Qu047#Qi=+O4Eks9e zD@Il_vU49|z3e@k;XeGwKfCUapVsg9Fh0lHM>>{b#frU(74Y|p>=S^$#jeuc%OxtY zxMHW+`<{w?T-LiO>P}9))(Km;J-Y(7y{_SMHcI$S3;=A&4v7KE=gv%&-bHZIgXP+_ zFUv~r+DBy!1~5zsly<%R?h(fyC7uC3AT)(Nf!Wv@Q}dKW_ZZkzOiEk>bI*AvzQ#r0)KG`Iw4MUcLwqFLHe+<6aHx(uky#?khC zn+F2l1JLsl5TCv?z|Z?&biA|!*p}y96Cuck1jr7;fO9FSL1l6`#uzp^>aI(`=5}c4 zHNfC>d@(@)tS>116aub zNjGG&HBXcUjs`9>-~i0rIf39A=Oi$6mjij|wAI;wU@*~9n;1;!R@#9icQ=rvKk@wL z=M{jG#Ks^;4dMpCZqz{r>$%;W>706>Ko`~t#`S|#X+G{l$nTu@ZN>2{c7SPqNB@k5 zzc!=1vLn!n07%W!9`JWo8%q>(8Q|(HF-kz< znfYNTv(f1HyPn`$)$U+*ZQlTdXGf6Uplf-@|J;7D#z_WCiCcJ}34uJpB{n zBVLRNm2f<31uKMBb6uf1k=cpc)5;bA>|A_eL(aGnCnaF8EgLdob=7hhSk%dl*4!<~ z07h+LHx>xBK|v{LfUy8_$4W_)fjo8Xw_AeGkfBaY*?pUHlvWA?vySl*Ag~PAkV)E99VMjQ<+J1jd%g=>6@RYybG6GT-mU-r`|XtXQ!RZ69)B`(EeD z!!E|vUApp!x_W!>m#DUp*!2$XD~S`K zX7ChX1Qg}uo>!UZ71^<1l6GW0yR)%^`;n(o-C*TXs#!ow$X2(IB88Oky-Gx%9f)?0 ztXxV`e?iUU8kHskn*vIL~m0ib{#ziATN*@aIs&y>mZ^I8HvJ^cs(umo?tF?pA& zWILnW^PD~w7{35m!J;KdEcfN|QRUlFa~EK(GItv$qygx~Ew#K~(FdBEwDU%M6iWMV zI{JucqYEA7q)~Ub;#{wC&oBVB>s3^4)%%xH&!`W)X;Wfhnz2m@gi0vVkI7tpBruAR zXhsnE*#|^lD^`=%)X&24^I1s{F^a9KnhKe@=F7OwAUoIlkTId>sROv<2J}P46fJ?_ ztqMeB_;y-C1o%cu7*a?Ao6_H8Cp7Ug`JVB+ueKU_nu15)73%{_vZOR~tNvhrI>Pz7 zxTPq=vM>~-RR%ZCSwm@PH!SV4+gaZQ0QU_60Bz(U9cl%ED*>GjV*=|H>TZ=$T;WFg zVf8~t8tMtR0D*C!-!mY0Z_{8P&s{6vvu~`Ha5u8=IS7n)0p3C~_fYWGq_8_kLSt~> zTV3FT&f&g}#=8r3c0KFr;<_;dBT6R&7*5%BJ{!mHY#E=gu5i4Rimu2K_6wE9rc45| z`%o_i2?J4*Ii7RhXW3rF0K}tCFzV&bAk{7H0IbFMYn#jqKcRhssb2|%cYpt>fcG(z z3_)Pcj_Mi3W4Cn#bWz_IV05;Ee%30mrDZPY{{G_-nSwX8cXodiD^~0}?ZYol-@{ya z+(o$hOIIFKS8wn65|y}GvD`lVbQ75i2pGy5t|kyDput*$ZQZU!@=Tr=K_M~(Dz91j z?TA{v-fHPqsw>UZwbfOPY~St><+2R)WsS?(B*{Lj++CMyTOPW6^|{=j zfvQsjEtJ6-7)S+cPJz{MUZ6Kh7xu9`7sHQ{X{|EbRSIwh19-vqVO?X3Az&BVAkLU> zmU;Aa%R@lvZ{LTv_*tcaW{hEg!eFd}DOs6}I<6hT;FZ>ZWNl$y)J(27GL_B%yzc7% z;J2|yBQQE$XktEDU=mwdKL8lr^bD*#?B|ZNko^nBJ=zBVypUMsRAQzC1LU4x0hs;y z$lAd<>;5djC2Mld-CW|V)7hL1DgdNQ$V10Ey6&{&9JU(_EEVA9?vCw4rWxRDXUYO> z>&Q7LY`xO9W(0y!n;3?17g@n%jhz6}rlF7$e>53F<GVnQl1cbeQZDM60oY&`#w+Sz*WfSBC2;OxDsf4Ha&L!uA?0iRsoM}|8 z39(LZJACe)5qHWZvb~)%tXEWzCNQxLlHgHl+du8Y3jna~70gnCz*t;7u3RM#=7Z&+ z#ZVWwgRZ&UFg2xP+5Y|w6OcP6pjm+lJX%iKQ;M13v)nXb^B&SJ?q<{k2GCX=#RPUP zm$UA0v&-b;!3>4dc`6XtHfmTWE*cO6X&0vt^3aI^d+fEh z6;Fl40@UPvu>BrT2yh-5tBE#L_;#9Xd8Y`jpexomIv! z{%YIcR!c1-6?U!v4NR;|au9zb@B>M}eM@{@wklAC6Ptj>k$sJUC)OqlR#&ZU56k7X zAfh*x38ak?ZNt8B3>px0hsQqb0DbJM)pR9W!YRm$^VC4O%efR#%L9WanO&Dyw^(JI z^?VcXGC(k{Lp$paWq7j$W@aXphp zk7@-O=KL||m@>(J3e)jx$!f;D#n@J$b^R!mll63}QD??Dv?`+^??twae7!X$@W$kz-S~sB2VwI~LC^{63WHHQ3VbsF6)a)_fvd;00=aI)V#LN0 z7`Pp3ZlK-!2RGUb#9~6!oh&yXC_Gp z8H`|L0E$D6NxJ)a?;PZ3HtW;d#H9GAZv^zapTAhwcSNV2zJv3Gg*nFeA!8d^j=z6Z z5E$EzuuA3<-k0}}XP*d9vv)Giixn$&o%U%KlphcDeHWLmJfhx(z4yyh;$k1)%2X09 zhQ0!spa>d5YOkRjU&s2pJ5QD^-4I-yVvPxQiL58bNIl0upaPJ_*bRd`{THpWdZ@}& z?M$|BWMF9!9`HO~0AqMfxxKbkR^*QFkKHf(2=?VfnJWlNv1V|i_0m+vZwrYyc0fL} zk2-?9UhAF$Si}0ejkS;|ci5(Sy)W+jjqD@<>J{6&W_#&eaEyQ~XcKMjUoFt!{AbOfts0*p>228#C}nGB{Z*uez$!tr42&h{<7i5j!4+Y46mtpc+u zW&B81a@Pz&=#$zsn*emV0}EN1(2&F4NZfU0;Pa{N?P?S9$@4FF1cWgUQ;Hf=&1X2T z+id~-1+b4}1jvui^?VArf4?NtI&bY%P~RE&tP=aRJ}Wkw?6CE<&uhimeP^agU1ZRb z@jK(+0Byng#d96==FDWE;nM)D1-o`K7eH9%6?j@}D04O{Uh5s(b)l+H?fYwjM6)Igef@J{AX$=PJWl|F zb(!HgZrd)&LyrJ}<3T|V`s)dD(9A>-H2mAGYtbnb*(L})c4Z+K^G-lu=(o#Ffx5n< zS0&z&3EVA|2~6;nHs;W6doXxGug3OZFn8g=3l~?5g4ECF1hl=}oa{@}*Ce^PWhoS4 zBF?TX{z5JrfW?puQoqUSEeAKq7I9BVL?G|IfnMPmVoy0-$zI+Mxf-5?INLl#im z4zKCC*x7N`n$1`{*WWC30+4Ip{kreL_oLdgtWg=?l{l3EmjmvrXZQEQOpisf++Sg7 zOzE*E3x)bGzftCT6bOu*gfCyn$_}Fd>({VrAH&6p6}xIH;O`aL;TNL-z{SpCAK?;} znApd*GL4vJ^?Ij}0j>eYdIs~r4#}Bk*+#rSSo;ex0k6Ps8zqEz%_)Uh{Vse z>2eu71YhSW=@`#3KxYEZ63^gyqIg_4kb=I-n;{S6SqG!kWwa+kyqPrbk&%R9M8}VL z3WO(r?&`y}JWulDvl#kNL=JTk0Se2#0q_$NzFJ$aBa;ij;D#(Rlj@B3Z=O`)PP2Sy zrhq@>eI?F9rmVzyAQ!D*Uh9?;^NF=(mAQTza5=c57*hzavrguXTm1G#*+v2;06&ajsxm5H zr^hGfR6wc)fMAIUGR6$m2%J-i3AQH7dg{0u+=G=S!AwkgAM+v-8$wKgIYHk0U0ZQ> zuikVVo0^Esg<$m}aSgW!<{<*9VBVruFFu0;sC*lY+zspe)>`{lwuLm0R7HV<>d$~#c7|B}RF)~?zfsA6)kg|SQ9?)<7huh=fDK{|WpnY@#53zXlA%iP` zHfzT6SXO;q)Jw7=GqBg*P$v`Ms5rZU3pZV0vR(>DYNu@F=v;a|Fs=cP6%z!QtjP9kGBEhe85&?C`>$Wf3`RQ&oGvpK_Mz?B@fjN! z`yvo~2#6aE_s7jG8NG*W4`99e(^uF1?Yj%m zw$=k4x6c$*RJlTxVVoMFB#=d%_8k#2f5`rK9D{RPa?Z-Em`tr!v7Oh>+RkNiBlBhW z#v7Z@!LrD3i9yXio_#130>N9yc?uXD=XXa*>bbOe$5`kFj9^~prdM|G?&Mm* zF-TtloRaeiV861tOu=pig1cr|7U0zDs7k9kUxOX2$qg#)oj+H$Bf7<&v2ubgVjOz} zK9#`;FcxzTz+Hf&>wCQ?VVsx1yuF$6Z#@42@+w$7PYDlT0^@qk1$)7L(5xDQt<%Wn zMWPA7Te;@|$Re2yz6`f>Jv+DIz8*O(QmWbN|87<-Yxz1$+R@Kuyzc-iL+&{rFqC?R z95euHw7rh({65von|~I;?{hb%zACiXIL>mT<$kh&Mhr3XSOX#hxI0sHl4WZRySz^G>o z8RQDvqAu(XhxVoR!2}Kf@T6T20Q(q_EprdULI8CDfjGA1lHjtth%EH}z6=bb6LQhD z0m7JVz?!WM97Yx`jve3~vW6p@mNjm(P>#I=3%MbMj63524Y@_C9rlI<)Lc^k<#}sbn?m4MWQSKr%t7c+xD<^ zlGX>-{U9jTk~JKRfpS2{x0a+@D_B8kNQ>%zwYJ=#p5?Ji*{yAO9wy3IuB_d_a6_Xq ze{Ci!y=Pz7U|^5qyhUb6tN|Ut?F80T-lSVIG&ctH$nF`M1~tRr?-cwTeAB?^tsTUg zx6WAN_Ep=Le#57Ts@FakIEa669TK-DgfteE0iGu;f-A(o&<13aA=eCm7WI%7^fq~DfBG>F+V!ZTJL53|gk~LPliu#LA^dsT z!kz%^Kyv$wN^XPk4d8jrYY7l~cr8!5j+sIF8f{gaQ&pZc0?*r4e8p$%nK1h3?TS4y zfOWW~3A)Zz#vI@%rISrLlA!Q>s*K#)*u4*HBF8hiXQu+bVjP1B4BrW0>{Q-I(jI_b zFeAb6rMx|4oaG*a`olu@$D|rCd}W`g*NZkHK)l&(_x`Jg^a4sz*vyzd12 z?D-T1Z;u|w+lermwd0a=vHvl@-wwH_Qr1fEwA3W{1vfF@F|wf*s#2-ww&{jly%-qm z2j^olQPm;(=9Fjd5;)yonltrfAP+5LwDt!Az_t_C1pabEaBwOQdoXbi1A(1^z;~{a z8wMb-OA;a@+Q&_UI-)Z2Cg1N3aCGAg+kU%s0ht%~#=H%OjCP;oq``<~-%+>Wpu1*k zpJ1OF_{e(~nJeqnSu+8Sx9rK5e_XV;f}V z<{!R><=%azAUD9^TTK+;0tb^fvVE2Y&c_M%9NmO03la)`|EA|qoahjN+b7q3{7ed& zY1AF=e*Dz)?+)xQ8M?PTX4WbmnaSm1``5o`!1)W`N1bN*Ik@)lXnV_hr&zIK zAHqK5LhZfHjmKSttG{&R5p|XJ5id)LH@!bA)5Dp}Sd|F6Oa=Va?ECInAlGMLu}TYj zWwu(N?xp35k3d~;B41J|yZY&3(h z61QOx4Ka%@n7p$}&xRA$#EBW50V)iRL2=F4zQh}ip&jeG#q)Bm<@laXvK7U^`WAgZ zP}B^_1+d~R=twZt$D~}m|h8h-DXvv0T2#bz2jx0yzi6}#$f5f0K~3;J&>i# zc_fqiJ*E$_-FUY$QJ|iXeK-GhM^IShnpMge0OqN3&D+OHsb(A}S;1OPZ6HS-LDD0S zaoDCB?&Ug@hXx=EX0V=9cc$ahzaVLJ&pfJ7_3mS~#^6={>>uVp?5#AFjN zl9Aj1!}y7E)Sp@=`jS>oCM`~pF$roqpA#gNQK@PR8&&nd_wYQ0q%&B$m9Z!R^5S_4 zHZJ@%oY$3LJOGPhU0#e~)bPc4rUdj9$$Sk#-5`F<;>&{1tPPpLD+PIPXM7L!fw3>_ z1Bwtc@lCMJYN?E2bRK~8TtMbpwp+1wd^7O>wBHlX)t#|+yC+Jrmf*nz6q9(C?Qm@9 zS1i>LpNIarlW8}%;-Nht8h7sVuVy=`p^jR)QARZy&hNoJQ4<+-#BH_z^dtA&ahz(t zZ;Y&41L&(N^BuvW4v~!;dYNb&loz{2eRi#_hO^GKmHN5)+TpA~FwX}7;C~ATpXGrZ zv~>FC(p9Sin85bEZqe7mWli5qN@kw{Fm1u+Z4HDyWZT)ybpVjXDtU;zb(A+AW9saJ zwTr%U9|A&qN)d$P25iilz@iEc6ecfZzdQ=KZrb+NbN6QE2h+vyTqozAqnLmm!A#Sp z4|>=2GB%j-5-8m0E(sQQZwCl(PmoyD%;o}uE?B#lHH48Rf|?*;>7w6V%*H!I|FFot zyHiFm7JvfWhR4SQrXS=b*doOPoEI=QkjcEv#?kmbRkybUfGLl?@BXq=QT_H+K<%l3 zz<*@2*3b8|n$LCdH%2=8iR}Z)-|(I(R;<|jw-2#E+ci(Vr@8U?i}2=`@43_b-Y&rh zw(aG20e_2K%0^>vu1pW-u(lX}wR8Ka2zu%4^B-E7f{f!0dUWjv$ zaSMRdDZ5}F_&bpLwZIhKYM*1YKD(m`-f5jNNJe)-!O{@Hf|2nVpZ+lrkHOfPZr&;D z1VPgTf_s&iK6I?+K}pu9tc=k!n-0oPHBFSN?gl~P2pFF&FgEO*OTvN?U@;&%_M3mZ z9_X!^1g`*&_EqCS2omE((5R6=j839ORT}Z@qwnJ#{c*{ZA_zw~dC@cKsmVh3r@1RKhIw}UY0Iof47y4IS=WCqLo?P{a4`dv); z84lv&U!GvE;p|=G1qu;f3j{|oX9Co%Wgdm!0#8;kyCA#kP$xalxcr$b12CjrDlJ@Rc@aWD9o!8ZRB5-ta@fBE~alMbNn8 zTng4N49wst>5RSrU{*l6qx^I>)un#JpTzSYpm8w#K%qE$p!ujYGo?Ze{VkLkS#2^E z5dZX{w{=c)yvD0@n4S+YNvkqnRg+HoO@}YGcbqjF0p@J%BAG2F=24nDBWJ2;LQux? z4nW%F_}L}yhrCTY0QkyvZKvKqY@D%;0l{6CczNt|a(}nfZ;y#fSffOs8ciZez)oFn z=jn?9z`H!o{k>KuFzWe2sz`1c%0WlZX76O9UtmpNWY@|7uK~u60dnmI2yzoQcLLIF z3_u>mA~t7R+Efr&Zh~Krhsi<5u{yJTpa``9gJ2W;u}tO{j*CFBfRApW6PJ@o#$%%C zUZYm(F_zB&?&-D9C8YUU<)!%(Cm<|}0CqPfAq_{lJu}F9kY#N`LO`582PYGgKdwDM zU~x9dTs>L7I6GmGUl!*QGR|b*{_#T@$j9y(KsJD7`PKcpcgkQsz!Sg%O&oe0CuOlm zTK$*bIi3ju=M(#r4(i7h9>@UIN3e!_d+jk%tXQ!RYaez6``+fs<1WNiUcT~(x_bKz zm#75iuEWZ7@Ol=3T}mlWJmsDVifoCP2eAY{KLWSn4aMv1z# zPc$4(%4Uc%(kkgZ;d@a^dZ$eFD~17hJ<%`zR)!_7QKd4}5&R|_hd_UqK*~0IZ+qt5 zc?fS2-Z;X>K10Hejm8WWWeh8$G_i*bAg+vYu1sk?x0L<1qznzFhhd{nyKxcQbzHo! z5%8aD?O-s_a7>Ub1}heza7%gSzJI$yXQ%dwAStApZ*K@p1JDDTZX*C9fJ=ZMgMPc? zENuN1<(gxiVoDj`KWe*MaipUG%gm5efVL>tEHSzUb%Mcs{`F|Jz)u67pSBrzZP^}( zOi+f9Hrd`*Jn%g2If7!ij)`q+oGL>N5by%4WUeO{jioo4W_3YMb4XW*0E=EQ|48kGE zvR*a4EN$4`MirTiLF>`>fwUJoW{is{(Tt!NYq=$<*u9%8;Sg*YtVbm_5D1tyDqnYq z(v$B&5d=9S1DW6g<(<1EiFcI6{#rY+4VJ$psOK2u1cOJbEA{NovxYV-s2Bsv-rkFV zKY$I^!mMn)Ye7ty0^nT&r#T!#NQ|5W^yVnu2fW$O2~Iv2%hnfpkl880!el{x1cXtu zluVf_C3^50Z6Le3HUK{KyNi;Jb}yeBaNTu`@f9U~qf|6&<}NI_4A5|u)y(Y~^@(wM za{FpLjg(ZMy2aNo1WC~b0FMN2D^_}F zyCL5Y_cGd(xbFO`wb!*|<0W}$17}Y?w}WGxC{q^4h%t%dTK%}UIc+#0oCA<0Q<5x5 z0lX!44seO*RY0wElBPb7M6`3m>5TUv?mv?o$1@1`8f%iSYz)UXvuD*M@3mqF+8bSn zsMZn73}9Y>3^V8Du1ic_0)qO0R%We9IwLu#St}bCU@PuB0J>FV)!r}Z2TgBh^f7Qx z#P7}pqf&NmtKXAp08-5WZvi5MX^g(%dl4Ys*my?!_#WnK$Ux&a)mm^5O8>jqPE7nT zpJKXD>1aq-w`=pwa2DbmZ@-{oK(?>E52ce-s>5x~!|5jS>1DjP2t-dO3B>gAL#MYQ z66(-zRh8-APbwvYL_7bq?PsoKzll#ix4vQh1Iu`#0CZKw_W~dG5y*^>0335HucG}6 z{du}H&gHXnYM?o#w|$Q_0Vr-`AMGIZdY->;Ayc5?7_t6v1VKQz?JUXEPIPxvAAt-CNSLrAR zi#W{Wp(HnPB{#QSt$hva;UIH^bsZd;z{kiz!$Ix7+{k&5#gjOpl{i#B>bjpYII>kx zz={b@8<@1P)k@lEpMrw#0uc7YhfoN^_X!A3RC*b|A-`;nK8}}i#7H!V4B@tW>S0{^ zJRnO|9u@#r$q+_{i#T54LB~+Ph}phj4lqmtvj0lJR~%>e_wPL$_>jYkju>RT1W@iC z9-gT&{DR@${QVn`FRaGh-&}C~^Iu#i&M?`>`}&P*jJgWUO5MJ9w$I&r80W=`6}w9N zkgL)6G$)>Z0Sf3_>=64bm!<^TUf;@Xe=QbS2ogA))m*nA_(d7DEZ~)WodG#AJPg}5Z#{MdP}h_j>=GEIEEPA-642W3pK`P_Wp%1NpktsH*TkiLM}W?q zelukO%s!~6Y#3*f)-|QTYh`W604NzL2Fz`q*5(VTbG;07=szfCcIxwI8+h7QZVV~V ztN~(W+s+6`@t#Dy$W;XY$PflN)hJ7t*VLrM2f$WvX9uZzaMH%3HNgHZ<^nd{5Cma; z$3|s+0ph9rb(@Yk?ZzEvVb~3gb;|t?@DL1EO8f#q`FT%u_DcWCSA^$EnW~m(IUG^0W@xv-vDZL}M(~DjUnX&!`n_Nj%&0)X~SAfx4C{ zMCsjHFaUr&1exT1e*|O7+CH|a??7ys1H2Ru}+5XS|yur=iJBUQRSHl(wby5Kw1E-0MY>TVp{;Z@I}b( z1(-{@=Oul{iTIB*Q~X@Xyh!RGXP;k{j+jm4eorKK{$X5tM{h z9|QpMX0^%u4c|ZP?4;z+CcW)cEn`9nW1r@Pn3#rLMHaDLjefszC)p=?lE|2;$>-bJ z{+>kWLzZZl9Rbgg0N$Di5R?O$?G!*O@XR)=#~ZTea|ov;N4;p#e`RCJJfG0d@8~z$ zmz0-iV09{SAL5ldf1lI>$IE2mow}{PRCQ8eIP7^H{6GJn|ECZ@c@_r=GR}T&;LFah z@9dqnD-O*DH>-SS!u=e;1jcETo2muN5NJ1R>PFd)eVcN%=i0Bg+(#`pxnG)Q{2?H4 zl7oIQ7PA}Ie(VF9!vrGE4gLlY4OwWllUFqTKF}8Q@#~37Dz_?`?4xAzySA-qC7(AY zQ>!mr^Y}f0VWgB`oS-l}GAMBlHk&g@G9O?7Em7|T3|p{*JF62c&b%A2;g6WI;_*WY z;OiIezY`}t{P=a~jo$B)3}$)wAxm~SUecLeLEz%|uL^W0$@D#jnmGUT53c>|-?gUk zp1dLg>&SFDKyJENv0}wW+lO3zUcm9Zm=*B1*y~yWe~Vqp%58rIW@{zZkegJ>_MjB9 z(;(P0lu`r(!OUZBv3zf{X?fmrqw=Bv zs+1KPoO=fTJvSh{g@b8;S>i{N+nE3m3(D+58hZ1vBp9m_yXWiElXFF;8l;+4u9@J; z1LTt*l@*NGVvLg>*>>3atEy^cLdy^2p;^;b;;vw>ZnhNWP6fST7z>n6=Fh_9s2})) zdGy@vu}#zpmGe1aZQ@Ghp&uRz@aHKG=V}iIc6XGA1}KbYO{`H&xo-e%-R^{@)7tNo zV!&p^7-l(wO6yv70HRp`dh=}9viPm<+n#%rgPo2<3;?mL>kD9SwN~E@vdl3V!eor8 zl0Zr41@}f)`=fpze#MOQUqL#C^e0J8pB`b(J2909vcANE+o)b$*fkYgT9E? zDMl%hmUFDjfKsPtGYo!lTLQw!zYw9 z_AO2Z1cYl#(DMp%DvLSrVF`d-nac_cHxU~QSt80MlJHXInRZth!OrBhHKB_@duvIJ z2H=NFNmyr~J$?9EnZdZO8`f2_Qp?87GD;;>}19*PI(r{J}yN zBY1nT9JJlMGTC(i>X6~EZe?E&lnGWl2N0a?r>c@HF#%x=0f3*ZrJI4lgW37Ltz>pQ zR`f2^V+R{SmZ8elNyBzbrMuyxBrk|ADb zMUJx)02cix8+daB8yJQxXe2yfQ4YrP$OSGRWHQba1b!F|AOmnlP2l$5|2|4W+DGRR zNhHNJELN=8G4|o6j`#NL&h5C1adnsQJzs)PVxRdE6>sUhR&Mv}w^)m8LV01Z|2*ZJ z+bH)Lo-!4fM~(FwB>L8k0h7<{-`Zf{PJTCSLlE&rS!4z_y|FZ=loTc-Bi4%z&%-I+ zvisRCnas+bRgku!4Be>pq|bk;95&b~6(w_>NjwMk=V08|WOt)fBN^1}r+&sT1f_UG zVkn#?PB+Mf_vsiJ5F;C=PEx@zvSBtVQ5x*L@fR76w$E~tznPu;d6k0B-lcnt!=$o0 z+pO6*BWscMOff#d_+D!L$BuO;b)1Clox1Y_!Y=DCrF98bMlcrA?kZV|+PPF2h#Q?T zm>;ZtoDbBsol6WB=ZFlphX+bTqvmU5I3*I9JIuC0L$KIb*H(@dlFgW?AtRjRp}S0l z;E0K17ue1Az(ST7EsS6{S;00x*!*%XVAfah7;gy5l645CHAo^|RDK9&YBPdSDmjkC zg87$QGJ_ccm9f1RP@j_HQ8gk@#&PEWgY_MiJ+D|Zo%b4^flQh*Fqi;YOMoZdZ|9Ic zFZOz-x28{HI5B-$(|5{oACs==V=dQKM!{;ndYwxWfh#UhytOx&3O ztY|BKhWmMr*s}OE@U2k$7rw^g%Yr~M-UFK#ZO$npJ!8Vp%2>Gsh^4()BN)dpTPU-b z+dgW-1db6kfi(GzD3xL7F_2-xVrPJEHTJKof>i|%LgBVM+#%<3$r-h7djoXWI<5QD|Hux(gmwNva zAu{-X`PY97VD_PoEQEcKw!vX2kh%nnbqB)`x?PfAfBzV zwe4vL7rmWX9?q4@`Ez zV*5|OxlZmeIF)<1MO!!@sMr11zi-t_h7FcN{F@AK99Hw*S?$G&6?=6n;O~{$2LOQI z`z82*_SAFu99Dv4m$!1eU%7deLSuk#t_jds;ti#R<99V6$Ld041bPC*2&6@6-zUo$ z?%$I|qDrCSMc!6T=HW)h0LALo0<<+ojbS~Y1O;1n2THET>(jHdx4 z027t$;8^$Bz`+DChx7F@?KA6|_Dul1uQ!ypW-UnpJpjh4#BTG1&3Q^+LJV%(dBOQW ztzgKaBHpukcqA*BKxsAyo(5V*fZk-{C1%Pxx~%EhDiHh_<)On#AZ6dC(>WFl!6-*v zPvqPRFp65pt6}}9^QX90}eNUWVQ<&n8{04B}|Y%=Yc!QMyY+#BfG`{r@Vh`{SPeF^PYKf~dAPYejw ze(?Y_0kY})!#-TX@kGNxF|8?m;dpMMJhZkM!p?fd0s#Ln|8t01{tZA&8PHw^96{hH z!+L;}GaBpULDSrd(;^+Hf60Ejksz*ez+HDIU^KupZvUVN_Egew z_gW+PMDuuP{`QS5;O>u~$Biokftfji`)u@f^8a*3HZqvVEKM}xg|Lb3~ z55n_ppaygkGq+u_V#SI*Zw2(d0z3U86wtTW82jv(rUb)Iw{m;GUsK>$>!^`^(O8Yo z?WM5mgK@~(Z&;_WGluYPgp#s!6Af%8>Eb=fyDCgoE7QYy0+8s_le)t@H+BSz0n|cb zkkZ6W+e;>oU4wH!eO+H1M=NV6^n-O!4*~PGnvCZo)-cA0jnyD)OiI^hdD(|2B|qIJ z$|fp4sD^9F2UJg zbGAFaz1(7Z0D`ACHw4zfkR?lYD^7P7AlO-Wl2Xk#Wa*+FF&>eDt(; zJr1|yoVsG?u3qyZi- z?(BP*J7sLKp78CQ{lIs?1V+DEI~W+0bRF+)Oi?z0v-7F;VP!SjLrAJ9l=YwK`Dt1H zqM_9MHXs?YtRzZhThbp?Y!uXN^<082++;P&2_8EI^xVg_Gy@sn8Y}~g!naV%K#gAb zqm?(lqb4{utt#3yjY%@c{hZrZ;pH=Cuv6)3h1-0DR25${G7!+HO?!hU!D9eSX~lVA}~^bYSTL1O~GG%W482#Ddk%w0F9nN)}oZ$l$WM zk^8`+<;yK)nJe754^}%gbo);Pjtx@OcXLWGO#rx!ttT9_MIqx1S!`ssEZ3|He6)TM z&MR2Ww>R{(D@YB9)8-Rv^THldPJ5?g#|`(s6l8b}c5s z|37>G(&f00bPIw2Dajx4IIqmSx4I_PlN$8uQT3#6uhl)M!TtY#qrS}Zh!YX+E{P-> zdz%>mQj&|3C=d4tT4o$~mq-ExKmfFDd)tS1l!k8q_)G5RjF)bIbHfc-$8qjPUxSj= z@xI!>KJ}T^dk^O7=@$R`jT=13K}%WB6sEG;VbfgJPP5H6+xKtZ)oyqOf4{lSOU|pc zAFXSK+p^i=b-B%t_uDhC@8QVBR@a^mn9PbOUlY9kUmP<4e(}`?vV!{*lT3cnTSR{? za)s*L3y12W-#~H@Il@pPWtvs$`Cv%3&#pjY>Eb8A%&mf{W5C)h#q7m_xXQV1d9Tb* zCOMGDzCxAP> z^UIUDu8Mw9M~z4E}yHsSAnFdy3*rtW^GRzN_^Qi88+e}RB20Ji|?vHvpWynvflTAuTh z+5+}s*ykYVfO`~?%%utd%qyGa`e$ASi5=l2j?u7hP+6c-zEGxJdW*dm-)fC=u=Ty#)U{&pI_043PHZQvvxZ zt6o$G`*yr1VU7ep-Q=O=xi0}==hEOr4%_Bp5I9gyxkW@>e2@s@>dlTiALw~p6gxyx ze0_>Q@RJ+$reTvArKBU^7oXAk^C=*(Tm!jI!-qT9A?g+N|7udZXCQ2NumQlvb_J-- zF>12V>2gyJ$OHB00dD%YvSl+{*hz?my~f0L127yK%jc{w54Hj83a#1a?-o^5PFpb(7gE9KU^E1$?nV72yo1Dn`)aN&!YkcxQ^w|JO!M!HkSLU=$sTVvJ>g(b_rv0VQFA zTf2tTAzgClrX0*pz|_{{hVdP4u9s_i=;odNW{05;V3T{M(-PK^Qx>-Qhwz<^G2FN1 zlg9T562MVytB!D|eubbQHhx;3ZeNI4p5dIGYK_cbFnfn2k~9WXk`y2zz)%DxpufPv zB?#I|ZpYML1!i_>{mK^6>agu^kXsf$m^g0{@Bk2OvcBEr%-~^9SRexA0FFR$zl2u= zE$aw~$8tY^CSVBA!@2YG1gCO)KuK)(2-e(wd{0mq_qA4e=(do;o&uCiz|5@x!2m|# z16@a7RVpup3BhM8SLTb=2a#%~geQP509YH5h#sz87nNIL78+PU*5&;@`xNss+L?h4 zkV6L$hBeVhSc4llw=M(kY`U8FQaR>{R#tw!5=9G=XsBo*Qs^lFC8&IKTBCHj-LoM3 z1NC_8w(nm0bDF^b3Of0$E@3%ljoFLf1Y`F~uvaT79@Zl3?236V>@SjB8M?88Yoqj*REl61`QXfgrxqeu4e^F`h99X}WJJ@aybE^Qmo;iNEP!TO!*=s5c>|vm? zvQ=Mo7;e72rYzBY-||M*(V&4B1k+8$B<%L(zURdk{n{&wL0xjj4i&LpkUZKvbB3xN$;x zJOc#A1NYNA=Js8Dj({ohxQ^KXYuU(09H8qSH_;X3pbcmncLQXOLc$q2jjJ{4zjl6m zrhKo0uVJ~O%(RPbi`=wmS83b*OW}3wNLiKU(8bGeC5tc_!`R^aO5a>M`4=B3F4nC~ z4oOz}SxMq+zQl|%Eg$!|T17w>Qqi{}86EpKfEBzJrnY+~iu-ia2^o^$aiizoy<=`- z$U+miy+Uy6a9jS&9ZQjl9Jj0w&tv#`aMaH|AhhxBvM=LEvY`7bfg@ z|BHYA>Y9K5$+mvpg7ga<5$nsPvuB%awl{3w%bVIaUH>k%%RAv!b>my^itpTh^sf1C zrn_%o^JD$?ttYFu5T-0am*|MwhtHBZR$0EVDzS09F6@2nB;!|sUpNQhz-ymVGg5~W z&!N<_lQNp;a|0V*>Xc!;&>V=!69#9{D4FQu2FNa0h!nHQAM-jTRpi+93Jf<(J6F6W z9O;ywZbPo$IaVTI>hPsBbzNzmWMOiXc?PM(&SlBN#5%j8d$Cu)!B^fV>FLUH4=XtC zmAOk+uKKhr2OSw|cn^oaN8h6j7%V|gu`Ax&icy5#o}4M6$U9lOUx0-X-hV8A=f-5_|5W= z&-UG&06kwH$W{e7J9*w-lo$PK%XohP{i}LGu%Eee2@o9y6)!21?6FuL`V$OjOd3rr zm$Ki3`<${|Gh+tV9NRbionSDeqNBgE1#?q_jP}i6m-P41B};*F0K(Nmf^9h0Xh06Z zG|g$;X-?s`5!v>x>2^vYcw}qynDX7XvAy*=u+ATvA}a-XE6oFK!AktOFmT-^`EAU_ z*jHd4Yb~H;SdP}AY(E0Xcy0*XFJy1>v`NY#X0-yb%Nqe>$@oRELF^~6fS1PFg#`4I zfX)DO2_^@T!N=z?NIRpCK63}hF@tki zM+KjG5Ai1?pttL-0*10DWq#k4rP*kCe;xAx=h0=)2kL`;&thfiGj!j$ZBzbQSB%5` z4K3F)>1S)}1mHWJ=Dkb#?Ag!hi@`=G49XaO=A7Gr{C07>seQUlOK5o9oZsO`o~V-D?^E5ES^wIKd;fP-PowH-T!9 zuQ!A0VY+%0{mwwk3S-7=TU2`hV4frhHo(s&KA`b%xA^jSIuqCnhzmLAZdri9V{Z^I ze|Wf%(-$u%tb;KDkDZJERAe)EHxayytz3P65D@spkXT*=dhqcyUIXorUQA9k=@2q* z<021W6>vOr4Y#GN$&@2;e7z2T?PXk4(x=9f_IL@#grHa%uXw&1u2NRD7*sS6DHgJ3Ym>~=aCV%}~gKrk4=U?iiQ?ytXd8=ch*UL>Kx z{m!Pewff95?^-o+w0RE5QB zCu@B>VVF@Gyw!ZuE+nur^km5UF3;??{k~0G%Js4xswY_3(h3ygYdA!`${GVWUR1(1 zCUey%7Ax3?JpdxO95CTcaQk_m$&@WGphvJ@ge9$cF;{oD%|SL;D$@ZBBD1S4(p`3sqKR);jFx$|sTbxPpJ`@Z>bPcWQv&0oGmuyjr4 zV0pq>Wft=g|6JAty;orALLn|X@}J^85|}j>wm-j(ho><>M&**hlqF+Na|L(CLM|rB zi`rHFpp^W^oCIcKELZXc2Qs|DNN!a@GK9;^?%glJ8)YjhKnM_c5yumL0^Gq|jl9@s zZ!*qRl7DAFy33xueciW1tW;pr)Fe1}D~r|pyymce_J>_Y|`Kq>OyLc$qyKS5fsdt*TW zZ#MvMA@_VM($FpE+I5nPMv9Ooo)7RB6~}P^bFpXJKFYaZy5HRCH33koj~{=pRPrD7 zm%8N+p*qT~C_pgh@m84eNf1RrH|~9EQD>=_p6dkKkdo6IP0ta+PJmGGd1sPRaX1<0 z1lQ{-0lTFFNmiZ+37myVIuiL^_FDT{{5!*~^19cRd#V-Vaki83S?R$U)DT2^nezkG zW3?E2j&|h6-Lz|SX|g@A{kM$KrLu9YPzuX*J}Lf`xtyo08%KjKMoIBzVec)*r}VO) zFWze=WhiTO0P2C?mdpA80L+601a9NQ*nuG#AND#fc2$xo8o9C(D6A<5-C;l>I^%Ke zj^^{_x$>V77y9;IBm^Mm?5VvzlHrJrB+AAEy9EgR^>ijMrnz_b1c4b{0U(+*e|N%l z2G_LNLfeMWe5{v$jMr}30wA4Wmw2%iD@@w>4tI3=q6AgXFVzq5fDi9k+qi&i!k(fd2e8N84PRJL?U^+5#Vh{&e011Lm5G^VdHn3LSC@vXwvsolZM7uTXpX3$n_OgnIv+oOVAu% zlmfK_4h+glovv_r!r{Yn0kG=3&M}$i%<7Q(l0gY(E~TawQ1Z{$p?~us)oHOP$>FkG!Tauy(%T>I*|wOI(Vi%ixlm2HpghN&XT5RdRf3%T zdCzAeC|5?SMTpk5f4hQR)KL`pgSN+fZ z;6CJL60qlr`|~P)&2CtTA}6d?CUm}l)lF9^1$1rB1lUV9XJ>1$)<9kR79eKVDf`OC zS60HPDVtoW8VUkG2*ftFKasP!hl+JZeqHQ`m_L{-+)cWNl`?)&$0r0<#I{GD;T(X< zlxD`~@q5ap1Eh`DMebjeOJMn481s~SMowP@!`!cUn~;0P-0L-EhUEX<@_bu&@EIBJ zvG4J@fTj5!FxMcE4PY_%j@EuQpLqlL5D>E@+Y;Y*I+mbZ!&Du5P0N>Vz_GQpfc3Jk zjNjGyeSZ{m`MR!?8Vb=JFFAQ_1lfIct*W}T z79f{pkM)Dzj`J$(bXpgsEtoI3a?S*8r5aw@*qwr~)9&ZWxyp?1A`4*zn*j*U!K>+2 zX1cog;*Jjjz;dKi=w1QXcx3(MDT2VKf}gSR{Coqv5o!HwgA!w zEBmXnXI>g>WeGFKumHmji|U5D-E1bRLtq;rk1wR51LReZANUOL)(m-bJwRn_N+IcdszDM2An-$xqj*^7okHWY z{jXnR8*N=1>wi4F-7z09`n>t$uj9Fku^`3`FoEe)B(7(hZMN5I!=>$7Q~FixHLuB+ z*c$|Yzt^t#PHgU;arUOBzbn{0PJUc7=LjT@0Z_sr(`?0A*~4hnQCX{l45MbdQTf;~ zyr!H7#_vMGB<8Yf+9P#wD%ZT=m=vk!?l5p$>|=Nyr4=iJtF1bg63`V6oL{tquyZSw zvIYQWa)7TT#SdkTc%jbaL3nWy( zKKA@HQvh>jlz3&1;yeBhfDpMk0fb+gxA#zaC<}7bXlKe`e-W1MHRPcgNCO5UfPSbs zf^Dt$$DGhtYF8Mgsbjf|yA^{CC_(!u`Fi)sL|;;egO85Kni>Hy$mHHiJrKBo6Pir~ z+alQ2Y&Wi@tnT5tf9lyaj5;Eh>J?lUhUJ3aVJ#!z%DHEu0IOWtB$UZPGho+OMIewM zsfrr#`T`zz0+X#B=wja9JZyLj zSm$8;F5~#d90>_$`Me_I7xj?O*KDhsceg5izb2cPfby-3M?8xFe;G)3yCM@9?X_V} z@0R;Wd1wMIeiG5U(NYQ_WyK{3HvO?b4>U>4E94KM2U~ ztqk<7r2i`cdTqbbC3d!xfXJ@c5D$7;*2W-Xswnle?cJV*DeOOlJU^_{7Hk&*VF8IV zz$r>E7GNh!4+BPufS?p);HI}QxEgpJ(^&XPM%f&gvn7h&9uV z$fqsU3WC%jk!~jhrM*7}0OyKYE?i*(0|Y)@4m!k#wtau=j7`jZx?^vKb-0T_bbP3h z)0cA2?fCO6m4l8CC&1t8%ZYN(b`J!TBS^QZ`J#fIe9a9W-EHrrGgxm)f0z~D; zNzFGos+l%nWWr0>&TAAygf*lEKauA(Zfb;at0&;49}6dPzhb<#O>W{)JjGXT3f3Kf zDx`f7#DIFTUU8ELaMhlLDe4lhUH$x#Qp{iicLY+k7N=etFTVhRu`$4P^fIFjFIfOw z@shCf^1lBpgc|GBK;}dFhx7UN z+zUH*1s?^QprW&}O^gKh`~#v45_1y}d|FA4U9T)$=1#VJw8yTub9uk>H(1doNl5<) zSk5MIon)Pz^OyRqeBpl#{kjl{VNS@34pdi4U51=fxYZoV$)R3Ie!qYlVYUmc97F7V zb(TwB%LM@_INm8EtxP^hbW);L88y!OUdPkEF*(H=oI%*&jHd6E1qUzzfMKm{Hvo3X zWt*7h#_SK%1JVYfCn;lsmXBlxhoay2g_VpnYVPPgE6~~|4O;$bMJRp z9$B6&?;Z1qk|`U3S(MimAk`)9+iN2)j7+ctZ$7*yI0k@2z~_g=R4?uFa&=zC*k8)n zNBdF^8!8bI^xBYdzL9w@3<0b2E$sZ|b6wEaXba1Y4M5lldzN6>lLS2&U}xz zSH9eO+k$-us3K?Ba}<9o7`c|`+`ctw`~LOvnhqm?tnA2sDPBN5&57RM!{jyJ)~u9k zH-rM@AMRy>Ub%Ob=kYtAnjqh=lQ|2|?qao65M0=-R1qlhEN2kgCm;~=%208@2b+gA z&%wTcsWd55e@g(Exp$Gr8=z}E7K~p6%*Z_PMA>HCAeiR>gsGGiMiy)2ozcnQJH6JwQ3VaSTK-i4zOap!qw8Q;_$(-lCVnr78GNq4T zAV}P2rL-b=^lZPC_KI>o_okXw#Md%t&_0w=rqW9zd#F(Mxlc^s;aHyXnK@=ibDy5mN4rJsqI54Em zbeCJFKIzZAIAoAZ|r2JFN2KalGga$|%C%0<7 zCKZ2NTO7H*JsWXi3D_{H9DoPtWm%)sOXY>-y|~#bst?)lg`MFLaiNJD8sx@hSVkp_ zC+CbNj=9GOyaEhvgGv;K!>ij=RSxJ6e?f2!Y$XaVM_p|De?jcS_ zka>yVEoEK629D#)hZ8TW6ASYiLmut(33+{O69LvdWZ-+}hG)<7aiOmN@w03H`Ya&u zv&)hkzxczE_l9l8EWB*oX75B#k?0<+EbBiqz(cQ0b!+az;YCw$Yco9Fvi zZ*v!ovo|#bPHf3Z?#|yb&-Q(o$ubi-1zQx%(enM!i%S#0=tA=n!f^_a*sJ%ld=*ZP z6etFxh^HF zA+4#vFPuDNGpppa-&gkjOQn2>0A@wnxZ^8nFOQu+&27-jqo&f%U}y`2L0Cs@EBJ$4 zcBG3dW9r-vh;pixQ-Oiklp?(YL-v+{2*63ORol&mfOTig zqp6srg^$dhCopDj-o2B2m&h#(z)~gJ%e=~$+_xFa1XvP%Ta+=51);_7xU% zrIa?Zk|XfSHg1}O0ZA9vqr4~cJ$ii>6%ZEIenpvDw1=>Ro5W(JJg(JG=V-sDys7ui z&#nXoKqJ4EwFrB;KYs5u#uq-kR`A11^z+%5V|XvX>-MYZu+mDwr7RPOFEKS@2t?o#xq=-wdgvSE9f7>f!xR$5L2~i_^dW-H5rF;s zYy9`+>rs2HYw5Xmc_)0cZv5W5;ybjti^kcToC+thd5p{k zqccopoCWx7k^?xHS0fmhTP21Q0n$N!$8=3NPQa>INUk|JOhR{9`mVe-E=Xr*qX39= zdpxRAIm#U?V;OEDD~qhAL+%8@s`cJ0o{PHT^DN7J;=7}F3FwAn5k*sa84MDWtR5?2 zm)cv}pR5Sx81y3j2>(eZ;Hm(>ZI6|3k{jjVInwd90{xP&u@X5!&2`9}dTpB|FU5J< zK6B04c5Ju+eW&e}0FCH7vVZuDV+bG=SoUD289VgY_1t9^cK#BOY-xE_k)M1cEH|)o zTT}njlBd`=41qgJqf$~>QvGcoADLgaS!Z9-l=qE!A8g>&J7FRNT-tsWN$RffF;3e#rq5IFs|0ulSamwWaw78|6%+tWO27c+^i?&3(#1pex-TFf>^+tu z1HJ@C5xWxXbIcoL?sg#osu+u4)KcnMC7oel_2T)!UIQ%L&69wD!&S1zU!@xpr3;>0)Dm2hjwVYu z-am5mB9aDQQ$wI7BiB*-1P+2OoqC=6@a>x{Td;OTXDq&SN3fK+YJ>HMJJE9g0f2=p zG^6DH_$2v~&$u7TSVy3>`}!cV)d$Pnb1v!t_WfUDL14%BK)u`l8Uq5y;|X@(x#r)$ zAISe)Rwy2SE74xv1-X)En{Bo$*tgzko^97$Bfo`B(-GgKJHNNC_zrFEqVw#{PLCsP z9v8D6vdj*0DtGJ&{I-qBAP$bJoU&_0j+wY`$%N43a3X=8%JbDvBIUb18fCl5na&*w2pQPewY}FpR4@>L z3=C3ACNr1qg7pA1w|Q7AW4ZtAU9^`dhk_HfT^)g(n-BLQQ5~PRb@Y#tjn{R#DZ_c? z4)G|mzm@`i-$dUO`Ubgd*U_ij8WZkxw@LB39Mlwg%wsDfe}Bkc`#${HsmAt4 zHt!dkCy}L22MK_+ki5OjckCsnG1D{vbl+-_T31ke>}=tcu75QIfp zcLn+u%*%Z%j9@%xkYC=4Zx`&@m9pds+&&1C7w4rszguDFqHdPI7xKz7UOS!-K$d_r z=Ir?PJZm)bM3QkF2Jp`qS_IX4vSRe+MlBu21cP=+e< z4bv~LtbS8#@u~^~V0@uDqj4<&hK(vLbSlk01Tph!mH*Ct?w{W(j0s@!he!RsYh2?Q z8Q!DwX|__87sqx(OhRfO?{x1kDm#s)UQN^H1&Rs>jbmQtP_2^)D~L7^_Uv7d+|Xql zq)ed`?Tym@QvSmrf-0ozx1DEuFjuf0-i<2zL;%<-gBO7N3*?}QZhHY?@dDFA4*Ed> zyK(2k+V=ti19Sx&dEbWi**bvL7$+LyxR9eRB#cIzy~xDL0TS7ic0p81oD985nuKWw zLcX3CNn*{N8@%%A0SMz>bb@14N?I`0#`e|t%DERYE2g)D@FEutM(%2na|>ewj~oC1 zADiw3`QsDoW7kxGwZb^SB7u!v+{lJ0^3`Hb@<1zheol0B$Yrl2nFC~IEamofP0GPFhh>@*F0JQ-=|G367fCzGN32e)JyqSQcdCb%9L1GLJma;N%;|7k&UW{{ zw7ubkHyQ3)oWsmC1&8QX*(nJiKF_5gphKs9TP2WJ!1O9f@Ug7UF|V`qWut{=&`AG$ z(TT6V}|Wl=5xbd|tS0pD`FB@-w!> zE%NBTyJLTYoh$j2x5_ig&7r=Yd_Vc^$TiYh66R%~#N4*Qngu>j)U<B*N`5d4*7e1R>?Yr z>cLj$j#8~O*z-78;8Xdc!h!2CXa*?-W7}figfV0536F*10@%CnZdeb1%gFJIGPze< ziqtc%1qFt6V*Ts5WPn6RKp59$$_Z5_*Z@F|-{CmOLI?c}dqc8=@1;zzfK9!CveWmX z7`etXwr$d!WAf5WC!);bkXL49FAEcya?J#O8#0HP$GSwy^?0yYF`oc*=RQh<*BafU z<-Ybib7%rH?Rq8pY5h|9wATB`Jj;G6(F`ORrbT zU0Zfu?wb)P3Lsuc*SdyB;8W$vO%gejH{_O)tP?ZQc zQYIQXnvpLSV+HJJ^aUnivV*TE6^%%%xViIjY{#dRd2lJc{Pc9e5RfU6Oyi$EFeh;L z=jStka8ioj{y=slh$p%Rp!9aLo&FJcMR!fNHnb31o~Euy!ez zj90=&rJlP3USRzg;3NQJlmoyPpml5D%f8q8!eQFhIf*I>@t+gu?{IiuK-0c?&$U! zFf8d~GeATCX>In@wRd8!w|9g4QP3X}pa^6bTv75Yy8<++67WnXFg>1u_riPZ|K0|mm zrB)wBPB?_z&eJ%(i+Un31c2rJEm^^oM~(iL&6mf%5`#P6hAoMEMBZNH(ZzR=qehui zNm38XtB||&Udki$a4kSP$_*0$!TZXDQBF3N$#OxIfShdX&#m?Ap0#O``!3fOux=p} zy^=9sX_^I&bBuS$qnA14_t;cVcoe&|l)^UJ3YWK3qKe92dx$8^=Sl6>0i}Q8K5w$Sy-p8gk>vyGy{;=`#(P z`v~SCs0QCPstie{aP%uPfDiL*1eUQUfjUFQJlewW#oBwLDHpd4&e;n8E8|;t@Tialt3P1Esyl2e+weCZC-;L~xbUzt1sDtS- zmURkPY`1cpsFt*;fo(YNtlHkWJ?Jm@oxaYjSoV3H_afexfN$7+UQ$G$a~k#H3d~=A znvzP8y_nNwJ7`-_@g=S2!$F!aH1#SU(#Acc24XsrO4!wPt-vh)*Lh`COW#ZIKEyUz9AZ*&*sE;g^AwEoFGyvjpMAgVBeJ1~R0BA{Wn z|APPT|Ihz3kbQd=2pk(5j6ju8Ss07<6c#Szm?MbW0nJ_;2;7ZpCsY{`CLi9#pK(Au z#mNA5aHrh|bNM2#F^MkI3FOa#1`A~FTn+ctSKcXcafcg?cR$OG2dTih|$$M`yD(meBWfWh%8nYSJX{_T!|z_`D~fBVg~e|>fx=O*`j{oouyUhsz} zX^Yuro9+7cw){Ho^(|CW*&70ThxWa8$#-CL*PLhNyZrZL^LUu;bd#rn?9!#=lHG0u zVBD2)c67EamJF+>G;&Z!ZtwL|k6qme3pN4CJ2}+)PLjo{qMu@``Ek2L4sCVvFpu0y zWRS^#Ter_kD<>aymaVRot+Cl?&e}23$;Iotv12O*;kL03aO%*JIrbIOTdl-+&1I#o z0g=mQzPm2;kv0XeFwdKJq*FP}jBQ zW)`5ms;b1grhCnc!#6odHQ=DtT#4dW#->iP^3S2*;_D%nsOIBqX8brk#H zGpOIMO2LlxMPIt!^Tbcpj|69YrNA)cbqNUTcR^`62DEf4Azt=H4q({rqi#;+3=ow}9$61wtSODL=SAwvy?C1mQ6o8#7XK$|# zI&n)LQ~?^v#MEE|fQ@{1nKKnY+LQFRKHH(Bq=vrk#uVevm38GWyYrzj`BT7(&f8?d z#;+>P`^~vrS;Xm@O3<<(771zzY1)J3&%2$uJN;@2TZ7LPw!dxORpMHufOUBT7E~nn z>GSc`K-R|kZ(?|UAXiIHBa+yVwI}A^Fq}?I1Uw*l`^}`h}6KY z701egR{@*dSjNIOubHD4V+u+o{9b+53N%0|L7T@$G&xaeda$f57 zt#*2UZ!sJRzIeC-$7{a4d{F|KT`PMW_Mu^3#hxML3SIR4@2zdAq~LWeT-aV#>Wr+ z?H~X|2aNyc|LcDS0IxOJs;2^Bx)E-X8x+ah{xW z&yNpa_dWtZSiF%a9Fn`E&v()z0Fr-tM^ z!1mDC!**30JlN%D_yj;ASj%J#>*tnb8h_v=)0o2B0cgo5jK36@E+;5={o8xac2+vi zd-TW~3z;7jRsHQ6SV-ST&=fKjkdcUEi@>Jlm^t^d1Y*IUN50{> z`S-Q~PZpjz+X)E#;k^rxe1RPFSV?J2ydMRCCQJ9|c?#yRh!Q_Ce4O@)h8Gg50;m_lWcD=)m){rm;!>B)UAL?T>)Y! zD5C&_bMCZpIic;y)5b}Gc^&WW2qch24aN`HZUi>k433#2>A7d#J-_Cb7RnEcaZP4j z1S>^08KCqNfenJ~sScO#PmGKul@s}70<)`?F#5heOfT2$^1O&Kg!{xl$|isLD&UR< z620u*0SaM^A=qI1sC{e9 zRU4QSfbPWvsF(HW*fQ?P>p+95Zus2j8yq#pQRZJb{^28VS{&yTHj zF7)Qu><%qT_W6fbMGaU5WyD35CN!^Wgtx^!T~`1oldF~KtV-==jALhY(fLfkG1+|J zP+3c?y<{v|AQ8+MyuBMP|Imv|J$&(P=mEZEyW1R+e8^R$flf7Lwig7-z3dMn@VSX# zKUFJS|9ZsORhpT=Z_`nBnSmL&pGxJGBQ``JcavqHalfM6vLNHURdz33^kCjX+PRbK zVLXu~e>kH=oS}+pZqm|EOnNL`X)cpwB0jySl zm>L`q(*DJ#J~p{&3jQii*R{p7)+tC^jEkOm1GwwrBcJwz<>OIl5JDd?E=PbeKh2^UbwI6moL{^GJr9-Ds`8n+i5keheWl;-uvhO@jtoh)N!y^mw>?cH?D&m zbbJ`Vp!F)fF!CZ1gp3vZc+Ur|{u&?V^;&B_<{I&QYhVQK#!cgSS1iugoOb=Eg$rR(*(e0 zkBxc+ZE<}7x8d>etX#fUH{=Aae)$jq+_(`&Zr)H%)*}oHd3>3{<~}?;jelk_XZ-S! zb#MRrd)z6AD*MMTuKD9rEbGA?Y+HRKDzw$d2Df(hGRC$;Jx3aL-f@?d zTb9Y791-l*07 z!*eUSa6=E+A^-}2_IAnO4}iv$Tz*$7mG(-WKzEjM zb`l8HIo&haUc@AXhs^UlQql z;0XVyGKvHmc7ygw@b)A&lr!gEw37O>-o<{eRcYqNWW1-|k81nEs!HX$UEto{f>T7M z+U+RrOj3uEq3%pBJcwL20sBf)u7H^wE8zc^|NZ|Pz~DtAR^_-5b5zAd5M=~Ay;URr&GY_ z{nte_89?gr?p6jK7{Mkroi2Oq`ePrNaKf?Aoon@}G~`DCVJ~1gHbTsCt1nu*zqhAN z@(m+;2%{ZZ|4kt;-MhYa1Xs^s7W4igI|F9&DEads`FDT)S!6-Rc)F-|NV!8?9Wvy9{=;l2bo!enwQ7#_K4Bt2XU^;FkxB6HVlrmr`{|J(JNCN)pG;dFIrU`;_0| zT%sH`*gozVcR>O|J%zXEP*>-guyVzj+8wyZJvW^kV5MxeP5G$&*&J_@fOxVe9rU$_zHYO6v0BK>I2 z`r>xo1+JdiMq0?7s*8~^$ORA<>1BXR1c~)5_Md`Gl5OU}Rdz=mZ_;1ED5CPM&~1V}AMdf|t=)Ki!wgy9cDneQOg zdc*!%fB8y~G7N}C=akupD)c^Ak~?$-N$U9bhPjC!G7Gx|FWu=@&I{tct2kdT!2pl< z$>1jB3;z6-AeYT2mx3JoMh630R1zCtG(cgec_zsYj(~Kl#G+Ew;SzT6PF+$yPW>~n zWK||zrGpW0gLRMukq8901ogIkc0B)|do{6l2g}Aa_twYWu17zmzC7BGgDj4Gf2eN5 z=fL(cDOHC4t;nFTZC4^|OeF^R@exEo*6N1OY1bIrIHYycyL55MryIu{&yVM>Io7s3 z4^}DrcJ=O-b2j=K0TNhi4KQSm>D5xe)3qoCP;UB8at1TkbOWDoMKD(+pp}J-J!Qm} zAT^CK4hApA5*W0%%97szXnvBQ1FR)C%s0HGnhZeUGEjqR0=L5A<-RN4N6H1<0d@-&V^hlPeO8~U(&BDMXN2ap=G)d;*@>JqaSPPF?uD|Z>F?MUMtIAi{Qe;4I zDDkN2s-l(f2K#W|T$?epDixNblI>Nuf|F8es{|EsO z2^hSX8{&607_{3nK;R&9&>cWvB;o$@Bn;7!EM5+OfVdF^Ms8p*i3tLauY`cC$SI6H zB;}x0KK2A=BM-+!qY)|fqk_PLP0T6v%DWavS?CZa9|ETUf}ftqsLc=Db8n8{$OaE} z?+g15gDrxHj`GTye^>J{l=32!=!F!QNiJi;1yCHiBV}E|dOHm-j9?_0N4{h@ConmK zO%5=a?B*#d6(mOm*}(5uPWbeh<+wsC{^&LA26Xa;1Tui!?vnw^rx^fng20ebJ_Q8+ z?PoG{GXwdVaf*ou($#pr{`04T)z4MR^ZMLq|NfVR7ae&Hs{1>RLFQWyuPbVJw%K02 zy&3TLd$nmh;6=OhN9dk6YIE0I$KKlRVjc&xO>OpiM+s!e>UxM=wRDsvXSg|Lys%O$ z15M+*!w_sWhtpEQ%!YY`+a4>}juyiF?agZEe>NpGsQR94#B#W&;wd9R;l&7|QbhKx#W7wHVFH0Bre1Fo2a{Kcg<30!&R}pqZ?6umFw` z&(ak2cEz*BAqn|l%0%A~6oqUk7-%9PyrJKtmxKJw`VIFUVW(Q2^2Lx%1{i^MY6#3U zlSno9$~BPG3ou9tt?3uOvw+!CEI5a8kg6$s?bGEc%!4Es1q`$uh+vhz^&z6&4 zdXoG+!RIsvs;-b&zDCT_04Pet6Hry+SqM2rv2z7`QFB4BMCO_PSLD;xAcG`jthuWR z4##qv2nsXU#qbO-fjm?Pa6x39TiHWZn*SHqqjWU(aJW|V4Fecm$2kMz0pKe>!#V4( zQoiKhT@e)KvG_bb=XeIl9KI7Z1_7#DYbIe3Q|eh*>qt$3vJqJ5id@iDExIvX%=iX$c&oq*|X_&Fp-BUgW(aJ`=u>M)uO}+s1+x^ZUwldqS^mC724> z-!*eQYyYzzRcsTJXqI{>nd(dTE4Gsz#B9HVI~R^dFgGQkYB#;jzBg6Q7nG3f4GT6FhLvxk}tRGO@L>Y1qqe7 zIrnkn3Px=Bq_WUQV|n%)0Brv;UJKEl822ZdM+DdE#IDw#g2nbX=el zjbJX0i|>RDokguHXrRdvPY0w*FAL}w6m%ZAkqeJ8rJgBXwNSZccUbDV0CylEOf~_6 z%!B5BGbYHv#>w|qD_e?;Rj~5Nya~!e2)kt;x|S1ZL)K?e6)ft8Vq4mbGk|Ouhppv|KJ<_mA9Jq4ID))4n7oaQovlhW8}JXQWq`K;hf)5PV_kv{ zczJ-WlviHyJ{n4bHwyAD$;?HcZr8%hrGzt5F*+HuC=dI;rLuUplw4o)9>ClMz>DkR zv#mbYWC*ML{pN8)MzBFOXfMb-qt29i22gEM&%7_+lX=D-5A{MlxUXvLz6z$bwj%+( zMgHe&$;oVc5($v&k_yYd4u4DN4y+dhVt}}|3--3PP+diOxK>~|ovow00L9TPU6Jmj zy!I4rQ`S@Vw_Y-x*1iaS@Jv(Fb(&w<1q~KDWfOhGd|nu3KdbW0hS56IL4p{qErRZ4 zCjo+!@jXicVEvMLc<&>48(*m6R|OMz3>&atNEboi77?zSmLTqE09F?Ruw^U!Tuh#TNRN_ZMp)1YDYs_JvqGk9ti#7lYd{Z#e!~RM1Ds{zziwI8Smj*i+ zpW_AlK>^k-M>?HX7de+@{H(Ijag33@+P3?TKVp!H!L<-j(0%!OGHcmGQUj4$pAOYw zk0Ijhw_hk{-93x|p0U{e_kU0VyZ!x7cXXNu$o#KgnWwn@Gy>Gc@PaH5qF(>}+odr0 z*=GCE?NvVpZ+?**Y14PY)w^}}roIWAyXj@@wN9gR|IhXkmKeRtq=gBK)fLW0Pgbf( zGcWnwR`X&GkAaa{3l?vD@852+p}S#lCn>REI3 z?t72)K7Yu(cgrd{swokz4kEYzbXUqKma^2i$aX8tXx>{eNAICV?){*%aiO_(Q6Dmg z)oK2$Z1uiN8_Pi3v!+yJtxhqoV47onnTIu$(xUFXiN+^9DwS*Cc&!X$vWztk9ggUN zu$sF@q^yN87L+|AzzV_MZ{;KL``3cdLq&Fe>|En&77qMr(HW^;VfVN)z5p}`iblYY^B^QjArlRsQiEC*xzevu z9XwtD;ItkvfR&Br(=3BgCIJQ2_SNoz|qZ@M0N3V#|b1kf9O+^Wiho4So{QgvPx8)}x# z+`)Ik&a`~m5`3U6Wo3e*QJszYD z73AzR&1C=a4KBx(g?)>&8-93=>38pxqI;3yXZDM)i^n`}8JNdCm4cNvJ$YqZ zqrJEntMlHF&lrL2ZEw$1j<^f~?in-geA{{62A^NkN{A|tv7Cy-6ncDOzDmu!?+1x? zt(W$razP1xS}7CNwNMTc2x_74Akxty&s_wDrjsYCgD-L^>vM&743lS;00IT2o4%4n zVg_Gga{mPY%n$iEkO|x^C7164^0((Ofg$e%CNN$o5Y1tr(5TDk%SQy$Vn31{%>2SC$$ZT=DQ9csmyMtzfnd}V z4<>TvVneC9H}XlRlo6bURgno?|MZ^s2=;1V9_&+ZERZ!@MGzPfU<9h$)1qL(1Qt2y zhtcPPeO&+g69L!o^mMd8u)zZe+>$x`<@oW~9RBlHN=;KP`&heRa}%F`l+)t+-7E(^ z+YfH9V)!3;GkVjD+9~!1z~6mu5kE@zyb+tb=w>LjD@!bEjy_A`g2M#a*hhXVa z9;k3REXVN915ijdLrNN~ zUpRGAUSQ|;zK5E;9m`qO@_J55Us*!2FsiVYYO`7Z;`om4B;-%iU&Z^~)w#OX(A&8q4xCib`2 zR9SxPOzxlmB1x+T0~N)Q8pxC`80RvD!1?#dIdNEc%zST&s4`i|1ytgqhMX%hdD_*7kDn8frWsLTPrq$0Dv2$@QdfIzdZ68DFJGnYk)BPx+};uBZVn} zV$HMeG-bujlHUuM76?=W{FQVSdJI_1AfGt_&NpPrH+?`;|7(F21dA6s{&d(du!4#c z8nkF_e`H<>xx@6Bkd7?-V2t&G>V{?L0e|tkj&6K1ftA6Fm(VzAT>{)9Z*K=c8qorA!twEbPR^A)x=1e)(ReAq0)gEc z%ESV_ZBGXD-lheSkH(^cMIV4L+614q3{57>m5f}B&m_flrD+ZQTq#=@k&~J$7$7Ye z!49&^DPro}I&>ln9l_h`Erv~%}(95eBx!-5|mX@3)NMF>6Y#Zgu3Lhw5m6psy zSJCO+>;YK}C>3y492~7OS$klP{z~a&l~4v4D-4YRKvJAX(6p9(!;%lzB`LqXZU_aK zMao)$Ivg)~Zl6ETUipxN4h&{EJK@YBJGYaZXJL3l2OBucWiRL;u2N24182plJwoER z06~H|oK@c0>WHo*0HD|IEYQ64f{wL4$FrPT9H#brr9s^$+uW+OG-UvR{*G*_>saXh z@LFGC{!|&AIyxX++N!GbZ6Hgr9Q=b=W(rztDU85_11 zCt~@&pX#k_7j-V0RHYSSfT;bB!AB-jBV)MFGzAXFb{V@i75RgDXKY*~H zd4!`6339!ZDt%!C01S}Y@&;2n6d+~vy+S6HekEo9UCRUzxnbLITx_?R&$jPtoDu{C z2)=lC!@Qh$HUJP24BlKxt{LD1ByM9n*SA7)0%H&o(QP6++0%Qz?Hl%#)>TF>+PG7h zX!$3>2&v#={=2jeyj*cjt^v`9S>K2hFP;Mc#0YLePz0X^O7`lrkN}TzfzRbk1;(6Y z-m%VJNmIhY6o$Qlu1Q{+bMnHK!7bib`96ZKdCJxdgZck(9eloiu`c8mu{FXK%z97X zb=zhpIQJy@wbir=P`psqY+^X~T55NE+O&|Sbsm|4OUnt2aktRtTl!i0n92wmh+z9S z?(ryHzv8(K0pg8F#usgbz%+o^WY})D2|(ugEAidq*=iM-r*t$(Zct(2bJueIySXIL}pXeB4xb}o|kqb#2fjw2~m0a)Sv zwHa40>V8q(dV6?Dfr2uaRYC(Fg>Tp~__EbKnYV{!3iEx{AZARhWe=$oNV$J&ht7a- zJ?r#(>;ZtaBCs|tRPF6TUW$+tc%y*JsUYx&d)MJ*Y~4^o*^O;9-4G`^=@t^q55k1) z#@8WWllMM?X^5b0RmQnF1-Q)tou;PqyL3sP1$&rd)DG;2BcU zB#UxH24QD6O)fW-I|o1A;QXd$_vBL^VX#x(?JaXC^IkC?C>Onz9KH5JGkhUlY|2en;-tpsU@VgnZSCmX(TQNlx*$_~ zS@#@@%wfD0#)`2Uj@5NfL9UcYq{G<@lczS8N9D6)xs!ao!UoUsouOdKOg+c#u!X(v zJI>6_vJ~(DQj%={%Gk*wQCfKXoOvE|c00)%XN6Fnv(4iMlBIoiV<;FUyLa4Ua|h?b zh*t4MAVi;$mX6?mcNoZ)KUdqPV!sK9U8%ptnPc3!ECY^l6T}ft@Lt)JWHxqPQTKe0 zBD3fZ-S&%`WxT_l9>m_57=U0!)-P$ON|c)(qt8J)=*vkxlSyNl>Py)N5=H1!aTHh2gS&(atnn2`iXPZ7A%;akYtl)s#QC zxZiWj9hPZ1X$i<8rzk)sl(|O=n{{-j+ny&|bGR;D6@A)Z2eXZXu+q1@=e5iYp{Rp% zmrGTfCI7omEM=371~6AMPimFg0M9i8BOsw}`Koms_{4O~1r;;o#TNRP?px}cF!<0V zVAks&rmkRza89>B6}07CZ<5sR)JIF6Ut{gd9BI#WNd0NYhPDKngDcZv->&D$ zlBJ@+)+C@i{tb}Vt_kpzlG5*PQ=VVs+zk-~$8`blqO8rACy|DBj^h)O&Ny%VRpun_ zu@n>r@QeDBX^+4TfYrJdQ4Stp_Cm%2fZq)RFS-IIP#-o_WA0WdV9l)4JyXM!BVAG; zEgn;6yMo~JoSwSK>w2q_=P7_70ly)4yh#!dJKgOWducSdJp^}C0+C~EEH*`;mmMc{ z^y%*@o?-V~t$CZem(p@2r?Tw(lRB!C?>pTqQpu+XOtL-3rS-L4Xr3E1@Ra+&tfJC| zs!+)B#Tb}iK^_49_;blIBXZc8No!>1vCQJ6(rpM{X1V^j-A8f z<7T+|uRk>R^^xm;eCO(S?_Bfm2pTsdKy5rG@4$v$3KRI0oZ_>+yrn>vYi>cl6MI!n z^i~&_OYM4{F!_~#)Gm5MHh0mtvDY+}&SPM<*I>2<6GjJ`XWq{&bUk70Z;Ga5%j^?CQ@YFz3se=?5^nOz=zp==yx7XrIV#cFm zRdNrDD*&&KWd4|BW*C3zVL9g9G$t(M^C&M$@32?jw*aGLG;S3b42AR0ol*9&dO25& zIp25qd#7yViVUGD0n|SAM;cj$Q=a$Hwc<`uaF@k^HD_Q=+qr>wYIf&`XCT}??>Lt@ z5<_v7{uc*aeW?zicMbWxN-Q?yHnkuH0TtAVU9g|a_Lm%;A}wm{HglSXkn>4fzU;|? z)uWd0IpqX|#OJ**QUTJzi4ULx`D#Tbw^3f;0UhWJ_q=D!SR9L{^?@-`W4lHu@t0aEZ>!=8!(q`AVQQu-y(R#o^3M;0I12h z#dQGYg6&JWWvzwR0YY$DeeE0vO_Rn=T`veaV_pIPD>-`Qx|qK(Zvp7Vx`Mq4^8bR- zxn?f#j>iBbM(_#FPtwqq{}-TgJRjh%1h@%9_Xf(7wFJxo*j=kkH0z}01NbFq2D#`b zmAQA;4jPz&djoq|*EQaICu+gT$xBl3i!t!226-=~_ zk|v~P&R`279L^_gs{m+c!K1;IVEkou^2NR=#P=Ei)3UX7>G|~xq-?t)cy-Es!60~G zsS?%F779qmX8y4A$oyeECIAH<=_G4Iy zlbBXI4$OcEPK(xD$O{g?#fu&$VJ-$i!O$kZx!Yy@)Q|N`n!WACdtYh(V8}Gzh|~q8 zg0X>oQpxBrwN$j0kElLuAn^~f%ZNVu{8jPUPL{o5}bi|v2@JOaSW*aOfFN$uvpejjyw725+c*#LpZ zN}}WbtJpUUn7}`TjQT6K6t*Zbect`?(8%b}6i1N;unf3gDO5qvJ=Uo=uh* zY~%76`CSSyNn>1F!h}U9 zj7VVzF9^mF^jL5Dvb|R}&YhG)y(3tNwgnIZkP!d67YJwe^Yi;%6saiZCG1;G z)BEnPTtdQNO%VcVZYTrcD@qZ|Pv$IDfH5#t#YXx|n5a$>NQ37v@tk zc#$hR9*erKAB3fhYf=Up*NDfh85GgV9_&UKy$j9_PE;E-hcCZ}%yaR*d?#|xHVk1@ z9^l-z@ea+-g);=WuM$d#%)bOgM)Uu?U?xNQpsn)JNt8hw@L z)|Zb0Aa<;c66S&a^8GCbtuU+## zg1~q|d1_pRys4+OO{F=75#<{@n>mF~l!HcrDX%aFKJMk|L}}}R1-$siYm$)*kQ^Xm zoWRJ$wWy10Te+ZWq)D(S6im#EMPkQV)QZ=fOk_f%4O0$`!G(LPlzZhbJO+wa1jIcy zagdY&C@h?L&Dpy?aKD$7s||z&`Q1J9@3J2dF$o|TxY z!6^P1fn>bAFbHG(vs3^4f$d5ep#-@4AHPWCCeC@TEU#rm&={vSfBdOs_`~<& zDgl9G-y$dQSe7@K$&j6HKYxj1;iZB#X6xC^@IBvNMU%bC$^QlI6@$KJKYACvA)CAE z+uFC7Qs+LO?X_BxKr?1)S4c0r?2N!~s~cekZdC%7pX%!nxAkzUo7{8LsiQ_me*qA~ zm}_kzX9+0V=EDYCMgegbiQy_agjHH`=tJ{aW*O4cRJ`>f)!b^ny;Se#+Cs}CORE)0 z#moUun)_m0PyD!Wjhyv9UXzz21TQ z&GDH&v%42r=Gv@lLkbKKmr$1+gBQ(lzPyHa#(FZV7Q)y`IfW~irHq~VYkih7?ZgR7 zV8Ytl9I!;MLvp1hr@NofMerS4Zl|K{@Sh@gvH-;k1(IrE7TQ?TymnxhGGF9cB}GFi z3m1DgB&Y%Gxn=ZWEN^c)cH8LB z*?f5*NZHFbI(ZvO0Eo23f{aywC362wNt#dd*m~fgB7TfovC6~EBaBSKq`QE|UE1_)#Xcv%IQWN;JE}E)_$TCj5%+T& z@f)18A@D08Gr(Ygyx6B~zKYzl0K&Hfc`@d}1UB|9f^;{fIcjHp>*c2%Q>Q%IE`h?ncp$kxQ_aOQe|1toDfVRH!a3); zd-BE(X1yffltGR@k99d#!FvG0TM2$h%W;^fZi*us%Nv2Ou{0^e8wl$dwA$MWgb5_I zZB18&9sDUQ=}zm!gCxMfRVkR1_s)5_hmni{fL&@`0;jhN7Eql70+R`>a?tUT_2br6 z@xk3Y@}Idzt5VL8gQk@88PRWDoLoYjM9^W?x)BNIbE5ftesTj6n`6RSR;1SZcyAS$ zmKNDK^=o=boenz(oz`AWDRTHqsr&4yGF>8&CKu`%RlS#b;~@vB`93}{>`kY z2%nPpklqV3*Xcb60N)V^4v6e)g(uvmzbJl-&Pew4C6pPd+m0&)1JYc;3 z^ntl~!2}K}k#X`hBA5$#>~KmDh8JmPN?b!qdIXq_mzDY-zq&4Nnmgo1K6VPC#{T&$ z`=tGQTp4JODsBo08jl2l!49u~`Y0eU=b+gpvlG^X*-o?WxvRddU3*HMAI;g`l9>|$3|YvYZQ;OeGNae)JMTgPLCXDYnm#a-juCK@0CJ-Y z+w#@ady7}5V-jv2yoPO+xk3xQit*T58N%XVhO?!~hlc*mcs*6}>%vLbpy?CC zrWNO{Fp}FmFos=~{O;yKoM+}q%nuwwC0okpU&v}xV0B?&hxRWq`S@_df!}G4Nn>g! zHj))__4{!d(8QR5R5X}r05kw;4jJn^M3On{#n!q zb1v=!)r8{8=0SoWEQk1tz_2LMU~h$UP1S<|NGcf(W-tQCwBfjyq169cau5f@0rUYP z*j=ey`%3miHl|Z=BQLAYePn}jkJzPgAeU5e=L5^v)bFDEu5Hh+?6X1!poqx3u*iXS4dpDY3ksMeU_D9`J!K0X2o|nk^6S3E$|}(!2e@hO|+cu z_O_6NjsWLoIPYAHD^uo=NPd{Qvj7JyT(z3+3hV;pDxJ%Hd_ z*^mQtgbcIEN}My)5D^Fv7r-ij(o?RXuqHcGoST$;-nPk~miFJyCD~$J4-xZ}K^_KuCcmUgLoX{{gU7d;Q?z`K zDjsUy%fhE~L{2*N9CJHmsgs2HhbsYY1xSRmdZdi90>6}sR%t*mwM6DwSh+`m8AC$# zhH8~tmbSGvXa$UItliF^ad_=oq>@eYn;@LYNGqG5O#%1QzSC2-xypHE>2O{20pBd6 zC_V@Qca=SA45)e1eWNDh$?{P$N3%+c;wR@8GR;JO6hNziUc+m=qybzJfJ0=1DbEb4 zUPv?}_a*?66pi5~Ho0G1noQLQzATYLQ*&hkAlW`Xk}<23lDpOeLeKy~Jd0X_FOVzN z2qX!`?c1q6l|VP07b({aFb67!7#k75!F^995uM5`uLVF$0ce0uB2B%KT*Y8u5Bhq_ zvU45e-YLlqCL?9RYXPJ;!l38#vDx<9V&HF_;z`-5;~t-;v4sh6nmjy#VF|AC#%^^2 z#s$mk*+?K5WQ`5jZVlx2ns>d;g*~^XCRx@|58*gpsIepo=++`d;x$0TBzVc(Rd%IG z;aBN10TnyF=g$6NJy+JK{N4)F+YQ>-54H( zy;^}{$oP|KuKC-oT^BYNJI|oIR?}UU;Btf9!SNY1+4@y{KCx#ayEm3w-$dXSIeC$a z5BYpS!ix8Y=NO;k`Wwx`jo=E*D`5QM`Vwff<@e26u%|2qy<|NpjgNc8oTu$ln`#2s z%nQ-a1<=d9zQ&;LLS~Yd?MPt0lJ%(aIXEfE*kcLonmt$kv3Kdt<5pnU$&!Or(C28RWgbB&{8HKmTe2jS!K0I-xm0|?yR zEjVaug1{%{1V(itC%25Zq4hB-ZAAq$f z%HUkX3m-N@h-6ua3=x^e02z{*Gm7@WVOxj>Y(wpO_1~`!j;8UE@Z9xG?UuJagi5ZU7+NjSNtLbKn<%zzUom zt$Q2~h+O>b7uWpf54P`75Ev1`|NPZ8fBZF$p$lO8myZN>oB#ZI{28DsTHU8vR{?WVY4cOd8-_Bk^$l+|Wy?#??CYi34Fs#@y9m}oF} zl)3mU2IGC{+vR_jE0vwDEO?I=MoVRE0B zjU_TL!J>PA&pI$r1nlJKBLyJc1IZ>FAKqHLQbr>g-I6z%Ab66db{B)AJ0OJuii=wT zL@{?US1`yZ2FOfQW}2S~^htmM0O6WBgM;+7%2TJc&nEK_rYS$Qp-6Ij%Lz+)+#9m8 zWoiu4{*bO-Zo`#puY>H4N$=UkvMt6Bd_#tnUv%B}>n9?z1~^s@c}B5c=Xn%nyl&bpKE`J%Q?5y(}x zvw)5Q^ookN2D1se*z51IZ8Ph%EL#;uZiFFQDTxd1u>m{WB=s#Az!z8cn(rI{u9sZ8 zmcKc*1%e(R_3R`kw#g}DzPpL|3BIQkJ_9}+`wgGN!1!%7FE1GM%UejecW(VfWTz4A za|5~Ocn;?8jpg};3^W2-?v@-QOlwg{N8>sGg|R0^z3@5i)%FNp8OZ_;DrU8 zp{xRo)i8!|ky;~70dD%ej|HDrsx-j55vVQ-488z^GtsYPEnj9nKUQ9H7T1&_&+KS> z-{~#GIR405JgRoyr=cvcozLYvd(ZJIMP8i<0PFq1AP3#vN+d{@gLdOK6#51PrfjQJ ze*noIAmJ%FQoVw}H}OG@=K%zEr^-R=EDc#|GIxUjwUVFsf{kN2y5mC8#YxC%^bdeV zg3L{Km5tz}#*h$y`Y6V=S>~bjbI0u(^YA-Q;YB}^q zEGVn&Zg1tq0uL*I%C8S16>SpOsb1w2d4geM6G2xWH|GFS!H6Z3wgksdx}HixV~hb% z-kg}z7K=YXX-wLbTz)R^ZeiFk{Pwf!u*r_#@$+TK7^=Wpj&*H*|0DMQ_DDJLIlPO< z|N4__BM962)l^Ksb;VJLDa;Y zFJz@_1;_!iJM}R*rxL#^WSHwFESIgW8dFjyV@p-3?UQm^H*WXD(h|1vRS@M4rl^XP=JFh zYb$e$Nwd?&x)Tn3o=(^KIjv;?;6dsjBe0N14#Tl@p7nqS`w#nj!=REOTrlhp00t2X;|i_g*Z^ z7WV)UZ|BG_W!_R_(aQ6`NWfmDAh?WwotS-r%uMV(Fhmiw(rK=Z1Qc1A!9z)DGf&{Ezxbq2cH&D9%Def&dDJTucqa3CfK>!1o!cKw|DFqGIzY}&iSj6pitIa6wva&qE+J{^h z0Q@2dX5i-*)f35QTrY`gIoop*kMCLmeK$>#w@>SdwX55GboQ>fyMxK?wSD`|eTO~s z-Bebh9X>r2d7uawtSom8R5ZUo_xY+M#C>eg;Jy$h1S1+YL}OV3HB#8*YgES--*BouH^G zXBWvqa}dSGzY!*|51oL(o946zP$qDQATZwA$OJxB##t8$N!jJPoP_4bXhf}b-R)PwnqVcV5}!FU4j&wyf$BtaX8xLBg!LZcGW zjRh3=>&|Rt^>q_RHgMcHfwfB82qTzm-EHHhFi21P4{@XT{yp!#`|FG5<2`SzA3P@mu&i z>RKGB3p)M0NJKMlSDT&T`+UdxS)~#FB0uLfH?BClx{__P*Ng0W&R^CAugGLjJA&6H zE!Y~X#kn0I`_OfhbFIp9+$KlOSnM_^)2FC!>A^h3FVypV3aCjIU@h%ZX**N)(z(Q_ zHl~ruI#ZgiL}y;{kbJWK{#yH>H{RqIFhBu%0k8lt1ki#0!A+ymxSO1_H9JACcYlQs z65|4ZB$=YOw|q9*^_r|XN}V$3d@5J?zPdOmKl-#RUvQR)eo~3(>ly%PlXNE#uoWrq zF*deUhI69?2;30pVvb^EiuYv0ZK=D!c9sZ&TQ^cR{JofOS@wqIAG+^J0oL@X&iyNS zHY%v=t>jtZ^8s*tqcXVcldZ@PH(l=dtv|kMAqbr9%jA`1fwT{ooFE&ek==6gP}fU#r4EwOC57+xQ*(i&DlSiJww5_`)S? zODg68fW?|?7|#J%yL|qAu3fznW;@Qq^&2Jl5m>zyhB+9wTY}7uIwih+j1<#||M`L`Z(rPU-^7&HR@Wa^Mg*F5ZTDg|Y`E=xrRr+eC> z{yt196&-A|tQTFVvO1Kq^K~U^2gb_9ctabsou)A< z2(U7ArU8ScnL{q0d(a4h|1bZK|1(sNk8U(@o31K92m;>;6IcLT-N=l&lx~o^xF~g$ zg9Zq^k!zd;0>_CgP9_~Ag~29%(t4Z%0&BJ73sQ&xl}Jkm$={2-rQT1{87u@76WE`z z?HqG0#m^crk2k`M9CG9*d?;StdNZN?UTHW6SEE{T@?tY$N!g7Rj0pmuAKE3!c7*(b zb+zdYWmN1N0ILLoC9^i=hy$7C&E?|(FNJq2=RbaofbfFX28%ae`;_~OlNBQUBKQfg zy8HTYa{VX=jVRSmpB*&<-1A^Ar#5U#{`re*0bpYu8Bt{Q(|cFNO+@pbaR6=gUYNt} zzyFl+z@ne2n^#6}99NK#9uER*{^3{_BS-)GoO6rsL^gb9cF9| z^&5YZ66S7uGd6eC>$9n!^0|*^`#w$H$12Ughd-NjboiFNG;X%YL--7T`YdA|+j^lL??Q zrGobXzk~D0)~)0KfT1YM%wAQWnLW&x;I00aTTZ@~ z`)(8zHCNPeGj^j%EQ?&XfRrT>YP;N-hJZO_t-(*yG)i*tp6vSwR75``^7Vr0hi76F{frIr^%fxg z$3qM zKm&9DP!kk{AC@^8WD#Rd)6IqeA#(|v`h?5RKbhuMKq`E<0jHSN_jQXu^1XmcS6EZL z+u4&0`|J2H%KM45PT2kg!EZ~MyYQ@vq_eC!=m$Kn#^4s#ahKep*>x;`*c!Hke|RZl zuPx8jNu1!F2F}==kffe#Ve8_1fW-p*cD(lL-7Uut)(XsF_?)uNsyaYvX8jz1@Cv{$ z0#NMpSQY{_Zs6x#2p+P1GH|)&cVP1x6B%Ia`s+H)8Io&wMew-NT+0IBb_AVUmH#$H z0+hXiOg0r(yi+=;s;qQ6-djmMVe-&>)nByt3RZRboiUNU?iq6by8hDctDZVcD$eF% zms!SXmG5lt6p~8Hu!^C#$LW7oR%Hq+QJ%C9by@jEf=pd+n`O#41lWyL?eac#$~s!T zoU^{cyARsE0C~N>>jVkB>}|)w_?_u<&walRNK->id;6B{fxyqEZDidl$HD|QPy!16 zpZ~}I40W7Ps<;?>O|m}zYVxC$gU;Zq8@Gt-9fB3x-rw+}8gj2&1;NHv2RC+i6T#>u z&#B}608I6#Ttn|EAYv%iB_OFd_WaPJe|%Cl@C2q$K+p#y#ECgT&OnnlJ4C8LBATHA z20*#DZ{@~r$QISf8FJY^PR_`0E7`O)q81Yb64C<<#_uK{eKs&xPFY8)jk*{RjF&>Z zBq2v|T)e_50S`MDmQ&&F04NFuDqq0B;*I0&wTNwaqF);A)&4 zv@Lwtr2P7`Yd`%xK40%|KlA!60PiE^pk@oOdNI%Z{#S1EBmEB0xQ^$52^_{mn%Y<* zfc(x?DDUsDuCu;4cQ^i8Y&f2*{bum@`Zjqp?Y!b0`20t=>yOWqN*MT=_I^IwtFpe! zbndFxXxDhk=YF2;`!jjxtSGZrE4!h~P7W_l2TCDV5*goY8&`ssbQIPitp;GI0qzMP zDIMd)`Qugk3_;ahNUYqxL(L~=h~>= zeo%h{t2digC88CC413zlE2~vOa{$NUfOE`qOg4}^=qv2i-5c<`QU|2AJziN;& z0INA<4SaR-xdpeMl+W2Kvlzct!aUB;icbz`NL$K%s3{xUSa3-y(B(GKU+I{ZJlk>1 zCe%=I# z^Q_P6{W}6Z_?xU?M^ z;2Bilkt@Mlmq88tkC(bhE@5GL8h~YUC)s;o(nCf%)m3GW zO%B=8EvTh_2;*LPFS);ccCG1W-}~Tj>tXw)Qu^D*y-7JszGG|mCBai+uZFaCkhzZe z0RN28QY_?o|K_BVHK#Hq;E{gPIRc>#rJ6gJQc_?qRcZcgkdV622Yw+jy^>tJ=<9Wy zm+*`**b6ev5&T7er#!#$K7`%7;O;PXp1^ zr=I$>H+S0FDf2i3TCg9jWv#Wm!6J1m{%y8*HyABpWN@D=^5|+GYiLUvT|ot0x+2&v z$&Tw-3HoeGy__qh$S<8+hL!+Kt7iz>Mv|L1?R~k&sI(tC-E-(S;R-U*X^$iQ$UshS z3zA_GJ~4uOOVEh*XjFgteD73?sC6HoRFf(yA4#C3_T^fZCsn;Vf; zj^Lwf&j>p3nim+kaR2=Kgz+l%s6Gl4IDGoNlPlq1-4PuYfoB4=>-F(-u<-xmm)Lhr ztm7v)rf&65A6*sOetS$l+NEldJzT$k@0!0(kjBv(5HBoBFii(8JHB#{dcX z3R;mF3q~x#NGDPH_B{bmI818K^N}+)0ekA0BJisKv2!N(+z$Nt@(yc}_>gWUGjH3e zgmmcDJMGDx$UHMo8*+G=-15Ghl0N^kpaikpAC3_)I*6>a^Sk@w!jror^Gq#qte#6juXjaV;}brhv&TGWz$rZ%2;R6o}gAEY!;JuPL9myuD#dv{SNO^ zmGrwfjOz^g8o&UPKy1I+iVQJxeRd-xuqQREr?UO3N^>b^2Wv+e%xk))R$^Kfe1q?7CpeFj8=ly&0Nvu)CD`@|Sy@XZm`}aLG9c_yyR-b;RT_f;+(1?UyR)@1 z2vFP|zMYHfG`wKBzIe&GOSU8>)`e9spDmNjE+wNGfYs)_!WtyfseEpC#WaVLx5G(= z`-A>9TW2_j>bl9?yO?t|^#(p8`?P5is4l@M4S~sSj}KVZa-SL4YPG5h_=T|RIi4X4 zZGmM)T`L85CHSJ1@utt4vwc+P$ zKGXahI0^w|k-R5R3^`}aHB24S$XtiqzyPh|Im=rxpBG$Hwy_KVzi0~qtCu{VU^xR5 z1i;-|9%CnCm%(sg{;y=r8ep10->p3F<=FH^8-=2eDW9uqAOw1`A51{LfcY5zWX~%Y zT?R=717eH4Lg=0cfbIHa$NM6XFz;h>Af@eV7`PQ&VhRf|+;M*+pLHpv%bvm21Ba)u za_i3!w7Swj&RlmM2jI1px-($Z`a)krCNnKC=z9(MhF;$hT<(9_*Lv=0Eig$S!U=#_ zpZ969$M$4OS3a+{#&wiwASC=@g7Sm^zy0t3zW~q`6GIhmuzJ{J_U-7qkROxCLC1%_ zeJ8RgXURdMVd6vI0Z7IscHKlk`Y}rgpKwoXXDo09sEj zwL-dCa|d_ro?Lr_;}w4*c-uUaPw(8J1;IO6RMb5_WOGsBM`?q8n zhkZ=r;f0)lu5g0Z3u$9vf$04z8+R1L&-dp#TyvrKWo!ZpW5IFUn#1u(9rxb56hFf)udqws3Z7* zfQAA@3MLy9%c;X#SdEhJ75@mBr*;jlhbz8#W0rE!b;^@#^CZ9o01seih9py|57jm5 z8bof@fJrce0dl}uPY~qGSC!@7Ba1(gRm?LQ0hZ{80wB%6oOu76&kqDkreq@ZOq&8XST$!FD7NiyWj6CN(>~Oth7omPYM&%7cSYp}B(z)T}iZ z>UvWIp9Dok^s2>lf9}3`A0RxO(9m zoKG^wQU|>Q{s?;>wf??iU!6zUo~=d+_zl179gx;zpVT8Hr>p?4Sf8B&zRuPQ1&*A~ zi8dcvzGbdKs=^vd-{SCIb)goVK+0V}CK@R%oJ(LR*R`&5zMNYt>9_iJ$@x4l4Gx&VU#B4hd3Jgha(Z%2kO zWS}Yk4pwhGr%}~d1#x12)JW72tQfmfYF|%Jm*`3_xE?abmz3 zueol7O|4S<>6tOiN86YH@@kO+>%0b)xwHcK6yU@?Wg}pHl4rJYT7vX`&r)}A4_SO) z?t^;Q(oyL1g{`iV!lE3?gV`at6yRn-jR@W=t7JgurSr$2rPMGMG z1YDN+adq*Vsy@!@<1B!+D)RI?Vc_!7^n3>>yI~3-IPGa|U+Eq9_hcrghyetRRy(ZZ z3(61vfBnDze?o|p6+vL^n}fYpWNGQshY5u%8Qt0UM9iRu+Zotg{EEg=WphMb>u;G9_+sJj(M(Qt2A=HgAV$U(u9BH$8d!Fjh_ zienV9rQ4>>vXKK%S!Kts1X#kBd)svCu{`@&0028)&fYg^5$n>>Ba4PUUm%D_<` z+vKQ&fStWu#KTj2709{I;LsvSi+Ve07hw)}>G(s=8*@6@?`#V%vfX62`k)TTpfcU9 zfI`9AIgENe$e^#XO}tMsebu7OLFN+ho$jGE+Q_L6ltz*V3U@m>*l|fyTC7AN? zR+a0a&I%le6myqAUN|-_&#mPgHYl$LF!){OOGwxKfmV@2?NEG_9=G&CrR?x3F$URZ zaKhU)bm_(&d08j+>&g5hU@$;v z2dlG@poH#880rE#bpz?;-TCU=w`OaS1U{CH9?Ess3i28-B!L7b7c6<07YU@ZOW7Q5 zY{<|ynuA;ebhb?by(xX$30RscS2*fY{_10Mwfc|!4jh-)6<=rRd`dJc&@1;>r|(5# zU!{ISDPOB92(9M5ZzM&!JBx*epP^GGL!Jsog?wiCq}9j;OE6 zDO2fSn_0o!FRfM_^LW12@fq(_Wf1`=0C)kWV%!1z#Whj>3bM|N1)mMbJ)=B;$19yT zQ4T&w8<=D?u0w^H$2FP7C}Tlz`BoK0oa7`2_zbye)=i|IvHlZqMNrCG^8|B0stPMh zlZ4KFCqV}dgAo~!7;?^4+ryX~zk&CQrL0}tfEIHNp_NX92+6K)`^pS5L|v9QNp*VI+o&r6U^nSWNUK(!w-a9a&Z$js$3CCRyS$-a9_ z_h5uA3oP>@HJ(O36@NszCrMiKl=CLv{ag5cPhq^}+{HoX`dE)np1E!~4Nb5h_3NPO zMU|}!D6nEbZQCx5NsA6Raf=!O;Q#G^1ckg^gB-kgX`;Iun;dkkA7qoO zQy7dr5co!!!0XciXs_Zyf#RU(H;3_Vn*r0V-B*8X45p?YtHcTJiQ_i{j@|C%P$LI9T1{N@Y*%kon zdNcAY1&{%H!twLhNDvrPNjwK*6LQe*IgnJrY=Xf5{8eO{kz090-Rhrz;&~0qXm=e_ z!{fOmV=_nXVZ49>JU&TYTiXM9TRyz!!qmq8?Rx40c_Vsto5A02YgcQYEBEW0w^s=M z!sc#!b2fL`+qD_|oo%*fOy8pkLc)3OkY9G|N>>zIE2|sG;vuTMAvj#Rmn!7TU5V@~ zK)*&ELOow;a0FUwm2ie+Ths3D`Mo;m77E_ADtmlLf?4vjdS$tK<_2p!xxU{$JcA{* zRXOUh(v?zYVauY;aow(wYcy?lI#}YBwOtDk zW1y$WMpMQxImVqE4+4dR*otFYrTCUAova|8F?_{s&|O^ymd@8Y=bWq-IX_}@(4q#+ zrz=j$&}N`FC=1z`Jqa{0r@oulf~#1sVRy%e0Tvv?ln$>G(@~^Rg|*ggL;{tpIAaT6 zQ8sq05fHe&A!`m&y%>)o6)m!)kVXw>_+?Htv?D=jy=#z zJNliJjptEv6+cPt+V=YWWb(NLi7?DeX80NpbwPV&ZdOP%gJBuRE4L0{V+IA+7gy!_4(n>5vI|Mpnrk|O ziCW3cEfUu<2FO6QAR}9Y!huE~tk=a>#F<|{o#I`dFS#G62!NVYbgS%mR|FB5QL-EC zU?`a2oMLPQZG)w%9(0siwj8^{eg(h_CN1U{V*>-oy#XK`$Kf{m)VIjz8|y&Df_IX$ z7eO-XFT(7_`C$Em*^Bj=We~XSRO)#}NoRidwBbLnivc_f@Oz_u<)}8&@E95MWc#9R z;CeJ-lhzGMd%&qN~2yWB(!bX&^U5(a9;G0JA_x}*@&snSVjfj_R_Z^OR)mR3HG zDWzYeuX3Zl#2)M>xuoX3nA z)w+oCjC}4#?(#-087Yub-U%oXt+{$Fhcf;VYHJJig46S?JX5}1HI8%ZFJ|A6j>Hef zVzy4zkQ5kC|9RFF0M^17C90}Km&o`JCOpXVY3()53qEdY0FRXtlG-W z9Km;#a3(m9h2qPjNJF3bBEv-*xq*NA$iKSZ{}xH;6AfS~Wsn~LOh2A*qJqG2k_Aim zc%TD!Ys?1>)@_4)y<>`jWXEs6xCZ%v!J^g)?m4R?IF8)I?eBk%W&-nmetPffJFucZ zQGWUqlSL|C1NkQa1Y>?dG%m(e`4Tju{)Y>BkqPAd`u#{Yc@w=*-+oti{c$?Fgt`0P zq|M#-{n(*rb?)QYW^>7Lz+AI&f4be4lFpJhjycgPm44Iwvq3#%c%Ou0Y_Svv1LcbC zol(6?bVw_p%K%Z8WR~mXdg$wbTdhP&nUU+;HswVt>&zdln>eT7_<^s9l56d5uC$VQ zw4n3O97rf51A%)QNKcddK+fZ;)>pwGENRQ1d+`0xJZkZtDoQYlqsnXYu99(lT%s*| z>Wrbm{=vt!^d$l5Msl`U+wB9w-NCA6XOc)psspgjEL(IkL3WkN=KE%s-9s0|&AY^e zDc(8A*eP-e!zoEOhR-J^21+Z=_SSMts;|rBoUM~GOU2Fh+N|&xTh2rRdM0^{oV=Q= z(HMaYa!~eV0)&fa$^fC4s=tBPD`f{;4s1%5B3CYgY`SojI+atAcwQ`E(rTna=+|Hm!lsTH_sqhD=JR6N#OjM>^XcXMy5WM3g?F#>b8(pH8n8k5wUMD#*)G8^)#>q@6UFJ+=lmBMfxJ#ILR-;!x_ z*!DFu;l1t2DuV-^?Uj9kje@eEMRmsdB4i{=z{!c~nbaUEO9QhY8- zxf5>!dwG|=ylFA7cCZy~+6?X>~` zE(+@2MNnlW4@UJBAn^9^47Rtz@}nmQ9UpwZIb9AqkO_QC;7R15+ta`_z7WKJ_bb=k z$Qxos*6v0c^_&i}wt$oY07gu-Xz%!v;^QWebu459zPZ^9g~=3~7P5vlr>`!o*Qe*AHp4~_AaJ~o?$6J$?vF0L1s_|242;B!)=wWrzWC{JXY+N? z@XY)gL14U${r&m)J>a^KaRA#EFD76Qx1Bo%I0DSYJ(8XKG!B@pfBrxT@HPU+ff2Ar z?um8t1nL*R{lwhEWJWjb(faLHSQx?e#}6zQ`Gq0N6EqUnhmd64M%xVjz8^T> z!vJ5ErQ6F<>wQn|neoG5SGX)YEWQ$xL6-8Edu=PSdBNMueXg@GgjE{a2L(Kpc{4yC zlQYH%(-(E|dJfB>1J~q>`?G>MQL4&inPVr>^Np2PddS?+yPKLp9EqBj*j~l59J3=! zDfzhfc392{NQb@xvtE^}O@5kriwh;CQDAI-ombYC<|1BZCpwF!JhCttT9uEKy1VD= zKB8=U6EjAQ$SW!XR3$)jT@2{%RBBonJZ+OD7R_N<3`M8S_cqL5;t=s~=tf6a@}MU; zCv~Vu#x4j>FsCS;^y04qz)JS5fm$km8}@)MSFb+nxguBrb{obubM=B1`=o%10X0+B zt+*DSp;#{SZ6Y06e8$lx0HevwWlr$!D&^BZOt9!)q_Sf_p?@}CzDf?#l9@PVznDW@ z>*94zp|3Yd>~>duTr6mY^4#xkrQHFFM8K?Le$hQr(RQx8%!ab#DS$^=vtS5gJW_T! zz4hprHr^!AhA(7PM^Fmqvkb%Z`kbwpui(tTbJo58mj0404 zC`{St_}MC+gSt`D88{F2knuA}I-|O{K0skyv*KKJ%drXT2tKdLB*s`>-ekrvA%;#E zzbOwe{K{YyDFEXOaA_&X~Dat`VUoM9{7VCfg=3E56TgX?Bs9zOdCaRC`T>GED5|DcA9Lhn* zjY#ufe+Zzj^*v^ko(4#b3H#4j9-h~Ny5nU8lH-tu?vmVgan0B85DHEj|>pz4ZwP4lIB5#h=gLkU3fHui>``%lU3h{U~I# zEeLK95XR5tQl;UyS@ss-aGB!m#m0;}Vgb6{O5Rv7%m91!R0+LFaqFU7=PQxO{}BjIVU&`a2Rte@*ZoW z2xz#2Qhqnk=T+7%eliG4Vi@JoR8=$hvfnb$GWBFMB`;o_uwU=7m^N7o9D7Lg| zKUd3seMq`D5ti2EqM3!X?d|hV!B&nQ>IIONePv*s42XrP8oTUq3-g+t90>?LqYkBV0P9c{64g%IAUI{RyYzf$9rgggyt4ctgExYjy!gWz zOkllMcMC8%KKLpt?a#=?8sY@jzQ5(~HNe%c=gBxDM=Ti50h0mh^Y!Vh`V6k>IEjN6 z4xRhB&>}A{8Nq918^3~FCc75$L(v0=?cuLnp#`9f;Y#xCV&TI5R(70oDeNMJLkHEu z>I9gxO`t_Xl=yHsQqL)k{P~*l&|sZ{$<4(RpeUq#@$b3ZwIhu$@0g(Cm;fUfOjYKH z`25v{FJI4Q12d=ZFF(nq;Xi+#KDIEC|MD|dS+a@MYcuY=UwIxg6 zIIfrz4M07Z<^|W$v!xI7rAe}JEIsvN}%vv~bw(CZOn+#lW>bzgdyIvE4;nw!`na;~xv;bZ4s@H5J zukDZ-Og{lwv8#$#X1+F)L<_rKH3G2)d^)*qw?~>WZ)Y>(mc9?ZRw{#OH@dw5q{V5) z9Jk7JFs8usGS80tbvjgHUC~DJs;jxT8k3oJ&jQbO59Wh{(@L1IF0+baJ%s7&()-6z zUzPT|xqA{&R(Z`;CWle93zCN0Hc9xM%gh@xcFk(`i{z3^d4w%zTM%}3Fu>Os8mw4I z?9FLhbK`EJ1Ybk)i1}2Hd~E-`%6?7G`+N*Qz^blxZ^WL%O8qHzeCS03xWkrZ7sbsI z`t23O5iYW(dQ7Km`%ZmRp&MS(u6*EGyZ&qHxn^?VWIL{w1X~GiIbn>6^zE9!Kw<}% zQ72csFP&5IeB*hzxgk(e!5^r(D*>*6(dUvxGw*1^#+EveWxo=3E?9aTKLA|-?tt)c zfSr1_6^?%9(~NxrSy%w#L0Np;&tKvk-?*Vn@}y>um(O{p*}Sa;yCi0?pR&zU(b5De z&&=GxNZ+=Uu?c1(#wCIHv}Ww~!6k3PVOXK!L$8txmF7`qZdgjMM}OkYQsuOzPek&z z(|p1$>mC%KbfH*l4N0)ydp_hMBj*szbo=ckJy*x-kiPe2X3;@^`C=U`P%-B0RYtGK z##d?aBuES3G0p>N-Yx^5iVDaUq!0AaX9?NkT0q}+E8`m1GIzd7`bu8jJIPy43FgPN z{t75-lFn_M8*-2c0pSQ3V@(6NYYbfE3dVQ5-g?bEzZer3=K}oJtjG526Tw@`K;v3a zO7*f%f$__Lm{{kfo`?Mk4xrTYqvTe{+J*B`k0l9PIe-k$^9F$x3|i=1xsIZ3z$C7y zQj^zX2ALsH59@K3P5(`>p-mK0?q#Y`G=zNi;~PtDESlqp~I88{yNHqO$%TKk6Ut}pktUL>L$d$+j4 z2B(+<2rVrXjCNhBU>7Q7Cg&cTEKP)tja-L7_O>6?0nFfmMD+mxI9)V09Fl_r1jeKW zIp~ebte#l+?%w2}ok%%vw;5C$(cGpNhCxqNY{xOt=`G$jP$LmFR-eVpX{RFPtc zuENGA4o2qR#birH@FufoUwb~?-bA!J&E!czcU*|dS=5pr8TU-)uqIa0mmcC@)C`LY z7B;~Q(+C!-aiHvLneA4q0ti;dGagjrp#=~;h$=eUFiCuP@2ZdYoIoLQ+ z0GP{T40)8RyF1tX@o6+;y1KuMK<+!&{PlUXgmkJSB4?Rr*)tDu(3iAP7V_pJT~B4E zYbX~$k_G*ZO%(HOTQuy1FJP(QS3IY@1}mHAq}|iiC#3J(4mI?3x3GR+anBt%ck`>Y zxof^(+czzT!S{3j&o*1%_-aLPvevv@vR5_(@*O#~^MF0o6*g#AXxhe}5anAs7ab-tey*sI*JlxxlzVPgy(^QF@(F^avh z3+x;LXu}Y21G7b0uS+=KeWxIrfM=@t* zmfseqkmmN?Hkz~3xfDqK+@45}VQ{gtIxZBP76_2e%@7Fahc-(npS;iUc|;h(nuwm}K5v2e3TDN@u;bHRqHSfr#32N0K4jx;DOdHxDb(UGRU4eL*J z+G7OP3dBNsl`_$>4oRZfWUO62Z`!KJyaQJ5>b)qG;np`_AB44M`9Y@wM0SZowk*dcr zmNyp97W;Z5QqEnJ@=sdrE+b8NuJsa#`oBO*bl_M1LGFw;8_DuD~xWH zfo5>ZtpLAY9yvc^Z9@PV^8Dg{AR$eO=vXm;s<-@nL68=oV-Ez7dlh}0*ni-D0p23W z1oZ%07vL^{TkZ)p2Qcc1=K;X(LURCPe+s~uKr?`B%vodw3u9P%M1nY)i2X1Za47Qo z)>3x>zxATd`xgA4frzc94zT^P>}A5CzyzOj1}6z^?~7$$eyNqo&34uOrag)N82GE3 z5{b>q63m>VG%zkP!PA;7?O=gj-21w`nHn?dFE(Gai3=&95p@wD-}N_K&J`f6+)EcS z8+Q2ae_oX=|FDz!7V~{&z`4ym0)QqqtaE98n!`k_CoL?9UNQ03!3L1oLeM`t)EYZyPtwfZ$sn>l@<20GVjMd;o05#0@~WYh7^u zWggnA+wfJz3lPkNRCSV=E`ee`FWC4r5xm?eFor0-$@<_lqdYWZEdU6kzfcbV!B}hn zC{9o(59y)^Qu=pyy!S4Gq5+`jscc|-@A>Hi<&Oczro6yoH$RA22Iz^GK%DQ#JdJV0 z#!W!=+s^`G13VrB0>|fI@sFQf8$oZ#Bag8f_Xhd*2yllnd76VrNFy(B^XK0J;GbgH zMEvwVg0}An)}pRqb40pl-@O-`F}4>XEbm2f4cS@YQ@y*)Yb>Fw0>g<|rwjbHdd9_@L+$81fiU4LjPb)Yi<9ipFrEtC^ ze@t*m${Bx9a=8r|v{3MvGRw<4%RSrmRT7%-AC<^4!{Ndlh>+83_5@OU$uA7hw_Zw; zTgeIBr5wctQtZruc1Y@ZFN4+F4=IP|0c2K*XRxBXBWg)>->J-VtrE%t(n>wsW6Dqk z#%Ge*sJrATwz}xGn!ZHdsL9Vu-wDfCzwL-y|IAAdFwT&tO6Qdf(pc;FOFO~`JFlDa{jh7uY3K7&&##342qz$RS>RxTvcV(lYtg>og9OF4y!sjv=dkpLSlsm zWe(>)Z4;vys&1_U#yjt=ugH@{01MKe5fC85QB~dmG60Ba*TNnPWhY*%{@Og8&u&*_ zisDQi{EW;!n(5l3g9!Cre$D5r%D$)MZ3ed)|>O0KB3lhjM|f( zt?ymB51LM5%twvqOIi0@l~}g1gnbtRF_xPDS8|n$4|0*_r4`w?{4S0|0?GIsd4c0I zO1bB!H34E_1K+TI_#FRm&&%RkWRENGi}UdrfnP9s83@rNsb|c`43xMPspraaA!Dx? z>tg@x{+TOY(*i7zGrq1;TT%%k_5+V^n%;KF`RQ80F3{1@qz5_mOQmyBY&=f7h@}IbC}9O zL;fb^1a@xp%MTwclX1pAchmAZ+&G=sc#J$lR9c*n0$vvJ;u|Na3IJ6%QAcRUqW8fF zM*i7Or5nIFCLp|Cr$fIx>xFpe3rk(4HgRziv9P{J=kd2o z1a`6+`tVMGNidQ}mdjiszx^V)h#wxF?+c4eiwiYa%k5vE2&#{<`onwPUprb3IoU_gLy&GAy0{+zcZn9M%!?u}V zRYadHogB;q9MlQpgcU1{RsmBR%K=N^K>%U0X2AsV!sKmBc9PFOz^FnlU07o*UaRL| zn=aDLdTddza=%+(Tk#bvmcLL(Yv)xSIRk9jLc!wHdsE*o{AR7yU!5_#?dhD!Jd;VQ zIeB?FC8k@E4^7~>JJ2ukA7hqU8ynCd;B}iEct__zWuO?lhpcInjW#A$a0%=+23eMo z^yA)BdbFqUDZ4C@5!Rz5ML zQy^|Rc+)kN1*r88I#!Z|vfgkoX>#X^b`AFbgYShUYj!wpdpEk*!oDVPCE)7!9pDF_ zt0Z?i$J$B3aHn9o*PwjM_t&d)$N+dJo=ffjmX7^a*_`s2gfz6pPw@=)rVm0ov`E@VFqvE$7$Qt=2JdYb}1=80xihp`A%~7 ziVW-n!Qh-5JWSqil)0f*_uOAGIXGKJ+*~Y!)VeK)4{nX`~6I=gO zDS5Io?<7Yn)(p(67?UO$9V{(?%`@d<8D9RuO3Z3yU-sq|ri+kyg((SChT8&B6f&h@u1-U9m?ywCmWd^>|B3Nt7*3@Dux1 zFXK1mr`5Wn9lO?xqCk)*K7W7tyk^fdLj$0cw2+*^GKWgQ3f~hN30}0?9`H#WB@#c>Mz{N!f0^bOewcdaUT!I$k4d5+grE#|> z%Rx(J2m*(95lqEKKXxA2yU1zkPi;3Zo7@m5pK!a74#0#I0d8;XzbX2nnDCK**u{+~ za|UY^C+@+;#olX90N+hG0KT~mHdE=1K)=(?1lhqW1%#K2^f@DI(HDqN1Q6GD*UhP% zcF7gNM*_i1kqd{^a`^lp62W6wsRs>%KW>gb3c$&Y&!2xYSFY=VI}UUX3{Ia2t^!ab zkURF7#Bo^g0JK61?ys@u21YN|VD$nZMZHIyR^16$O;+#7=N@&d?r&W4`(Gp4T&GZM zsL>u|H~*bv&_)~PxOeZ!Cg%Pt-eU`fbyLVUpE1{@`gxHhf^0SNuW&KMOX!nGRfVQ; z?id(61Hk+3ZuOzHrS3mz;Fk{8soL-(=^vX{uY4>%xx|G(W%@r*y0RKQ9rRs3LlgaKBr29zr*0W zkgD$Y1_{`_kbGVCp(-wTB}3GUMOuf*(p!pzauB3TuT!O(}U-7ppvOhv=(?&tg*fEFX>mvGEZxEOP zw>$Fx0$YiHFrRQN566%}%3$Nj>96 zTWPvXruYCD4Hd?%?42yI0Q2?ocA47C_9p-k3H&|{6dOa4TEp4?H3u$GDtKv%AXV=f z51pyabfSEbQV4V|hm)1##P!zW;d7J@^7}t_#W>n`0h1RuRTwkIA$LFHC94QlaJZtDK{^cmETve;6}zNlJI0008rBM@eHacmwG7 z>o(`%Jrx9|9Q29=LHX6MQwE)3O0fw>Y@qqyN zil{i|65cvzl0?PAKb-~UdGL_BK$O*u}@b$s9e}0xe zKlOT893ah%%}fN7PXfuY0Y)8Sk)uIiELO<5^BY*be~$!#A=CVh^3Kh_e;1kUqjih> z#g8Y-LG!#gNB#1VW2pW8F9B7@Zscv>ifG0N(pT~22=``rj6=%hJ@R^kdi5=cG&q>S z#)iixBhHB(#@SjnHQaPuZJd86c5v4<+soMtjLq<3CCxUm%}?WOv&}Z!X(n>Z0)T<_ zOD3r@*&ufe@DV`FcHL&jg>F&F=tY1h*m`Zq=juBpf!~EVW05zO4kJ2e6z&2;mO0`O z!CvuuN;rqE@9ESR;#br7AK+rtL?F1QQLF`0j#B8D#{~^cvUMBb8Sdq_rZz`z7pqNmY|lL z$6g$fU8nbWPVjTChsYz>sSSkvDIhkn&`zZ}@g51#wAT;kzvm9`H~%Wvtn}V11$3** zB(Bxr=@md=Jq^57_OSwuUAqVH4WY!8XVvD*#LOWy!#NnL$D(=S_iRTNzCDMvvZSS5-QSch(x?=4->6FUv z`*e?mG(-gWJ+&a8uW{_q-I9CXmw^igI964na*B0bmh>$ExiBm&$hai)6-;sXiYcGG z=Cf(ROt?1WkOA%@hc1|~CiRT#3-kWYt$@D}#C@OyGtOHv5JU0?11x4ROe_QQ(aI#9 z;}}~%{Queex9&!grArKSj{rdCwW`kPX^pyH)T3Ez=B;Pm)RLB#mM;JQf2hB6>Xw-# zfrxPV-rLOG0|ZEb4CJK_yedf$Kty~uGKN`_$}qA@x5u1 z)HCPQhn?#2X2bh&>1NuLP(%bX*vNO3j)#mt{+VyopO1sS<5uIKJcC%lUvEpQ4y^jh zNHtqSF=Cdw!tyFltt~N5E%yFozgTKkda~>7*-uRQ&^G~cT`Ya9Gn>hS8l`ZOitKS} zZQV9_V(~d*HV}%kOmDKp`!4j9Od7ecVpCXFo>>>9olPL!>JsH;XON{!M3(@Y^WFSU z*1`5Yw4VqFdp>8~t8*O3sm%qS7JD{k0-p&0qY~Uru9OoPn;(F{zBr%LLQ!(ikd;O$ zATTd-`Z>rMqY2xPl$}V zT{F)yqlGX=(Gf7o1H@`UvnE1dh7EtUg?@k8JNDTN&YT)qs@`%kWFsi%MI)?Dniw+jQzf#9ixZG@9SdjBpa@_b$}f{_z>${;LdlGB-+ zBuxB}mWDIvpTD0Dmin<^BpYCQYCBTW*rlDnJd=0V8OQJ6F<&pGolgXT0m61~-!@?G z2?h6ryukTbFqNk-ceNfT9?xk3QTUKi`S7041Z?05Oz>ftZ-BUmj;ev-;K@)HefjK1K?c1E&{;rB%QV5(10_hUn?4ZB&)PaFDj)H_N0j{UNT!_ zr}H?Yrg3oUH}Xs>y4@v|;Y^u1mYQgM$u7J6VkARYvcmgoh2=;K1`Mv`yz|_^JdRtX z12%Z$z3F=g(L>RR9*iN83JWwGI7gTq(rDq*R{<&`x$@1;Z zA!g4!jbcPhR<{(+a6}bH*JRH|xtIIioKA&?k+fxQq@>AGuzyu>Ifc{hy#_FJM|{&? z{WtbFy*b5;Y_sR&ZEgf2eT*}hLXl>6dFEEWnf*33*KTTaEtf40(!{Q-U<8i6fIRxsq>O}e;%-Pz_PDaL`!Ns2JL`>nv*aVj>3nz72=QYnWr z(Mo9%yE403e*01ObQ#ME^eE528P2mu6uw=V^+7A`w8J&b>^%ha^}VIX=)7ymCZt`( zxoau`hD8yjvDI4JZKh^eOuA71d`k5lnZY&U^j$fiqbx#osFpc-L2Vxtc zZ3+|IzrS3rUT@Mg5d3+&H&50LGU@&N360PN6DvXXii6zsR?{Ka>iBYQgH9*e^*AAgs zqp`3<7TM%cC>ibHO%r$61VE!jdBg&MHWf^d&%aFh7Rz=pz%(+Sa=fv&>FnmV6LY_Y zoiV4E%;j7b_xyhbA|vECHj;)$4%Y-J4X5!0}TLMAL$8oBJJDy{FwvUUu_F0eN@FUo$v+XF08(0l^7)=i`Qd{+j#nX>As> zq0(pYc>HxQXY!$WC)N&+oV(pGA1Sd7;5JNWjN{fQ!(x@|jXE%hCC>>X7{O*}9j(i$ zrHNj%)m%m-3?|A$X#+Bm0k24EdceNXQ2b_P*0s_TU;0;Tn6FhXXa+y=IIrOEk5l$H z)YnIME!T1_*K%Ts%F0V7?F!7?sWNke90qIdKawP!Qz}l1DhC}+E_f{4M*N_YeWmZv z!Ll9aGNb0qB*S*C9IzvDby=`xYJL<6VE~M#qUUnK^?QCxS_vpMNa;P3!o(ugeAM^u$C_+4+C#@G7cm{=GpABKZ~{pJJKJ$Z+CVUep#Wq#br012 zab7X9B_o$PIsjkf1Cnd(nGLw?oU*Y*wq*t;To=m_>$STD-u+HQsBZF#6op09!j zZ~MRG4mN(Ru8S4n#j}P3k*c#K`wR5dgu=JBnujAlh=0 zPJU)VYifX~2Pd=HZG0B|R>)4&*Ko^dFfGMDc? z*}H@ia2!ZAx!<4*;9_i1oYEKMVtNl`)T7D3uiVA`d=~#{9k`nj%1V*KwyB!U;>8| z12)J6&c{LKdb)oo*FRd^NQQBd>xVjxfBb3E%Hc(GAA#Wfe0n_p-1o-MVu6ofKszA& zl8Dgf`U~bZ^mR(2TV9k_E_ycKUCNC4%H`SWf8)96U!r`aK9s)d)vo12qc?dfvQ`jVTrE+dR<;(fAdhsWph1%ZrXlY7Q{U>r{-gZQWc3TwA3^3W)f zla@p8@OIVfSV3^gTc=Q@sK*j;dVIrcXEB**F|F|q^QxKDbOF4Mou+v|(z#^0znt{| z-#g9)8yoi8{%@&I<7IiL%xLcq5(XUDNV>(K+*_xJzjlgD zmfGINA?5*;9YNZ=5}?O%@~#5EI|9FVtRJN1H*b{xoU+Ye_1|r&1S3i3Ti!F?BjY}U zZUlb8`enT|<^U!mP-o4#;70j`o$-5TIe-zQ$a>zCdEFVjlzZMut(Et4v$0&jCUFj> z#of+=f(8bv#b!X!#I!Yp!H4MUv=haK$M_pP?ErIVKYlLl^Y|L&tB#<-PXU4`w z`%vXa-15oWWisjT;3_$3k>+qlus5?9!AT5m!;^SzlZkE>Vqd@tPVxWwpa1vNeclQ* zdEr={(uw#_2v82>e2% zoDaifq0@~R&txHCGD0McOTd1`#a)+k!!$a7T#Gs;Pvp#{TnToX!4@Yw(t-*I*ts!H zwyd>LYC3Y+#P1um&5iDDLSGDeE>$p@0VIDT#-x%;r3wZ^!eZ$>9=IkVwU8%vrHFih zfzuzKCE0E5eNwv==4bvtFRWm#;(1NK{T?QlS3aYC0Te2@2%J5w3@u~BnDkd0x8#GJphC)Ido&4o0SW=kxg#dM4?{W zSsG#%hX&}BolPJDj3dv#YuB3|Q+HW!0?Kff+eMH+7*4s?sX03)rAD4wHfzZXY&Pwq z^(WSI@E-blPi;=&bm-s^sw2tnPv>x!kKbb>J^WO$$0edrB)HW_IV|0I$vW-o`A&)# zW%Ia1o-W`L;GH@2{Qh_ifDyx7-thdQ>r}kAre+ez+mlW1`FrQvn@9)r8rQyvqeMQ zp1-l;DZ`Ahf1@0cV5DixBs%kl`yD|~XP!PAgt2s;$qeoZtbv)@--^6KFp~Ll#b`@y zr53E0KWCTOX1>o{56lN%2eRq_;z$So~-L3@i)KdHS;rXdfaL4DVJ=@`EseQUW z+GD#>0Vk=g#-qv7e2T{2#kl6XT}@D`wQ4Gie-A`)rmsK7N7Hz7g#uD}&27E|AWLR! zZ$WwYTQOac3b5p8b(NJ>8E?4g1Lfeil2^t(`Gz zx!;3M>0$K&&c7XBFqzD1@r~Ew3Ur2|76ZxX6?30E80@yH>a74hmt#)FmF+g+@^y?B zG^wCbf><$>K7e{9%ac0}4#x7xmw=%Mub;Sg(Q6NK)fA%C5R_+b)JvCci#D|ma|N%I z62)^bq|{kTpnA+1_nzXv|Ns9VNbw`k710>y*4;tiJcuVm+vZJD2dU(9bFt!qZZ=_j zniN>; z(2O?wurYkd6kaR8u}NB2(AXBknL(1oBt`@qq8zr0Y>W+1Ms{%vEbmXLU#lIwlohzC z0~Q7V!C-|$62HUmrCCmK%mm9n^|zmKKp21jB*t<&;rJtUVOy;?x_9(9Jby$m z=Xx=3FCz1nS{Mla#_%YxAgaG0Co>ts`M+tmCDWOGaU8zxm^`Pxg$(cx5r{`4CPnPaT(Fe*6f9n6Hlf8wYTT2X{wDCCtxamn`C=J9U_OV zcls3ObuI6G55`;rj?_oyZ5atNtTs2yc}j-4<(EWWSTTitk2@7WxeTzy>l$W{5}@B2 z`6?lQ3Z^Aw_qRI(Lu!8G#p~3%`5>vEeUlplL%DtcjI}x>2U3m951lOB~Hd=C)Sss^7cJos;aR$p{pa`?^crLI`_N z>+O8HX9ksbWZPK&=FN(1Ti6Gj#~^QfS6S>{Zyt@ly^*{!{FV&z$m4ovdB7Qj1*zw^ zZ^@uV+i$a-hVgk_N1jhMX-3WL=PCO@tTa2NmZ>;MKcup{?f zg0Ex)uX#`7Q01xFXIR%;GIROl$rx7NV)lzp{mEI#o|lZNKKzOW>%_ z7w>1yje1aD*TIH2DQ*vHD{by<_u9m=Cl+(&KPxT#2w7-E(>#15Y3OImf%e0ugiK*u)D0MBq>{ZK zDKFjC88A(jcT~Gsva899Pqw>FViS*Jn1RY?0-uYNcIE~E3@LAbb2p0EBtw;~;0n9*6zMca%up{a^o({J7WU$TfHjav$esa~24^Hh>%wOn-dRF{idK43YQB z=ZoV9$U={bOgnepQn3XRk(4m*zzSy`jX*{&^AE!adZjG=;bLQ~sdhAWG9nr&7Z1aG zFsbP67{WIglBKR~`DXRF7L|n`z==cW`q;nU@-6lu*K#e_axMRoB}(!P;4e&1fTWHU z2yhd)2`2-Yj1}NY za~RI*$kUH{OvhS(?t;Tq~OMxPaK5 za?UCbvjQH-d^0d0+WTc&XH1lur!53S5JCuZusF4^l7Hv;z0V!M?aNr5%6o?v@Wj41 zS(HSw>nhN~0GJ|`?#@wtYcj>RX`BvAy`Jj>yj0oqtD`WFH1_?QjhOXF`-M4atNg(L zJ|!8tV9@omC0X58MIsvi(2pojoa+Q&WxQ1CxbnP`q^jSTEbHy9Bw!(vOn|8cSC%a5 z;{pxEXha?0d%*L+b%zW*ftknLo5$wl1&Wx-`T94K$VSr)TS#^9_$XBSBG7nyj;GGr(XpU#GFLJ@CRAgHz*&t&x!7FaeQ zw>6Y(Y)qdur5t#0(QF;Q?z<-Fu|mB1Jk3Yx3^Qne(gH(AvyYsuInj1&*X)oaY1}|~ z;j7OB-uWyb#nY(ZZBJX`Z6c<>#;b#m#pb?9z4TJ4PF%)16%)$?GhDKImWn2X*RMCt zeu211XZgCjnm0O)kq}t2bS9|3`TJVD!MN(IFFwzPaG3; z@G*da;NNGU7E-vcHgLIfmMru}d60R@yr6>>OdxogM_GRt2DO)2eGXKtQ&febsX}m& z9{_*gX0Q{eR3x&jgZZi8Kp2x4#8`MSK@Vf|y%hGNs4fN)x95iO05BMlf)?FIF!doX zV!5A%ne_N8CSVLu0M3w6Mtv(E?3jW2v2B|d%sJ&a)C~qdK-l+h*?#Q)hzh>Dqg3?4x-K>rn*Q4> zVm;=$3OR)F34vf3ljB&OSRvFXu1k!^_&rU6|7ztc7?V%`}}WSsj>@u}&vrFq3V`QAF`hNYheK??`v4Y(5E^dOn+!2_)>*C$G`NzBJmv zvwx|dx1Og}EWlU;yB7a^PDfD6V2TBtcYXbAF5P(m#al6Gv9|9%eK97x>^}ws5^Q}- zU=(Tt4<1|rsps71Z$7-0EP8GiNe z95?T73cDY5C%c~vA2jB{x!PjQD^?gxQiH>`O)I68^kV||P* zgKeUwY&h^dc_Y<*0i$?4uRdOXLFd3wq-N*h1^KeDsJ)eBF9!|!eO~yOzjcX7NlcUgHS;Ebtm=I4)9-&uhWaIvJlItH z?IV9rzu9@ttdBt8(emG(7%`4V`qKv*tpk|A?Q#2)TGPhe$9Kvj3<>G+nOxj3zzND=pt^NnJ&p(FvT0CvI7q#to>Y~5hn z{wO(U%;b|vAn!YB$@G9^G`=%LNd|kR%2r9NT7ax{Xi$2(<`pj9OOv@3Sl!j@8kjoU zEBhhls3`z+60o^5=B@CERBG%_9kp3?`k>IsVRCd&`o(=a8ciyCt?P3830Z7&C{}PQ zg_-5j+=nw^S4=Hb0ZIyB?HX|OSzx7cuo>`25Vo*KF!D~x11ZY_AY^bx+WJZUpW zzrk}33KVCn{+=3t&{U+B{df;Zs3&x1b@L_r9cM3J?PF@rzJEHeLo8b0NzCn4SK6X; zHMeL??!t!lvvi?4#cTTmd?I6s48>8uZG5J}CawfRZuP;X7hF~ML z0R(-*`uEa+_|batZ~H-pq(Cp`|whkbhGxz;5`{vmm!Oe}sW7NS>x*AQ%!<9c!=We9{#Sp@5+&DYe zgZ5xTlprXa({P-VOs(dgRL!d5;&x1dT+EiNQp3|;@RzgV4G`WnfN-kdY`W;;8)tU0 zOfCWF3Kr}v*LDh3Ax7zHMpKNPQd+K_tu1SRw?UXXzl~CKgh_#`C?z}2iO=%sYFHn% zIUH$ry5NDhKI3%^22G)M*F}NgVzZ^Px9Q?k>wwg?U?!JfL|-oe0RMOYrG&bU*pXcv#AX(Z;y>?no);J>36mS5WiVM`Q09T% zA-W|`gsTc8vclQQzby^_t zH;pcfxM6S`Hd(_!iEc&U9wKgCw+Z3>oC70J$)x@_f;Mcpt_LvQOSF=geQxWTEr*IVS=L z22(esvS=K={wc-!1ew9v7}Gz^NsuC+@|=sjMg;a}*E(X@zNDmPqe&wz_j&YB=IjUr z&na8J+ns*xL*Va)hV8XHS1#D_&ke(HEk8>6nij&fT+6jw%e91R7XzrhS&0=j82E^f zdjoJ&W$wCDrC(Kl@C}Bxq;3NYVC#`CydSwgL%XuUOwLve9b>1w{+qP?d~f2XGj{ zIlJ9FVCAdV`7czSn6n7t+4G>BHvmQ2F_M@bDM>t#(9xzsXjMmiZ1v6(ek*3In6r8O zLFT#40hYtp#wxDsAnV9^YqDS$Nxl>KHK}K^f!E5%>*EZ^5m?Uk#2i2XHy`idE(22X zwE^ntvm45B4;d>#?qKBDT~XEGmidOeu4iBvCFUXZ4E0k0tpKw<$FIq8V~*KTjbTt) zPitnXu-w>KTpL4}K}QDqqHhl=oH`j$^}s-RzP13%{Sn#>`XE{S&nF?cVNEiYV(wJ?9%IQiB43ncGVcSWup;&=xR2YKRVrf^Ked~w6_R%}Y?`lLPbxP-OtFeM%U(fiUX|d;2 zgJi7^onCv!0quFzMx!Lh4FE1@$Q4AQa3m5(yXaHekxjrU&7~CJqk$z$R{g*IR-elg*FkZ1?f~HUR38Q}n2zMf#u_`V5R%@p@q8 za>mAWkhcbg9A%oP`4}jtSZXZb+4d$Ay=EKYtdNOj-r}bMc&^~@cT}$6@3lN%zO{vL zE!T1_*YYn{SiYW9H=S_q*4b}S|IWH1^KdnnI4svPFBE03n_P$` zXdt|@#Ma>*n{7(8=h7LF9=ZRAq_^tl_mb-OQ+3czmM>3zXHp)`W*^F*_DtN-R(xaS z3)gapY}&Gt1VVN8tX5>8q0ch+XD`RPpQMbX6bfT;G}fXs$MuZtqW(bA*LxTY95A*! zb8CVHYEE@Xq?Y`eCc$4u!NOIHes*JLBLExBKL9y&5@(+mK^jZXR3z0GYO68>M1jEs zkO1hw@0G+b<@Gb*LuY;3%k#caQP9CkGTD}^RKUhWrnY3FhdET z_l3%Uk)4v=AI2J08rG|_-Z)SUFqwenm=45&#MVR-`=Z8#rwj{#t&4bBq-L13Whc>@^lwlB!#s~=;Y=%%$I4Of3U2pmp-&i=6S zq>>OVjfwAmM*uaZGe@r5QHZcbUSLRIMavC*m(SVAExfKYn^<30*P9Sff0s!1uOS)+ z*G03O+{Qo9BHgkLTSGS1=_@*07+^3aabpg%ofyhKkg3f)vYg#oFseE4BK6c6k+(JG zg)rP~N|dM7`bcDIR}i4 zp9OGEf7EfxpVOkjN?R!yc3iJEYM(u ze95@p?`KFtx97ljF?nYo8g)P!|NKm*F3+%Cx3DEb5d8o{3t0B@=?q%n~73pqs`N=i6;}Tmp4F zUK4T7gGr&e-vf3$0Yb~g%P9RZRR@h@HjPuma{@D}K7-Y};ql&~a%y&6Gax_~Zs4h3T{OoiR^ zBy+gbQLJh?#(KM_P@WKTmGRjP6-aaU!E?FOqUWPkd((7xaJdhbLf3Q3Mlm+6Eto^t zyq~FYSImI;lZ!iL=XvTJFejU>7rV5uT4Hq&`Z;_L;u6{fG>qwz#+vgl>DEJN&k*M| zPQ|0zbYlPFwHz+-z#kS6P=BaBJF@-(kO({@D24pHQMscfGY0F=B@j$Zm@F#j4G7Hqy`jOO&zeDj+6*g2yy-vPuzrkQz+^XFvU5ggjp zK!+u--?$<0ED6No`bDOCOCXjxH-~oZNw05b< zb&!_L)Qo|BQii|XMU&)Tk)aFLJD)=y&jfxgMWi>mWRO?N8xCbamsN(3IQKu?5rNZp z0%9>gJz#v^RT*f2s%zxrjRI63{uD4ADG`l)+#7y(%JVT9!S@fmZ{+dq-$)`F!2|dV zK`4|>&+h{?hFwM5;r`z8_l^wSBGZ^s&+F2!aO~Fe0J}|NYsA{v%-&qg%T0#xuC_

3_co_-`hHa%Q#mX=lk!&KE6{kH&rv)`jxB4xYTqo`C$tH zg}u+dYsPC)6Ix>aeq3XFW~tP_1R%y#?0>JnIA_sqmrK z(N7-;zD{41o8ly(8uJbE31`D)%tjIcavpoayi>!7%HIHi`*&~ICley^avzvH2lFfX z!IK3BA%YRWYKB1w0~H1mqB|)W{UBhxt;0EW*>8)ozi*C*5u2|~sc6VVBf=EdzTZ{{ zOZ-~9pleZiL0@~yNqOw^XAZfRZ(H^s*>x0N%e7p~wR~p<;9qvIgIxmkl_DWOEzDxo>_(ec$tWkr9h_ z8Pjo@*2c@*8AAeX%4?D>90VYqWcEh_zF_Ef2K+Mj8W`Dyb$sgTYO>V?nqtWtOoyjS zMvpr0OIK`vesmlgh~JstMNYLu;K*eH#}@<{KV5+^Z+i>AEppSA%b4|q?;})}vFG3= zYaCLB{=Ugy&o9$3GOrfsw<|M5<-o@Vc#v7TQf^Dggp!?Qa;cPyHdfZuu!JWMNcfu1 zx49nze%NP2E;@rG04qjHmTn2K0QkGORJ0XJ!vcH+Py)Xv0QCENfx*~&U(D}i&T_Ot zzAgYE)WLx$06#AEddb4I!)2;X8WsTrVB)e341_IpUb@c|Btqu}u*UX4e%{TB!7G%H z-5D?lwYKdr2gtuhKYnIB5+qvp211Hhse$1hX^WcJ@CBXwg^ z??^A0ui(<+96!UZxxrZa7lGfK74wx-k{P5A3kD=}`0WkBQ{>TwTrOvdi;UXMrVp8>c<`)o{F8t0r$>KTk) z%t0jCNy%EJtpv<`*{k;l>Wsm~}gLECHSjWVmEQIrbVtMh(rLfm;i@`H%ll@hf20ta=;USwDn4T0TI$1 ztpYw-pGi^+VJ{NT>#l2f&kgf-xdcG9bU6fGF_Ntl5DXA(y{g|u^avKC`|b09;%f>b z>j3_lY!GG&g0`PN*Brqw0Rdr{eKdwCBCr1V91_^Trxw2^CbbXm36_rk{H=o1PnE(t zMb6z18RT0_qWRREy99wh^3U-fzn=sE^B92MoAp_8&}2IQ?Pp4HPk){vca3TyXUET~ z=kVJf^XK(cT@QW4ez+1V81n`kOpq!51QAFe@XM}8{mXDA7It^mn_#2 zb}iR(E!XlL7jqaOOZg<}q2F}?&DW;g{(Y+oliXaKRJ zGkQ~+VX%^z7SyXe!l63Vj7>qtl>x{uhX!yqrZ8h*R0eM>-`%y>Y%VOHlj>(FTUkf4 zw^GYIzz?yKz0Q(ZHpxF@21wQJIPhCd)awwrS?93dey4i0 z+N)J}LTt{{5lk?tzZlHH9z)4R%hMRpi?JT}j!QjK!pIIIjn7y~;D9NJ_b5lIM;`2@Qz`y5KX-ZuDqv676DsGPkUGJ}<~p7~0@ zd?5f;#`C%U+*3*vyN#gF%?%lh3__n2L{Ox%OAb$Wu7+icKjLIk%qsz^?8k31sHMeL z!3@kR{a~PJs%;ar9?yI-7cY&}9+aH~!E=yYcl-nHj%xkwxyn9}4rdAk7 ztGlhk&giw^xV9b#`%zgCQvtUKhGJer(8gxNb&>160lCa4Jx*oKx0~S{2$^Tig^_?Q z`ZO8;R7kOWx|C&Jaef3Fc-+drOLi_;y>BHcJ?^%g7sv?C*THcZw`d1EC(1xW$uA$f z`S6x`fHA%R!0z&A1M^-7&U=z_?&W3&s0+diS+%-Xu#kHThCqFApMwRbIQx=}xA~2Y#b5gQf0M)-LNau81?b{pu%J3FNEO{5!Hv9VDu^Tl+A)sPLTclz%f} z6FNoKuY;jCj+e3VDni3Q%BCBg5*qyL-az6Id^gR#l`>c>KQ41FX#tC7khap;`&&P~ zNOeb7TVVfN-?khBQ}GrI6#&5-fWf`m2OnTT0V5L=nniOxd9D}KCnBl+2LYJOTbu{! z^f`mJV55&G0H=HBBVgO)km6)gSd4qd5JFYKktJ>vweDQwbm0EziFB$S6V z1Ecjtb87?mHP&x3)`92w_3KyTQP=7$8ecNYQP&tl0Tm9Ls&zl-j-)Ct9ZG)W8S;AI z0Y#IkU4f-&KyDCvZ-12Nq+J;hwugMYkJXT|yeMIW}-k(z5 zz2$)O8;jchJ5zet3kE3HIa2=vm-S!CO!w$1t2%+bbSM@lW1O8knPXA+t^SEV7%i$G z?X{b?`LgAidyR7oDn5CpX#4adXN_^TWjy6pX3A|TG{Dtk%PyVx*!;}ji!-_{tz%zr zgaVuZTmmzU0N;8;kk~9scL6*~DtaWS zB}P>Y%h85Hm<5(ZNv%TOm3cVftIXHkeYzvy$lR}%gMGQ;&SJa1w}UYT@gCX$a<&BR zEiX6AV%4xZgkXIp1LAMq5LgmmY0SefcNJ6`AFpSN)h0F)p|;NJ*{sA8zFjj=9)-{3 z!DORNPMG}!uiJTO$v*S!4YYIblVe*9YvDj3<~DnSXtP?73qTP#+%w>Wd3tFNis4C+ z7C|8(u?-V}Ux2W*!x%8~hJl1keQ|fs&(Ssx?vnYP+YA9MkaL#(vJN*N-tgMA4Id0} z2G(GG9OHitvRaUOiGnb;1kh>Q8c~I8WT*z3{WKaocz779AF_G=E`v{H8~8L$B3huY za>|1lozhfoiFlw7J$i0tGlu%rSo&E!@|+JXy0ssLCh({9w|1T?M?6!%OO;ta4`tr$ zjrkf23Tkse3Q`#|g6HJ-cZo^V41%cKGYWz=VAvYhYi(&?>b|Me>t>q(L(f^T*!)2T7Jv8sY>dW9(M`-HY=&TA5Oai&M+Wr% z-}6o$UkjctUE0M1#t5R2(5GOWQ>HoJC**n_#56B?aogiwQ_#oq0u}QD3*eTL6)^Ca zBlzxR{RGbnQFk9RNST33$m>qO{ULU9^PQ*bWeZSVpuw`8GDtezJ)C%~egK#SyL9-s z-%Nr$Jbz70UVs0YvfPscv(FuqO9y#oTnmh4m#u#8I5=!@Ef`wNCG2e8@O(j4vq1u& zn;XnO{v=ph#zYF|^^X#{lowUVs~~SL0jKC_)C-p`on_F`kl@6 z*AlLy=31`hTCU}XDP|gBLl2M_PBO4~-ChFN2_SFwzB&Em3=xBM7{*WmxhOg4RiqR& z!C%jz8?;AT_0bp`sW44Tee4&VYsMTUm}|1qEgC0TVf!Ao*JCgV>1k&6)!U7%w=+RU z1Bs8yCq~QBYf{gs3+3NT4mr6^deo<9(#j@vhxQmS z`@q(CX46tC+CcAUjy1{HnKSt8yq#*?BJCVKcWwn-;hdvPok`|R&MXSc*b31loK3E; zE6y?ft+?AsvVtj<+`JC{x`gPrvnFSoj>GSn??2jo`Wx|pQ`i}DrG5EvSDtr_U3j*{ zqkjnGz?rALzMD*LHC6Vv0u)^7EExmJnfU4Gz5WPBB)9iuR*D@AumNd@@S9_N*pl&z z{Fwmy#@!IUZczXY7o=?H3WsGJAZE#{FOCEf4I`b{L&C4%J~QwGptEJ5no zCD)Zp_?7@J`aA(zNImE8;5w3QzAf{T@&|umpYzEsi0;XU?BUYN+i22<81O`3-HVFVE3)=OABzb@3=%dP54yV$o`#~ zIzouw#aaw|os4P^zU->)<2K!7b}JQI&c)|WuShAK2UP&#>P?}j!L}5r8XEgDEZ3H? zro`zjg$#o%Lz^!-T524?X;bhtJWE{PuMvaWlLqxgfx}cI0wdXEyrrm9>->sxA^@yf zW)S!`Oq6l9T)yMEAh6DpFmc@|4{pqx${zBmXLd3Iy?GKPqZl&P=+t>4i(fLJJPxx7 z;GDvvIsw5cgNl)*!v+= zK-@MBE}6}|!#0?hQ`aS@+X*YBNA;P3)BAGMUlS}&7Dbm7$<6zRp#{mF8?hmS0bl_# zF%IIlpxH|eEt~@zLr7?RcuRR|o(o{xCoqEV>-WxS6FgVsefh`0b!4<%_vQ^{tJ68s z(?7i@2#@^3$@9^i2s{h0y&*^rw)pVJC-wgY3L{cs_`iEg5SE*CY{n3sivBlRxc^uu8-vVE8lppa4pwzE!T1_rxvqo9S|kE*Mo68fwL1%Mz9p64Uqt{ppQ2;)x;d|{Q#xI%FQ_YijeEqgM#ZcJAbo}&H+L<71a0if_ zKdkFi>wCHn?6K3lwfDg4LLYO`SD}xeNCiwDEw86!Pko%!u~J&D33#aQg>O?DAAT@K7+HtR&wE2)f&18` zdm_kZIcZDYzI5rz+jDVwW&=+EU@(}3a;SHfpVQ_7M>`g;hs$akGY)IWSIs$U7$r}e|4l|T zC?H*nGF-3-Z0e2KDd}i}!zNu!u!TV4&OqS?z_+#Kk>BK7jnThKaUXE$3U!VZD7j&< z2gkJmi1;dV)`D@r75G^tvG-2xfGFpNjZ|H7|D%LFd~hZa&dc^-``$9B1MhL{K1lh1 zL`g7e^XKdAE5%p?unGWocP~F4WS$`f?NZp1lK#SLkPQr_!j>jUZqrZ5=H zA&Bw&fRuKSn9k=ZjDMSVanF>PHmPXf1q@syu)Pr*Jm1fl?MndDm;%@8;hOeJeOJfhERO}TDKg;?4-idfWFaEQ^ZH>v(8l3MVkjC0c_Wu z8rz~A5oc??OH(JawL@dmB@5z8C1`IFnC;i{)A-u^mBzH~4BVZrK*J`@iyPdOc(;JY z$pT7sYs;@^#U?Wwtw=Dq_wo8ddS`)iTt@5>=+=>v(F$*0$w>x z%H?||2<#;xF9qbK(RuUJ>5#v7dqNJ>=gx~CI4=yEUJcI)?_nS#7=t4gqdGoyme-fY zNY?~&aNAH{dKdwKVf+Rg(4t|MYp3D=Su3BX z=@e>+68(}(M&W;%tZ3rc&@TZRmtG=Tj;Mi*!3EOzF7rzY@+$HEY@F_-bW>XCx$>7o zt%QCSsc8brbKmBL-MwE&-Iz5U&dPtjKU1}v1&$qlmgK^j6UJ5O^2y25364EB%8$go z*A<1jcFEm2XH>Ispk^oHZ7K^al8lnu&FXToF`-thlNtK+^3mJfl*_Lt8LC` z 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 z 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 i{(Fc|&-LCW?*9jZtZx#ucuso&0000r}1 z%AJxZcXMASQBJ9j$}^qnJbyerzt`*c`+mQl@8|vg+}?lu&N(~TOG~Oq0ssJMhl5yG z!RoQ~ii--qp;<75U{Pk-da&GR{;UW*g9NZ5()>tZ2MRubHVE}`njZtU>0{rcP2*NRl z{%BXM-M3(Z69y8*j7#79dWq-?@FQk z@Mf}HN&n>gKZ%*{QFId2mBgflF$jXm`D<^5qN8mXBs`18aHr8izPHgikjA1h18H-&Y6@hjyScS$HaeLh5f3S$3Vz=Z#p$j5oNeps0iD<{5QNUlTMw5S@ zi_uT{zF~){=gp-UZZ zW7Q1HrNA0F_Cg4XOL(3_rUh0iPtOF^X=IC*^ZrUFSQ6MxCkh6i$qqSdz>#^Bi@kYt zw-c(um2!olb)Lny^UQu1u97I)-?gxdS5{QEyR1J`%9gBmyhFI@xi)v+FkOebO>QH-tCzUVFB)uZee!s$Abiw_)3Wo4hKN+{V13 zycXhb2;a-%It7Im{O&Ez*C);HZVFj8T8=KST!ea3A!TeNa*#?x~jjCpINEJZ5ZoQC8IqVeiFv$?y9ysW3*O~QJs=6#cdCdNPUu1A-7%#QvV~#nbWi1 zUnVA9>t-PoQTwb5Emq$hk&p%aoSX64?u&Ig!BwRGXzBgZys11Xk07NO0|RaPt2giL z{F5g@b4LP_?*tGFGe*THJh!iSbMHJ<(R<Z|tnge-q0f$!LjE0Qz6mzu?Q#-WBQ}Va53#7R3Uxi=WlLP7-p2}HF1Z3-OUd_lh zZ;2l3lF?pmQ4P@>4W=S$`@8!2A8fU0yFLnA6{G-C$#AbEH@5wTh>)3R!&@E|w#JD_ z>9?Drv|&TwYpD@`(wfUfY%VEUK8qLajsr0D6nlvD+oKk>&|>CiUn1@>z0IdHFS&$o zv0V6hn~PBAC+420IahHNl?tc)UEVMEn5R8@mzAND-%2r7hp&~ke9@(ZEtG)EqXFHQ zI&;qPJ~U^x`ta&|Q-I2oLgrM850UM@VDbRw|a>#b5Lx%}n58ghlc zsr~6usAwrA&X6C*H~pn(`UNucln$U5n0QCLz2=rX!7u(dlAVQp+!QC#D-c&c7$s98 zQ{0*SX))Eu31O|9HmiB0SoZD{Uf^pz(0kv z4Qgb@6&boa9Ckvdm(p8F?3ih-(g(Wt)FS6hT&J+IHAG)ctcqsuz>$L$n zWDYhBNDrESzgwrEEkWAD`2D+tpc*BHtdLVKXC&#a6u;&9b`U>IH*UwE6*AWVa=NVA}|I0Z^{*-VdS^qT;+)l;3`Q1r&#t_-c(srt*y+rjjb(XH(Gc>Mah~b;5Qn@XJF68oXD$JeK*X#LTLWYI`nc(qrFemXMXVz_d=y4nyapHqNx2?s%q3Eb6kdXwfm`t_p6==H9mW1YK3eQSxwVSVW*m; z#!baeFTVHsq6NIRnbcT08TP!0Kxbw@M9$D!K)>3~F)z^j* zQn!sx1OU4TS#Ex<$u8H|29+EidM+)U`QuIksw^3EO!_r zmOptp)y0a;T;1p>dDV2HFU4f`(N4TQa;)v~+$AW7voGxF1p|}}FGuOf{bU_Q`H(&Q zxUNgCdreXf1&%59C_@Km&3U(UL@`6Qo(>o>8QuV>Lvq&5+eKcYz3zIFXStqej8h3` z1AQQPs%}8x_?Jx2^L((1Q2Peu@kOPlLms`-R}H(>q|55eKq|p7(W)Jeaf_{n{$CDL z2U2zU3bn5cFbA0;Q{kcmRDe4W)d>{&>QZ$a5s8}@> zHtiI3)4x_)HYZa+m_4r5<#Uzz@0WoGeNF0pyFVR*5l%|jA!{JTEZeHkYSKd?9rcIV z(hkVRdE)cRPzU|p1yMI10hRzk(U_*azVE^@O&(e=_ZOF|4op3}TrXsHG;(+b*PtRX kJX~C{dGU7QrjjpUU*e`&*iD_vt$%$7TPN%dYhTWP0N7e(v;Y7A literal 0 HcmV?d00001 diff --git a/UI/Sprites/border_3px-thickness_20px-radius_dropshadow.png.meta b/UI/Sprites/border_3px-thickness_20px-radius_dropshadow.png.meta new file mode 100644 index 0000000..28d3074 --- /dev/null +++ b/UI/Sprites/border_3px-thickness_20px-radius_dropshadow.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: d3668b70ec594d84595ed4c98869d80f +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 40, y: 40, z: 40, w: 40} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 03a78ed22ea624941b45af4dc589e804 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/border_3px_white_dropshadow.png b/UI/Sprites/border_3px_white_dropshadow.png new file mode 100644 index 0000000000000000000000000000000000000000..88dfd09b344856ffe0ce46630ef684a6efa6c9df GIT binary patch literal 4229 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 R#myfBP7W^i)wcf0{{!#0dj0?a literal 0 HcmV?d00001 diff --git a/UI/Sprites/border_3px_white_dropshadow.png.meta b/UI/Sprites/border_3px_white_dropshadow.png.meta new file mode 100644 index 0000000..53ff7b6 --- /dev/null +++ b/UI/Sprites/border_3px_white_dropshadow.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: ae7af120ee031534f952fdd7a78b80f9 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 50, y: 50, z: 50, w: 50} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5869c4e392be6d94eb36c3560cc3e068 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/button-border_black.png b/UI/Sprites/button-border_black.png new file mode 100644 index 0000000000000000000000000000000000000000..d6b808f860eff5e8893ec339791eb4bc353a757b GIT binary patch literal 873 zcmV-v1D5=WP)c$Ai`7se7b^p7(u&z9Q>W z^kns?Nc=0uU;BjG1|T5M^lkr;_T|@a>)}}+k@YG0k63|^tAzu8#(Hezbcho zWSK3)x%CXWpst0SttNhxG_>QE1LS}@YZ6)2MB(c~b$|&TiWJHD>k+W5K z;UWuGwLxxpV`35$86Y?Oak?Tt=}g-Va>E0-n1vlu8FFKj#?CEjfNYV-O`Tx?c_C-3 zRA!{KMuU@=|g8(_v+{|m27Nj!dgirRG(qbKc0FVP7 zyj2j#|EAfj?F7gG|94tdY3w5VDk91Y$N@PTLwGNN3){vuz*wmk(_8InVtk>OY zwG`RV@i^gB_ENyf)a&)MzcGX%Gb3J>xXlRX7WHutzV_L&OP3a`lpjE_G#bx8@@?KZkQIG14o zWtIl6uSf~T<1u0bbb}I{UzNv595Kl$a{u=M#oL%5I6XZ@MrKc10BeuC-EJ5}Q6wXQ zCIQ6k2WU7Pn!qhN#gvbk-oHZ3ejw)2j{=;KVg#fZqtVFDleJoa+5SA({LF5p-f6}b8`c(;G9~0*a{i3*`;Bhd>)t0tl8U7PmQIS+5TOt!jY?l zxDI@sX(&HJ2w3a(#BGg#H^hk;`Ih$!!+yj35$*In=~o&hHWl;f?UDxAjBAM5xW86j r$_iXwx|{Ly^g?c}-i-Hr;~4w}*;Gj89-4G}00000NkvXXu0mjf9Bls* literal 0 HcmV?d00001 diff --git a/UI/Sprites/button-border_black_20px.png.meta b/UI/Sprites/button-border_black_20px.png.meta new file mode 100644 index 0000000..3105302 --- /dev/null +++ b/UI/Sprites/button-border_black_20px.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 1e4c985c68da6a94396934b493a1ccad +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 20, y: 20, z: 20, w: 20} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 79432f17bce02024fb990921be5e4dca + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/button-border_white.png b/UI/Sprites/button-border_white.png new file mode 100644 index 0000000000000000000000000000000000000000..31d38dbb0b6b8550d4f4da96f9cdf1acc4e9fb43 GIT binary patch literal 1357 zcmV-T1+w~yP)yzsBE(Jtq-hA9 z=A6{6mb>G2ySK!a&L>?}+ijN}<;zXETy`Zk23oDwEQ$k&eTeV8ob?bQ&9cWc#B;>M zBuSQSL=qbk$h#B8QN+)PUu<-EE-f3KUiA#Rep2UA^!vPR;_q$L`t$bfu0QR{xPMO+ zddY&+D>eiJi|hg)_J|p`fq3Mx;wRR?NqsUQ9CwHRv046PAqg^~M-=-G;_{$E4*1y$Giki`G#{WE^NWinE9xebs%$MI7jz2{9(% z*|#W;A^!GN^y^#^&-#jt%Kt)f(n1zyx<8MKpO_F60?sjEoP-0GSJAyIy|zzsDmv^Hu>pP+l`NSMTMRrrVxeP!EWyL8S=-fm z?ED*wgNUZ@EQ!Uo;O;RKuOkk^%|EiX+axkJWV_^q@7VJ%K!~jZ4qmg+&rBzexuYFq zW#rR{X~b<*aNUF`0q){$#1!IG_xBwl!*n*R=PY!4+%O@^1)XHi*&cVbO`CkidkbBtSjR{dg;O53aBMVK8_J!Yu$S`{z z#jh4jzhy#{8(#b|=^lW)JGdfdWZp@k#E)S7stHkI+))k#Wme|!;kL-XTM+qy2~iF1 zT5xtR7ivh&?4@A89EV*#H6f}22jg?N#9lTpn2~8T&3gM;{}nCnrZfH3x@A8A<7LMrNqlVF1h0=YF_m5F5fPnN-##S7w&O1H0*`LK=>C3_$lkA(`{h$6VW40;tuUsBv=zbu?)m??Y{KVZ7Yqvf&gr72sBEK=fxDB}OzFw}U^xi%0*WQ7;;gCdBB0s0WOR;z5yvxC8-V_G#bi z`l{(+wjLOmu6fBzQ9adF@73B>g(usD@B60^OoAuDW8fILFOtNwNh5z-6v1V11^fYi z^*ryJYy)05i6MFf!42@bitXzC4xkyDn1Pv9dnQQl+*CEq; z2&Of<2);mutFntgnfnpk0x#;LcPR5^tMp!rOxVQt!Q)~E+#6)_UiJ{sa0S6lF)jZa zeAKLqwleS#!C{cK{Twg;l0HCN;{nKU5jvi1O_OT!5(n!+F@yARzr+*TT`8L5VG`Qz zY)w;V013{C8AN&TDKc1-K0{4B0}J33G)_f-4-Mdlte62?1!t2W-U3?wAea@SZ5mp` z1vAKcJd86AsDd%xDb2Q3kdQfg}3xqa+_+#8mcKMpC+j^Gk9S4woh2fJT0Mab`+G`%$(47c4sZF7AMX znLQ>)16<{3U`gBodkQrlqJc4uY=}GfDW(OoG%%tOmkgA}RC<~Q$SMX$Ssa0CrGXSz zHP*f_?jg`k166Sof$o7Y;A$750ngcB)kxH+PsPMFwW%I7s>9Q5#{;Pqf8GA}U!thiht|`sWmTyl7qhOxZ zIQezG7uK5cTIA(-D9dk?j?Zg4oyW$GH}jF&Y|I=r*zEV{^PP6Z|4%7rmsnn;82|tP M07*qoM6N<$f~zamlmGw# literal 0 HcmV?d00001 diff --git a/UI/Sprites/button-border_white_20px.png.meta b/UI/Sprites/button-border_white_20px.png.meta new file mode 100644 index 0000000..9a42d39 --- /dev/null +++ b/UI/Sprites/button-border_white_20px.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 55f176a6fe560d24bb3e650f8677edaa +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 20, y: 20, z: 20, w: 20} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 30dfaa01c7be01b45990affdb577f919 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/button_secondary_active.png b/UI/Sprites/button_secondary_active.png new file mode 100644 index 0000000000000000000000000000000000000000..0508c563283d70a6f69bd34ac985e62fb070db02 GIT binary patch literal 830 zcmV-E1Ht@>P)od7%mbOL9Ct1gnH_8vu11#>~7v>ml&I3BsSoi+ti!GxW0 zT3$yNdPNxJW!etfwp0-`Zrk;`^w45$iMAB4d&Lok##Xop+$^)A`t-G~_axEeo_XND zxFca2W&V#sYKwODaj%MxkQrK+Gej?Ef z6ddY*gZHyru_FDx`O@d)^HRk*&$mtHH# znQgS}3!2fDH_Rqf=#9H32m|YHKdFDvZ@mPBf#zi(+=^&kiMn;v1=HG!SRZb8AQZ1J zW-ilr&&ADoT|qN#@DX+Mr1KM2hQ6XdKq$8E16ipQvy69;PsP%T z1S*yx);$^AMW10U1B}BCG?)1>qQCB-?xYc{0Iul?R?b79bRGhw^AISVhd}9&z{~sR zT3*%o|22WoZ%1~iD3-2B;E83#ARpdHp8_kEp+G(fOP@#}|9<)b^7+ovMdSNv1&dA` z+y*aaf;EoXBn` zPe4E%(J$)B>yOS|70e8V1A$Vwg@DMpL%H_Y4CPAU9?(QRodd0zz(k;##IwM|-oX&G zxCP-Na>oj%JYYC>v>2tk1YDMr+2i!IW9%OgtE{&;QEh>@DU6A&$Qw?}r!bsyy0Svs zB65c!yI0sC`+;csLjq<^hqlBO^jrS;utuv3f9>zDAp#=)0ZW}Qp37(Q0{{R307*qo IM6N<$f`}r5od5s; literal 0 HcmV?d00001 diff --git a/UI/Sprites/button_secondary_active.png.meta b/UI/Sprites/button_secondary_active.png.meta new file mode 100644 index 0000000..39d292e --- /dev/null +++ b/UI/Sprites/button_secondary_active.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 8831ad7cc6913f64791202833e0e7ded +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 24, y: 24, z: 24, w: 24} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 7ff834d225c99c347a7697ba3da97d31 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/button_secondary_default.png b/UI/Sprites/button_secondary_default.png new file mode 100644 index 0000000000000000000000000000000000000000..b29668d412b3e752f1a3798e840b5be9110f22d6 GIT binary patch literal 762 zcmV}=S&tiMA$1KZAbR92>i>VEC$V)MnTp+uy@;*FatwslEw;6e4IjdAc)|*{;3%jt-cz|p-|z-| zvEATL@wy*dK4gPFkc#eD;V%S&`a+);=z`ZJ=Lih8=1c1?>xnZ6l-44(=|dM+;fcI! z`UitZ&>>XY=g?j#b>WNW-?bms4^Ad}_rBKhMRsqpjEnggcnOV&@m7zI}$=6^spcA-n40I53eIqUlw;sdmvEZljtS z+D#WKP#4mVNDn<#n5)1UFH)m~9)ZNR?ySq{-J+8p5`^>NYqA0r)iy!m+yutXOwaG&VHiXOaD64t!2`-SiLqgGrjb{1QIB`OLxQt~ydg7W*a~zLBi}b`5 zXhX;%z1)}rU9jh@r;w8IR`h9!KJdE2<~v)He(bDE?KJ2c>m{X*Db&8tGA=MA_MDVz z*`hfH!n$OFwe65)+$Aa9z-=luF8QxgbF5YybcN07*qoM6N<$g7)K8M*si- literal 0 HcmV?d00001 diff --git a/UI/Sprites/button_secondary_default.png.meta b/UI/Sprites/button_secondary_default.png.meta new file mode 100644 index 0000000..79cfaa1 --- /dev/null +++ b/UI/Sprites/button_secondary_default.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 8471ca04d7df332408a7a99c388ec2bd +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 24, y: 24, z: 24, w: 24} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: b9fdd64972722c24a917379cb16dd76c + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/download-circle_4px-border.png b/UI/Sprites/download-circle_4px-border.png new file mode 100644 index 0000000000000000000000000000000000000000..70041545343ac13a8501aff8d08fabbb845f1d0c GIT binary patch literal 1080 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 JPDHLkV1oL_vRVKD literal 0 HcmV?d00001 diff --git a/UI/Sprites/gradient_black.png.meta b/UI/Sprites/gradient_black.png.meta new file mode 100644 index 0000000..72e3bbb --- /dev/null +++ b/UI/Sprites/gradient_black.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: db199e15a6375aa4ba43bbda0d9c8354 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 47197e3f79de4cf419f19fc5c499b513 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/gradient_white.png b/UI/Sprites/gradient_white.png new file mode 100644 index 0000000000000000000000000000000000000000..13106197d2d1c14303ed8e179089be2420cd8c5f GIT binary patch literal 986 zcmV<0110>4P)#+!If?;>80!?20jMMxxSCAq^NHj3iOSu8Qx1{%891)aNNh9UJINBbOXAGiy-c!t z=r1L(>^w+Zfh)qc+xCkIQ~~(FId-XlsDr*@-<1w0fD<5x2mt5<7~2mKQ~864&H8Q9 zXmz+0W1s-)DA=)GwF+$awtW)dLx%8&uA)Ts&Az$K+l2KZj*UiDAp<#d+e-ngwjkFR zMY9SxM7*}bLaWsGji^cL3%ZDv_$o+ObQ+FZ!ue+KSsaft;D9sG1UWw&Z34Y7bWT6y|)TGuzYOa6pjLs$-@d zjVdP@@4Lg#+am)RXWCJAhp!X%3@DxkeGj3}c1ZlQ4<2*6DGRCP#zK&)-|0zeJR^7g z9;k}XH-35l@8oO(D>GHCj@o7`BIBM-V3lgm6u9c{l*#Toy$UF@MRr*m!ZxcD)At4r z`L*NyyMnLN4m3m{S1H}h4dDlgen&pBZ~EsIP}gZEss>bg^BWY;triNq-5F5D!a3o< zSwXuZF3v&J7K$w4oL4NfvKnrZP6=NnR3PrpUht;fPy6v1k1MLSr;1hae~Ssk*Aek(ikHngu@w#gB8e?;2GH8&~)l9b1?e0kU3{VIIDDCiSLZ6dE8cFewE<% zkEng`KutaQj$`^#b6A=&_XHC6oGRbu6tJsOWfXM$=4 zIQEMK$04EWUrd$bRlRKdD?3*Q6gXgQ)+#`(TW!}=?)*Ws9Q1^gHAlTpM`KhDjGgkg zGR|Wah7q3@0X>TYdMj}tbr$%qI^3L0M}9+XoB$tUm${mi>;PxBvyZ`nk^qezCN8^5 zI1n)igUxD%OVSm|ia0C_*`k4catZ_rUr6*W6;Jgpv;s!8{|6J5Nn~%MnNyc!NqdQ$ zvE5Z-{ymTyECRX1b|sh($ literal 0 HcmV?d00001 diff --git a/UI/Sprites/gradient_white.png.meta b/UI/Sprites/gradient_white.png.meta new file mode 100644 index 0000000..171b60c --- /dev/null +++ b/UI/Sprites/gradient_white.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 8ced871376af90f4db1cf90d760f2100 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 0530c20b543f52e49a672d9c0de11b39 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/image_large_border.png b/UI/Sprites/image_large_border.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9280b34a7c860c2270c20acd536640ade53368 GIT binary patch literal 1611 zcmcJP>p#;A0LHhB*;cuX=2E%L%t3RGaFpxZMr9^*Yhh_?q)1BW!hWo1lys!B9i-fj z%P2Lb96AgKNtoO|R4&2_G22|uN* zB=>zZn|^t~&UgmLfj|i4Pk}-AIa+cEjyp_n0af?z{3tIF2HqPF0@dC`{5Ylv0x3>< zx#7tP;011$|EQ;`P*|Sw7swa<5HQjF+uwOnM>!BoR9x;)@lp`_GQAa;Rw?cZ3{!r? zu6S@4nFFew>kP=Hm;7e{iWWJ!2u^O(TJjUn8J=iR|6X|`XBj8pN zKD)w~f47l;p$>79*{}cBCxz@+c z_t@}2F>ulG5v6hSY~EC$wM|0r#=pxY!s+FD(9K1rx4w`PBVWp0Zv4nzqo7GeTko6oEdU-Y1=@-{IQS9TEUo`vQr9l7?UKqqiy z3*%OdJCRBv(_&woX6n+G`02Ejg_%s~tr*wjSw*HvZx8F8L=?{cvY6;j<)!^Iu*RP5 z*H1#t44QrzvZw+Hkkzq`eiIueo0W>mq!Ym8)MHX;a?fPN3QEX<5_6q8sSDlG(3&X4 zNC<(ox&~F_n8i4%YazaNi3x_beiJ|NRP%_=1am+o3J1ALC~EpMgIbl{x^B1o39UOk z#0sKIHLU+U^!rYTN9xSVF7O*?UabDGt?H?r$~M~}x=P*=#-Ftrv| z9m#`gPU{j|bWn98o~7Xiw#M&7Y9Zzwn%$Qlug<73YYQEMrma&4r7}6bKRFwO;v%)| zi-4h=SSIv%7N-k(+}}P3<|Etf*sz*p5G@jTjVNrdXXpS^g_x;#vzxZ73Bl*yymW65 zt4?T=B()F6MOY|rRiB+fmJazWvM6*9`*)X9(j=EjoSvt9vc+Lay|As<;bEmCE@rfq zW!PK0z@rXrJ2;kg3Cp&qW`aFexFb`Oq5?_6(v}X#8r3lT&C=;Be>lfL8l>M~!A;}< z{kNB03gdvW;`Fi7{buZiuszyPr~RddD`}q^%{YVr8+4zx!NnRw$BmLkKFe|lft$*4 z7N7aTms%_(ZEz^dz>Kw#o-p1^kbnhL9KwZEW|FTej4(C@VjYGLo**xusF!wl2aY4(5;b zD?K`JCy@v{^~h)q9VoIL@7Qzt=pDXqD`(~4fEoT|u*AN0TXUSAt6t!e%jxSAF$Jg7 zPI=~TnFrpqZ3r);Y9#WxWbLBUCbXqUSvPqcbBkUSRi2#I+(5MJRI7OY>RLWYfw$yH zE4`TasZ8(S%1aifRAzba5PV)s%|&pVRsLfn-gDz*D(CY-yTKm)8xoOkW^KJtA3elob~!T)!^LdK7(TGBbtH| z>lXUMLPICV<_6QG)cOGyyM{Oq94SGzM7a!dZs+Y0InZf&t6X3BswjC}5cDLsYIKgg zY>elVx%<9#?L{Zs0bicf-z=H=<$xdTEjn9(J!g9E_9j@EZOO=j&Rvv$Kgi3S=vM7Q G1^xq3RP)~e literal 0 HcmV?d00001 diff --git a/UI/Sprites/image_large_border.png.meta b/UI/Sprites/image_large_border.png.meta new file mode 100644 index 0000000..64202d9 --- /dev/null +++ b/UI/Sprites/image_large_border.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: e2883ce2244946043a72d52d0f967696 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 40, y: 40, z: 40, w: 40} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 71431bcdef4f7b04688a3bef70269fc4 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/mod.io.png b/UI/Sprites/mod.io.png new file mode 100644 index 0000000000000000000000000000000000000000..649ac7cea0e40d3c5b697aa93fcbc84a396f2294 GIT binary patch literal 874 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�q4fG}cNfuM-%K{iLx4$2uX=@WFRJBoi*SQGv*? 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

?cTz+vY6usMh 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

DJ$T7GSu?CF%S3sBJ3dbBPc;? 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 literal 0 HcmV?d00001 diff --git a/UI/Sprites/modio-icon-color.png.meta b/UI/Sprites/modio-icon-color.png.meta new file mode 100644 index 0000000..e8331cc --- /dev/null +++ b/UI/Sprites/modio-icon-color.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 5b5bfdc18aea28047bb94f3d28cfdf59 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: a24d857188375174ea1cbff21e13aae7 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/radius_16px.png b/UI/Sprites/radius_16px.png new file mode 100644 index 0000000000000000000000000000000000000000..623e254317d7b5e6c966e3fccdc383ce85271633 GIT binary patch literal 484 zcmVB z!!Qtre`kWSfja?#1zMP(qp$&N&@e$^1K1#90m=d-6VOb+aThzn5~y{X*Hy|V{Y};9 zr;C%=7lTNMXvUirXTeE1mNSd|dc`R@TTae-HO5rv0v5BJjI*O|*~o9>RHR~@HTBOL z$3m`Z1r0|*vDM@crZlWvD4A-j+<%fbbTWaQ9FgyEN9UN7oU7(2Pl7k@F}|E&;aqC! z3i`4Z(8ZjqST+@WfIjZz!T7PagFa*o&ZUAY=%l{1ir^A@S%}~z^peULl<^lkD;b(f z1PO{spqxptEt6ndCc(B$f^8AOZWhq}P>Em(z0@=659nnpf;se(H&cFDFln4}T_k?} z`3!w*#O*wmo$`b?kI+Nrom93yWKUlIX?^$?ZZPh7QRHs-c3)|{_S+{NYQF`NL$~2X z&f*xzwSY6~mv3@y=F`u?O|5<_Q;H*GXL9m2WkaVCOU@FiKOebOmk_w;$>0q-9T!s)C#UR|y@MgX!J~CqS}JB8jWH1(4F^4CZCGdOo`kh$S#(Vq_>THx-u-4MO&!oG6(X96YJstVHymaP>d`-5%Ea1te>3JPjK)%_!qno z(6#QwUw9|~Syy8=mEbKO4lE15kx6jI-ARtWx=;xJgBRpx4&8@517+(c(8ZHv!DS$X zK34MLG9ayQp^J<&@HC-fRcWCQnQQ~;LNCzETnzX)Y28Ym0Smn>v>TWjnVX@Q36wJ$ z7@E<*(2NF#W;8G~VjzQFGVKOZF%Uy9xq%3JiN(Md^b)y;`ZI2?uJ}UA5A`!QjP9V1 zNM2k9r1j6xg={b8H!;e6Mon4xl;Gt}b#qs;ARAo1-wP>g=?wfVCCV&(z<)L__=|8R zw&X8=3LH%(CaDty@QavR{<(g#X*K!^zm^ygYl*gyAKj^anYCs@>ShV`j}+He=mNfw zrK0@b7n1qzhx3Y>|vsJZu}d!JY6ANnIg8u|01~wfVb^NCt`s#Rzl69ee|#WBP@j S)q?JpfK3qB zk}0!(%S!rkfz>7T4+fGKlpHp>6b*7E+&Q<(O*#eUS|?8*4w?j~x+#$-V--A!cRad^ zs@xg!l_NcM7{xp41bu5xkw0wJjwZR_mpH)@Y`|;B_wc1k&`^4TI>nG+AGWAd41(Wa z3wGwG>Vv`d42ae{CfJ8v1{6%`Eul@=rdtV0!2L5QgsArW_m1ZBFnds`jiC^lf?$JNyk3q4D&Yl@#mr_@#apHIgFbe#O(+ zO;gxcy7`DanW|hT-qG|n@dbI_7kSK|pYD7n=;QqX7k4i3Sii2c{F0OTe*H=6@EAu} z2T5OYeYr@ItDf#8J$Ou~XajM}DY=9(l{C51uteL){#%xdaYxuD;?n#hPIOnYm6*7v zt=-^7PsO#%wq!3h6)VsJ;?9RY+;ljr#PgZs*Z$YS7e^Ov{q|p2j~5&KcvRSF&j7B*!Yu)XPaaLaZ`U53BFHru6ckElhA*iP6I>I%9W!sZ#V zT~gcOgFLkd+f_zvC)76hpc1wxy*|kKBB20mQA7AZ&bWCdlNqcFasqtTtMq1VV(qnF zf3B$k3+2Ju{CoyvItQD;3)>Or&x$;48A1z#A-Xh9XaqYYPl< zCn)j|xt72XcLqf@MXoEbq+y$KLaU3M_ztQDjw&1BwP6^^RK~8v6UYz$} z#NOtN*@OGp#>9iQxs06okcTWpAbSXp;t;XZL;Q_OUqS>1)8nx(0;dFGu_FQ}1Y+??1pYuE7KsRq zs}}J{5F#QYX__VwjmGnXK{*gOG7va25I8arI5H48G7va25I8arI5H48G7va2BCsM5 zi!nSnE(#tTmv;|-B@l~u4}KvKi&un*xC}AzBrg3eJKbFo2#s=QS3VL5%}^e;+zk+v z2YGNOV9N|k%#jF3e-a{W93Bz~#a(tQm)lkTP9PKy*^~TjT#~LKOf+M}-up4z$Pf0w zi<@)hZsa`}C%a}S%GL6j@?aa7;l+z{pD)ZYQ_jG8u~a%q2>37+doyMR+^rX15%8r@ zv$C2!Qq~|PP=^6K=5f&rD2mh^Np1JMiz3;7K&YtZqO1a7=|xXl4-8qwd~R5y`?4J> zODo!}LgF!QSe)jW#oepgsq(VD%_@!vgYquY89T1CBg)(QBjSDuTHZDTBKwIepu~86 zyu}r~r%u@qkYW>?G@nBH1K#2a3(ZZF4`SP;^-tmCCQV6I7ZNwj5t!w5y0mUlUH-D2 zQyb7`shxpd5B{Fx+E!b&)hWA4ttmNsFd%^uxN zVT<4|aL9J2S5GGD5AD>KjLE7NO_f4;QW-Cyc(`>i6q)&Vzi7#erY=?BJXUZSrAx`w v4ob)j@MmqUx3R5qTCv|`m;PO*pn3iSGQju~-H!_M00000NkvXXu0mjftSISd literal 0 HcmV?d00001 diff --git a/UI/Sprites/radius_40px.png.meta b/UI/Sprites/radius_40px.png.meta new file mode 100644 index 0000000..6196d4e --- /dev/null +++ b/UI/Sprites/radius_40px.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 1d7a613ab4eb9984ca2ff61802b05e50 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 40, y: 40, z: 40, w: 40} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 3952ceb034e54ae448beb91259569be9 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/radius_4px.png b/UI/Sprites/radius_4px.png new file mode 100644 index 0000000000000000000000000000000000000000..5471b574050dc0e32f05509d604b730fd0e0a373 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBeuSrsV@L(#+sPYw4=C`k*w0k?Z62uhf$JuV znL!l<#(CeR@s#$gK7*7 zS&*|p+oDnV0&l_O*VRcqm&`JQ@5!t0Y-xES_kg*9XOiC|)rqG$C#_y`SZ31=uc|zE z>su>79VlwC=REz!X8HAZvX}R|-YCdP*>Rw6GZ){6$4kOpBrYA8p|zq(%cDvCjYLR6 zyKM75S3foW8yo8Ted-G`|Aafg*8l7t^hl*HWL~G$$==s~BKAl1-d8jFeW*=&(VN%| PbTNactDnm{r-UW|&kSct literal 0 HcmV?d00001 diff --git a/UI/Sprites/radius_8px.png.meta b/UI/Sprites/radius_8px.png.meta new file mode 100644 index 0000000..f0c1991 --- /dev/null +++ b/UI/Sprites/radius_8px.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: d68cf6dfa268b9044b39799c19a3d3a1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 8, y: 8, z: 8, w: 8} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: afecbad5ebd720c45886a8512ae4f677 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/search_icon.png b/UI/Sprites/search_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..00257f152d2be51a0815c362ee6b4df6a88e93e3 GIT binary patch literal 25099 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 YsnUe+VYRk9ub5Jolitz}`9C`T1SJx^kpKVy literal 0 HcmV?d00001 diff --git a/UI/Sprites/search_icon.png.meta b/UI/Sprites/search_icon.png.meta new file mode 100644 index 0000000..33b06b3 --- /dev/null +++ b/UI/Sprites/search_icon.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 9ae15bb2845082245bdec0d82483e1d8 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 41feb389cdec8614580b757eb2dc796c + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Sprites/square_border_3px.png b/UI/Sprites/square_border_3px.png new file mode 100644 index 0000000000000000000000000000000000000000..b1a208aca4007ed79f3e60c536d0f322de002368 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=g{O;Sh(&Mmpa1{=*RyFcsbxtW zbKqu0vA;GXahfUp}Y?~I)3pOi(`g8;(`jg5>9n?+ev{zQac0_tG!boFyt=akR{05G!}#Q*>R literal 0 HcmV?d00001 diff --git a/UI/Sprites/white_20x20.png.meta b/UI/Sprites/white_20x20.png.meta new file mode 100644 index 0000000..69e613b --- /dev/null +++ b/UI/Sprites/white_20x20.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: a86a3c1037087404990351a2386cdf3b +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: f0c628f16ddd25043b25c635772df7da + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/TRANSLATIONS.md b/UI/TRANSLATIONS.md new file mode 100644 index 0000000..15baaa3 --- /dev/null +++ b/UI/TRANSLATIONS.md @@ -0,0 +1,113 @@ +# Translations + +## How to add a new language: + +Open up the file `TranslatedLanguages.cs` + +In the `enum`, add your new language to the bottom of the enum `TranslatedLanguages`. + +In the `enum` extension `TranslatedLanguagesExtensions`, in the method `Culture`, add your new language Culture Info. For Swedish, this would be "sv-SE", for Spanish, it would be "es-ES". + +If you want to see every existing culture code, you can run this line of code: +```c# +CultureInfo[] cinfo = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures); +``` +You can also just google a languages culture code, it's all documented online. + +## Creating a new translation file + +Create a language file by cloning the `English.txt` file and renaming it to your desired language (Make sure it is named the same as the `enum` option added earlier). + +You will then need to attach this file to the Translation prefab. Open the ModIoBrowser prefab in the Unity browser, and then find and click on "Translations". Drag the new file into the serialized list `Translations Text Assets`. + +## Working with the new translation file + +When you open up the translation file that you just created, you are going to see a header with some meta-data, followed by lines that look like this: +``` +(In English.txt) +msgid "Play" +msgstr "Play" +``` +`msgid` is the id or key that we use to find the translation. +`msgstr` is the translated string. + +The translation in Swedish would correspond to this: +``` +(In Swedish.txt) +msgid "Play" +msgstr "Spela" +``` +As you can see, we only change the `msgstr` value. + +Some fields look like this: +`msgstr "Current users {users_number} are playing the mod {mod_name}!"` + +In this case, when you fetch this translation, you can input the values for `users_number` and `mod_name` via code. + +Avoid editing old translations, instead add new keys to avoid issues. Finding every place where a translation has been used can be cumbersome, time consuming, and prone to breaking implemented features. + +## How to add a new translation key: + +Simply copy paste the `msgid` and `msgstr` to the bottom of the file and fill in the values that you want. + +## Working with the Translation code. + +There are a couple of different scenarios that the translation code needs to cover: + +1. **Texts residing in the Unity scene** + + Add the script `Translatable` to the object. The Translatable script will automatically find any `TextMeshProUGUI` text components and attach to it. Any text inside the `TextMeshProUGUI` will automatically be used as a key in your translations file - make sure the `msgid` that corresponds to the field exists in all your translation files. + + If you do not use `TextMeshProUGUI` components to display text, you will need to extend the functionality of the `Translatable.cs` file. The file is documented, and there is a short description on how to accomplish this on the variable named `text`. + + In some cases, you don't want to add scripts to certain objects, as it may mess with Unity. + + In that case, you can also drag the game object which contains a `TextMeshProUGUI` element on to the serialized list `Translated`, on the Translations game object. + + If the user changes language during runtime, this text will automatically be updated. + + +2. **Texts residing in the C# code and replacing keywords** + + Sometimes you want to update text by code, Eg. to support displaying numbers such as: `"Current players: 56".` + + If that is the case, you can do the following. + + Translation string: + ``` + msgid: "Installed mods" + msgstr: "Installed mods: {player_number}" + ``` + + Code: + + ```c# + Translation myTranslation; // the pointer to the translation + TMP_Text translationText; //the text element to contain the translation + int playerNumber; //whatever number we want to input + ``` + + Now we can call this whenever the text needs updating: + + ```c# + Translation.Get(myTranslation, "Installed mods", translationText, playerNumber.ToString()); + ``` + + If the user changes language during runtime, this text will automatically be updated. + + C# may complain that "The compiler detected an uninitialized private or internal field declaration that is never assigned a value". + This is wrong. The value is used as a pointer, and is assigned a value inside Translation.Get. + + If you want to get rid of these warnings, use +```c# +#pragma warning disable 0649 + Translation myTranslation; + TMP_Text translationText; + int playerNumber; +#pragma warning restore 0649 +``` + + +## Done! + +That's it. Thank you for reading! diff --git a/UI/TRANSLATIONS.md.meta b/UI/TRANSLATIONS.md.meta new file mode 100644 index 0000000..1e65750 --- /dev/null +++ b/UI/TRANSLATIONS.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 81dbcd333ce96d14dbb40cfa93b28ec2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations.meta b/UI/Translations.meta new file mode 100644 index 0000000..d4c1029 --- /dev/null +++ b/UI/Translations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8df69100faa6d444e9140f0755123a60 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/ITranslatable.cs b/UI/Translations/ITranslatable.cs new file mode 100644 index 0000000..8a0b0ed --- /dev/null +++ b/UI/Translations/ITranslatable.cs @@ -0,0 +1,29 @@ +using UnityEngine; + +namespace ModIOBrowser +{ + public interface ITranslatable + { + ///

+ /// Returns the key reference for the item that needs to be translated + /// + string GetReference(); + + /// + /// Sets the translation onto the ITranslatable object + /// + void SetTranslation(string s); + + /// + /// If the object cannot be translated, this method can be applied to mark it for visibility + /// + void MarkAsUntranslated(); + + /// + /// Sometimes we need to identify the translation to help track it down, + /// this can be a gameobject name or path, a guid, or whatever is suitable for the task + /// + string Identifier { get; } + string TransformPath { get; } + } +} diff --git a/UI/Translations/ITranslatable.cs.meta b/UI/Translations/ITranslatable.cs.meta new file mode 100644 index 0000000..7ff844d --- /dev/null +++ b/UI/Translations/ITranslatable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4248669e7672aa442a801bf70a9388fa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/MessageUpdateTranslations.cs b/UI/Translations/MessageUpdateTranslations.cs new file mode 100644 index 0000000..3c77bd6 --- /dev/null +++ b/UI/Translations/MessageUpdateTranslations.cs @@ -0,0 +1,13 @@ +#if UNITY_EDITOR +#endif + +using ModIO.Util; + +namespace ModIOBrowser.Implementation +{ + /// + /// use SimpleMessageHub.Instance.Publish(new MessageUpdateTranslations()); to + /// make any translatable text object translate itself + /// + class MessageUpdateTranslations : ISimpleMessage { } +} diff --git a/UI/Translations/MessageUpdateTranslations.cs.meta b/UI/Translations/MessageUpdateTranslations.cs.meta new file mode 100644 index 0000000..c0b6ec2 --- /dev/null +++ b/UI/Translations/MessageUpdateTranslations.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 846ca20eecfbcf04a8c4c20b7ce80db6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/Translatable.cs b/UI/Translations/Translatable.cs new file mode 100644 index 0000000..0260fc1 --- /dev/null +++ b/UI/Translations/Translatable.cs @@ -0,0 +1,120 @@ +using System; +using UnityEngine; +using TMPro; +using System.Collections.Generic; +using ModIO.Util; +using Plugins.mod.io.UI.Translations; + +namespace ModIOBrowser.Implementation +{ + /// + /// Most of the time we can directly install a TextMeshProUGUI on the Translator master object. + /// However, sometimes this isn't useful - for example when it's on an prefab that's instantiated + /// during runtime. + /// Thats where this class comes in. Attach it to the prefab and drag its TextMeshProUGui text + /// to the translatable and it'll take care of the rest. + /// + /// If the TextMeshProUGUI contains a text which is not translated, the Translatable class will + /// attempt to add it to the dictionary. However, sometimes Unity can muddy that file, and that operation + /// fails. However, if you keep the file open in Sublime or similar text editing apps, tabbing onto + /// it is usually enough to make sure Unity doesnt restore the file. + /// + [RequireComponent(typeof(TextMeshProUGUI))] + class Translatable : MonoBehaviour, ITranslatable + { + private const TranslatedLanguages EditorLanguage = TranslatedLanguages.English; + private const bool AddTextIfItDoesntExist = true; + + public string reference; + + public TextMeshProUGUI text; + + public TranslatedLanguageFontPairings translatedLanguageFontPairingOverrides; + + public string Identifier => gameObject.name; + + public string TransformPath => transform.FullPath(); + +#if UNITY_EDITOR + /// + /// If the TextMeshProUGUI contains a text which is not translated, the Translatable class will + /// attempt to add it to the dictionary. However, sometimes Unity can muddy that file, and that operation + /// fails. However, if you keep the file open in Sublime or similar text editing apps, tabbing onto + /// it is usually enough to make sure Unity doesnt restore the file. + /// + //TODO: Can probably fix unitys shaky behaviour regarding text file manipulation, see above comments. + private void OnValidate() + { + if(text == null) + { + text = GetComponent(); + if(text == null) + { + Debug.Log("Unable to find text field, unable to apply translation."); + return; + } + + Dictionary lang = TranslationManager.BuildLanguageDictionary(EditorLanguage); + string potentialKey = text.text; + if(lang.ContainsKey(potentialKey)) + { + reference = potentialKey; + } + else + { + if(AddTextIfItDoesntExist) + { + reference = TranslationManager.AppendTranslation(EditorLanguage, text.text); + } + } + } + } +#endif + + public string GetReference() => reference; + public void SetTranslation(string s) => text.text = s; + + /// + /// Mark the text field clearly with red so that we know it needs to be added to the translator + /// + public void MarkAsUntranslated() => text.text = $"{text.text}"; + + /// + /// Immediately translates item + /// Also hooks Translatable up so it listens to the MessageUpdateTranslations message, + /// which automatically triggers a retranslation of the object. + /// + private void Awake() + { + SimpleMessageHub.Instance.Subscribe( + (s)=>ApplyTranslation()); + } + + public void Start() => ApplyTranslation(); + + private void ApplyTranslation() + { + if(TranslationManager.SingletonIsInstantiated()) + { + TranslationManager.Instance.Translate(this); + if(translatedLanguageFontPairingOverrides == null) + return; + + var selectedLanguage = TranslationManager.Instance.SelectedLanguage; + //Look for an override font for the selected language + if(translatedLanguageFontPairingOverrides.GetFontAsset(selectedLanguage) + is TMP_FontAsset fontAssetOverride) + { + this.text.font = fontAssetOverride; + } + //Look for the default font for the selected language + else if(TranslationManager.Instance.defaultTranslatedLanguageFontPairings.GetFontAsset(selectedLanguage) + is TMP_FontAsset fontAsset) + { + this.text.font = fontAsset; + } + } + } + + } +} diff --git a/UI/Translations/Translatable.cs.meta b/UI/Translations/Translatable.cs.meta new file mode 100644 index 0000000..0f7a885 --- /dev/null +++ b/UI/Translations/Translatable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9649349969635e94ab9545060496a7ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/TranslatedLanguageFontPairing.cs b/UI/Translations/TranslatedLanguageFontPairing.cs new file mode 100644 index 0000000..7bdb832 --- /dev/null +++ b/UI/Translations/TranslatedLanguageFontPairing.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using ModIOBrowser.Implementation; +using TMPro; +using UnityEngine; + +namespace Plugins.mod.io.UI.Translations +{ + [CreateAssetMenu(fileName = "LanguageFontPairings.asset", menuName = "ModIo/LanguageFontPairings")] + public class TranslatedLanguageFontPairings : ScriptableObject + { + [Serializable] + public class FontPairing + { + public TranslatedLanguages TranslatedLanguage; + public TMP_FontAsset FontAsset; + } + + public List translatedLanguageFontPairing = new List(); + + public TMP_FontAsset GetFontAsset(TranslatedLanguages translatedLanguage) + { + foreach(var fontPairing in this.translatedLanguageFontPairing) + { + if(fontPairing.TranslatedLanguage == translatedLanguage) + { + return fontPairing.FontAsset; + } + } + + return null; + } + + + } +} diff --git a/UI/Translations/TranslatedLanguageFontPairing.cs.meta b/UI/Translations/TranslatedLanguageFontPairing.cs.meta new file mode 100644 index 0000000..cff5abb --- /dev/null +++ b/UI/Translations/TranslatedLanguageFontPairing.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d0011be8bc4a64bec955cb4196bac6d0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/TranslatedLanguages.cs b/UI/Translations/TranslatedLanguages.cs new file mode 100644 index 0000000..93f6647 --- /dev/null +++ b/UI/Translations/TranslatedLanguages.cs @@ -0,0 +1,39 @@ +#if UNITY_EDITOR +#endif + +using System; +using System.Globalization; + +namespace ModIOBrowser.Implementation +{ + public enum TranslatedLanguages + { + English = 0, //English.po + Swedish = 1 //Swedish.po + } + + static class TranslatedLanguagesExtensions + { + public static CultureInfo Culture(this TranslatedLanguages language) + { + switch(language) + { + case TranslatedLanguages.English: return CultureInfo.GetCultureInfo("en-US"); + case TranslatedLanguages.Swedish: return CultureInfo.GetCultureInfo("sv-SE"); + } + + return CultureInfo.GetCultureInfo("en-US"); + } + + public static string Date(this TranslatedLanguages language, DateTime date) + => date.ToString(language.Culture()); + + public static string DateShort(this TranslatedLanguages language, DateTime date) + => date.ToString(language.Culture().DateTimeFormat.ShortDatePattern); + + public static string Number(this TranslatedLanguages language, T number) where T : IFormattable + => number.ToString("n", language.Culture()); + + + } +} diff --git a/UI/Translations/TranslatedLanguages.cs.meta b/UI/Translations/TranslatedLanguages.cs.meta new file mode 100644 index 0000000..1d9d8cc --- /dev/null +++ b/UI/Translations/TranslatedLanguages.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6f2bd694f27e1a741aec10dc6e3ee0f7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/Translation Pairing.meta b/UI/Translations/Translation Pairing.meta new file mode 100644 index 0000000..bcb5beb --- /dev/null +++ b/UI/Translations/Translation Pairing.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f3a324b35835495d9407524cb6d64e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/Translation Pairing/LanguageFontPairings_Bold.asset b/UI/Translations/Translation Pairing/LanguageFontPairings_Bold.asset new file mode 100644 index 0000000..1b96c1e --- /dev/null +++ b/UI/Translations/Translation Pairing/LanguageFontPairings_Bold.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: LanguageFontPairings_Bold + m_EditorClassIdentifier: modio.UI:Plugins.mod.io.UI.Translations:TranslatedLanguageFontPairings + translatedLanguageFontPairing: + - TranslatedLanguage: 1 + FontAsset: {fileID: 11400000, guid: 07eb140c74981ed4aab6d34ebb2e5737, type: 2} diff --git a/UI/Translations/Translation Pairing/LanguageFontPairings_Bold.asset.meta b/UI/Translations/Translation Pairing/LanguageFontPairings_Bold.asset.meta new file mode 100644 index 0000000..56616c7 --- /dev/null +++ b/UI/Translations/Translation Pairing/LanguageFontPairings_Bold.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a09562b54e7c549d7b9df18941d695d5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/Translation Pairing/LanguageFontPairings_Default.asset b/UI/Translations/Translation Pairing/LanguageFontPairings_Default.asset new file mode 100644 index 0000000..afc7b62 --- /dev/null +++ b/UI/Translations/Translation Pairing/LanguageFontPairings_Default.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: LanguageFontPairings_Default + m_EditorClassIdentifier: modio.UI:Plugins.mod.io.UI.Translations:TranslatedLanguageFontPairings + translatedLanguageFontPairing: + - TranslatedLanguage: 1 + FontAsset: {fileID: 11400000, guid: 7357c164f341b0147a6115fd4f243f6b, type: 2} diff --git a/UI/Translations/Translation Pairing/LanguageFontPairings_Default.asset.meta b/UI/Translations/Translation Pairing/LanguageFontPairings_Default.asset.meta new file mode 100644 index 0000000..9aff839 --- /dev/null +++ b/UI/Translations/Translation Pairing/LanguageFontPairings_Default.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5d661ecb7b314e5693122e5d28cc154 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/Translation.cs b/UI/Translations/Translation.cs new file mode 100644 index 0000000..5b717fe --- /dev/null +++ b/UI/Translations/Translation.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using ModIO.Util; +using TMPro; + +namespace ModIOBrowser.Implementation +{ + /// + /// Translation is a class which attempts to translate strings on the fly when you change language, + /// from directly inside another class. + /// + class Translation : ITranslatable + { + public string reference; + public Action set; + public string[] valueCache; + SimpleMessageUnsubscribeToken subscription; + + /// + /// Instead of using new, we use Get to make sure that the previous instance of this object is + /// properly cleaned out. + /// + /// This is because the Translation class is can be tied to complex logic: + /// a same piece of text may require different translations depending on the state of the + /// owning class. This is because the text object thats used by this class can have + /// multiple usages, ie. if a pop up window is using this, it can show different messages. + /// + /// In order for the class to work easily with different states, i decided to wrap + /// instantianting and changing into the same place. + /// + /// By using the Get method instead of having to instantiate and set it at different times and places, + /// it becomes a little bit handier to use. + /// + /// pointer reference to the text item + /// translation reference + /// how to set the translation to its corresponding object + /// any {strings} will be replaced by the values, sequentially + public static void Get(Translation translation, string reference, Action setter, params string[] values) + { + if(translation != null) + { + translation.Clear(); + } + + translation = new Translation(setter, reference, values); + } + + /// + /// Instead of using new, we use Get to make sure that the previous instance of this object is + /// properly cleaned out. + /// + /// This is because the Translation class is can be tied to complex logic: + /// a same piece of text may require different translations depending on the state of the + /// owning class. This is because the text object thats used by this class can have + /// multiple usages, ie. if a pop up window is using this, it can show different messages. + /// + /// In order for the class to work easily with different states, i decided to wrap + /// instantianting and changing into the same place. + /// + /// By using the Get method instead of having to instantiate and set it at different times and places, + /// it becomes a little bit handier to use. + /// + /// pointer reference to the text item + /// translation reference + /// the TMP_Text object that will be set + /// any {strings} will be replaced by the values, sequentially + public static void Get(Translation translation, string reference, TMP_Text text, params string[] values) + => translation = new Translation(s => text.text = s, reference, values); + + private Translation(Action set, string reference, params string[] values) + { + this.set = set; + this.reference = reference; + this.valueCache = values; + + this.set(TranslationManager.Instance.Get(reference, valueCache)); + + subscription = SimpleMessageHub.Instance.Subscribe(x => + { + set(TranslationManager.Instance.Get(reference, valueCache)); + }); + } + + public string Identifier => $"TranslationUpdateable for: { reference}"; + public string TransformPath => "N/A memory object"; + public string GetReference() => reference; + public void MarkAsUntranslated() { set($"{reference}"); } + public void SetTranslation(string s) { set(s); } + public void Clear() => subscription.Unsubscribe(); + } +} diff --git a/UI/Translations/Translation.cs.meta b/UI/Translations/Translation.cs.meta new file mode 100644 index 0000000..ed35875 --- /dev/null +++ b/UI/Translations/Translation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 369f309cd8423a84da6511066bccf746 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/TranslationManager.cs b/UI/Translations/TranslationManager.cs new file mode 100644 index 0000000..3ddec08 --- /dev/null +++ b/UI/Translations/TranslationManager.cs @@ -0,0 +1,355 @@ +using UnityEngine; +using System.Collections.Generic; +using System.Collections; +using System.IO; +using TMPro; +using System.Linq; +using System; +using ModIO.Util; +using Plugins.mod.io.UI.Translations; +using ModIOBrowser.Implementation; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace ModIOBrowser +{ + + /// + /// How to use: + /// + /// Each string you translate needs to exist in the corresponding .po file. It should be located + /// in resources/mod.io/BrowserLanguages. + /// + /// Any TextMeshProUGUI in the list translated will be automatically translated. + /// If you are using instanced prefabs, you may not be able to or want to mutate said list, + /// in that case, use the class "Translatable", or the Get method to change the value when needed. + /// + /// You can track down any errors in the translated list by clicking the button "Track down errors", + /// on the Translator script inside Unity. + /// + /// To directly translate a string, use: + /// TranslationManager.Instance.Get("We were unable to validate your credentials with the mod.io server.")); + /// + /// To directly translate a string where values need to be changed or appended, use: + /// + /// Translator.Instance.Get("I am punching a {ball} using {arms}", "Flower Pot", "Feet")); + /// + /// In this case, it will get translated into "I am punching a Flower Pot using Feet". + /// (Which is kind of a kick but whatever.) + /// Get will look for anything inside a {}, and replace it sequentially, so it doesn't really + /// matter what's inside each {} parameter. + /// + /// In some cases, you aren't able or don't want to use the direct Get translator, for example + /// when you're working with a prefab in the editor which carries no code, and you don't want to + /// add a bunch of code just for a simple text change. + /// + /// In that case, you can attach the script "Translatable" to the object. It will automatically + /// connect itself to the translator and update on runtime. It requires a TextMeshProUGUI variable, + /// and will add one to the object it is added to, if there is none. + /// + /// Translatable will automatically try to detect if there is any text in the TextMeshProUGUI variable, + /// and attempt to translate it. It will also automatically an field to English.po, if it doesn't already exist. + /// + /// Sometimes you need to change texts on the fly inside the actual code, for that purpose use: + /// Translation.Get() + /// + public class TranslationManager : SelfInstancingMonoSingleton + { + public TranslatedLanguages SelectedLanguage { get { return Language; } } + + public bool markUntranslatedStringsWithRed = true; + + private TranslatedLanguages Language; + private List originalTranslationKeyCache = new List(); + private Dictionary translations = new Dictionary(); + public string attemptToTranslate; + public List translationsTextAssets; + public TranslatedLanguageFontPairings defaultTranslatedLanguageFontPairings; + + protected override void Awake() + { + base.Awake(); + + Language = Browser.Instance.uiConfig.Language; + + ForceChangeLanguage(Language); + } + + /// + /// Change language to whatever TranslatedLanguages allows. + /// This method will automatically translate everything. + /// + public void ChangeLanguage(TranslatedLanguages language) + { + if(language == SelectedLanguage) + { + Debug.Log($"Already set to {language}!"); + return; + } + + Debug.Log($"Setting language to {language} from {SelectedLanguage}"); + ForceChangeLanguage(language); + } + + private void ForceChangeLanguage(TranslatedLanguages language) + { + this.Language = language; + translations = BuildLanguageDictionary(language); + ApplyTranslations(); + } + + /// + /// Get a translation. + /// Example 1: + /// TranslationManager.Instance.Get("Mod installation failed") + /// + /// Example 2: + /// TranslationManager.Instance.Get("Mod installation failed because {1}", {"my dog ate it."}) + /// returns a translation with the meaning ""Mod installation failed because my dog ate it." + /// + /// The Get function will automatically replace anything inside a {} using specified values, sequentially. + /// + /// + /// The translation, or the key of the translation on fail. + public string Get(string key, params string[] values) => + Get(translations, key, values); + + + public TextAsset GetTranslationResource(TranslatedLanguages language) => + translationsTextAssets.FirstOrDefault(x => x.name == language.ToString()); + + private static string GetQuotedString(string input) + { + int startIndex = input.IndexOf('"'); + int endIndex = input.LastIndexOf('"'); + return input.Substring(startIndex + 1, endIndex - startIndex - 1); + } + + /// + /// Returns a dictionary with the using the specified language + /// + public static Dictionary BuildLanguageDictionary(TranslatedLanguages language) + { + TextAsset textAsset = Instance.GetTranslationResource(language); + Dictionary translations = new Dictionary(); + + if(textAsset != null) + { + StringReader reader = new StringReader(textAsset.text); + string key = null; + string line; + string text = ""; + while((line = reader.ReadLine()) != null) + { + if(line.StartsWith("msgid")) + { + key = null; + key = GetQuotedString(line); + text = ""; + } + else if(line.StartsWith("msgstr") && key != null) + { + text = GetQuotedString(line); + + if(translations.ContainsKey(key)) + { + Debug.LogWarning($"Warning: value for {key} - {translations[key]} already exists"); + translations[key] = text; + } + else + translations.Add(key, text); + + } + else if(line.StartsWith("\"")) + { + //Multi-line input, just add to translation + text += "\n" + GetQuotedString(line); + translations[key] = text; + } + else if(line.StartsWith("#")) + { + //comment, ignore + } + } + + reader.Close(); + } + else + { + Debug.Log("Text asset for .po file is null?"); + } + return translations; + } + + /// + /// Translate everything that is currently hooked in. + /// + private void ApplyTranslations() + { + SimpleMessageHub.Instance.Publish(new MessageUpdateTranslations()); + } + + /// + /// Translate an ITranslatable. Contains some extra logic to properly identify an object + /// that fails translation. + /// + /// + public void Translate(ITranslatable translatable) + { + if(translations.TryGetValue(translatable.GetReference(), out string translation)) + { + translatable.SetTranslation(translation); + return; + } +#if UNITY_EDITOR + if(markUntranslatedStringsWithRed) + { + translatable.MarkAsUntranslated(); + } +#endif + Debug.LogWarning($"The translation for {translatable.GetReference()} on gameobject identifier {translatable.Identifier} path: {translatable.TransformPath}"); + } + + /// + /// Immediately get a translated string, using a given translation dictionary. + /// + public static string Get(Dictionary translations, string key, params string[] values) + { + string translation = key.Trim(); + + if(translation != null && translations.TryGetValue(key, out translation)) + { + if(values == null || values.Length == 0) + { + return translation; + } + + return ReplaceParameters(translation, values); + } + + Debug.LogWarning($"Unable to find translation for key: \"{key}\""); + return "" + key + ""; + } + + /// + /// Replace anything inside a {} in a string, given a list of values, and return the finished string. + /// + public static string ReplaceParameters(string text, string[] values) + { + string originalText = text; + int i = 0; + int indexOfClammer = text.IndexOf('{'); + + try + { + while(indexOfClammer != -1) + { + int indexOfEndClammer = text.IndexOf('}') + 1; + string replacedString = text.Substring(indexOfClammer, indexOfEndClammer - indexOfClammer); + text = text.Replace(replacedString, values[i]); + + indexOfClammer = text.IndexOf('{'); + i++; + } + } + catch(Exception ex) + { + //You likely just forgot to add as many {}'s as you have input values! + Debug.LogError($"translating {originalText} gives error:\n{ex}"); + } + + if(i != values.Length) + { + Debug.LogWarning($"String of \"{text}\" parameter count did not match expected parameter count, ({values.Length} "); + return "" + text + ""; + } + + return text; + } + + +#if UNITY_EDITOR + /// + /// Append a new translation directly into the translation file. + /// Please note: Due to Unity being finicky, you may need to have this file open in for example Sublime + /// otherwise Unity will discard changes. Workaround required, but the solution is good enough for now. + /// + public static string AppendTranslation(TranslatedLanguages language, string keyAndContent) + { + TextAsset textAsset = Instance.GetTranslationResource(language); + keyAndContent = keyAndContent.Trim(); + string addition = $"\nmsgid \"{keyAndContent}\"\nmsgstr \"{keyAndContent}\" \n"; + + File.WriteAllText(AssetDatabase.GetAssetPath(textAsset), textAsset.text + addition); + EditorUtility.SetDirty(textAsset); + + return keyAndContent; + } + + /// + /// For testing purposes, sometimes you need to swap languages on the fly inside the editor. + /// + [ExposeMethodInEditor] + public void TestChangeLanguageToSwedishRuntimeOnly() + { + Language = TranslatedLanguages.Swedish; + ForceChangeLanguage(Language); + } + + /// + /// For testing purposes, sometimes you need to swap languages on the fly inside the editor. + /// + [ExposeMethodInEditor] + public void TestChangeLanguageToEnglishRuntimeOnly() + { + Language = TranslatedLanguages.English; + ForceChangeLanguage(Language); + } + + [ExposeMethodInEditor] + public void AttemptToTranslateInput() + { + Debug.Log("Attempting to translate input"); + var output = Get(attemptToTranslate); + Debug.Log(output); + } + + [Header("Debug")] + public List untranslatedStringsRuntime; + + [Serializable] + public class DebugUntranslatedStrings + { + public string name; + public TextMeshProUGUI item; + + public override string ToString() => $"[{item.name}] {item.text}\n{item.transform.FullPath()}"; + } + + [ExposeMethodInEditor] + public void TrackDownUntranslatedStringsRuntime() + { + untranslatedStringsRuntime = Utility.FindEverythingInScene().Select(x => + { + if(x.GetComponent() == null) + { + var v = new DebugUntranslatedStrings + { + name = $"[{x.name}] {x.text}", + item = x + }; + return v; + } + + return null; + }) + .Where(x => x != null) + .ToList(); + + Debug.Log($"There are {untranslatedStringsRuntime.Count} TextMeshProUGUIs that are untranslated. You can see them in the list untranslatedStringsRuntime.\nSome of them are likely translated directly via code."); + } +#endif + + } +} diff --git a/UI/Translations/TranslationManager.cs.meta b/UI/Translations/TranslationManager.cs.meta new file mode 100644 index 0000000..4eac789 --- /dev/null +++ b/UI/Translations/TranslationManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a5880547a3785034eb3020c7e7a48fac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Translations/UiTranslatorTest.cs b/UI/Translations/UiTranslatorTest.cs new file mode 100644 index 0000000..7385ce9 --- /dev/null +++ b/UI/Translations/UiTranslatorTest.cs @@ -0,0 +1,33 @@ +using UnityEngine; +using TMPro; +using ModIO.Util; +#if UNITY_EDITOR +#endif + +namespace ModIOBrowser.Implementation +{ + public class UiTranslatorTest : MonoBehaviour + { + public TMP_Text testText; +#pragma warning disable 0649 //it is allocated + private Translation reference; +#pragma warning restore 0649 + + + private void Awake() + { + Translation.Get(reference, "Subscribed", s => + { + Debug.Log("setting " + s); + testText.text = s; + testText.ForceMeshUpdate(true); + }); + } + + [ExposeMethodInEditor] + public void PokeTranslator() + { + SimpleMessageHub.Instance.Publish(new MessageUpdateTranslations()); + } + } +} diff --git a/UI/Translations/UiTranslatorTest.cs.meta b/UI/Translations/UiTranslatorTest.cs.meta new file mode 100644 index 0000000..8963043 --- /dev/null +++ b/UI/Translations/UiTranslatorTest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0e364f920baeabc4baa22b3f7e85faba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/UiConfig.asset b/UI/UiConfig.asset new file mode 100644 index 0000000..799cf17 --- /dev/null +++ b/UI/UiConfig.asset @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 064fc74cdbf63b94d96be3341706d869, type: 3} + m_Name: UiConfig + m_EditorClassIdentifier: + GameCoreUsesVKDelegate: 1 + PlayStationUsesVKDelegate: 1 + SwitchUsesVKDelegate: 0 + StandaloneUsesVKDelegate: 1 + Language: 0 + GlyphPlatform: 0 + volume: 1 diff --git a/UI/UiConfig.asset.meta b/UI/UiConfig.asset.meta new file mode 100644 index 0000000..56be921 --- /dev/null +++ b/UI/UiConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c192283aaab7e584480ceadb08c3b4ee +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility.meta b/UI/Utility.meta new file mode 100644 index 0000000..409798c --- /dev/null +++ b/UI/Utility.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59c82fb94dda30544b6922b34e3bc91e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/CollectionProfile.cs b/UI/Utility/CollectionProfile.cs new file mode 100644 index 0000000..878e834 --- /dev/null +++ b/UI/Utility/CollectionProfile.cs @@ -0,0 +1,24 @@ +using ModIO; + +namespace ModIOBrowser.Implementation +{ + public struct CollectionProfile + { + public ModProfile modProfile; + public bool subscribed; + public bool enabled; + public int subscribers; + public string installationStatus; + public ModId id => modProfile.id; + public string name => modProfile.name; + + public CollectionProfile(ModProfile profile, bool subscribed, bool enabled, int subscribers, string installationStatus) + { + modProfile = profile; + this.subscribed = subscribed; + this.enabled = enabled; + this.subscribers = subscribers; + this.installationStatus = installationStatus; + } + } +} diff --git a/UI/Utility/CollectionProfile.cs.meta b/UI/Utility/CollectionProfile.cs.meta new file mode 100644 index 0000000..e2e4096 --- /dev/null +++ b/UI/Utility/CollectionProfile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5c615251d377d9241a5cb6be1863d2a5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/ContextMenuOption.cs b/UI/Utility/ContextMenuOption.cs new file mode 100644 index 0000000..1ad32e4 --- /dev/null +++ b/UI/Utility/ContextMenuOption.cs @@ -0,0 +1,10 @@ +using System; + +namespace ModIOBrowser +{ + internal class ContextMenuOption + { + public string nameTranslationReference; + public Action action; + } +} diff --git a/UI/Utility/ContextMenuOption.cs.meta b/UI/Utility/ContextMenuOption.cs.meta new file mode 100644 index 0000000..c4c2552 --- /dev/null +++ b/UI/Utility/ContextMenuOption.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 16bce69e6442e3147b372ac7e62bb380 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/ContextMenuPanel.cs b/UI/Utility/ContextMenuPanel.cs new file mode 100644 index 0000000..a8a80ed --- /dev/null +++ b/UI/Utility/ContextMenuPanel.cs @@ -0,0 +1,13 @@ +using UnityEngine; +using UnityEngine.EventSystems; + +namespace ModIOBrowser.Implementation +{ + public class ContextMenuPanel : MonoBehaviour, IPointerExitHandler + { + public void OnPointerExit(PointerEventData eventData) + { + gameObject.SetActive(false); + } + } +} diff --git a/UI/Utility/ContextMenuPanel.cs.meta b/UI/Utility/ContextMenuPanel.cs.meta new file mode 100644 index 0000000..e50c83a --- /dev/null +++ b/UI/Utility/ContextMenuPanel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 220575703c1ada040a914d18e37b222f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/CoroutineRunner.cs b/UI/Utility/CoroutineRunner.cs new file mode 100644 index 0000000..0e71de8 --- /dev/null +++ b/UI/Utility/CoroutineRunner.cs @@ -0,0 +1,11 @@ +using System.Collections; +using ModIO.Util; +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + class CoroutineRunner : SelfInstancingMonoSingleton + { + public Coroutine Run(IEnumerator coroutine) => StartCoroutine(coroutine); + } +} diff --git a/UI/Utility/CoroutineRunner.cs.meta b/UI/Utility/CoroutineRunner.cs.meta new file mode 100644 index 0000000..cc2fee0 --- /dev/null +++ b/UI/Utility/CoroutineRunner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 416aa34318b4144ec97e820a161a8954 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/Glyph.cs b/UI/Utility/Glyph.cs new file mode 100644 index 0000000..e4cc6fd --- /dev/null +++ b/UI/Utility/Glyph.cs @@ -0,0 +1,45 @@ +namespace ModIOBrowser.Implementation +{ + public enum Glyph + { + //Playstation / Switch / Xbox: + + //X / B / A + ACTION_BUTTONS_BOTTOM, + + //Square / Y / X + ACTION_BUTTONS_LEFT, + + //Circle / A / B + ACTION_BUTTONS_RIGHT, + + //Triangle / X / Y + ACTION_BUTTONS_UP, + + //This is an image of the button which the glyph resides on + ACTION_BUTTONS_BACKGROUND, + + //L1 / L / LB + LB, + LB_Background, + + //R1 / R / RB + RB, + RB_Background, + + //L2 / LZ / LT + LT, + LT_Background, + + //R2 / RZ / RT + RT, + RT_Background, + + //Burger / + / Burger + MENU, + MENU_Background, + + RightStick, + RightStickBackground + } +} diff --git a/UI/Utility/Glyph.cs.meta b/UI/Utility/Glyph.cs.meta new file mode 100644 index 0000000..66ba596 --- /dev/null +++ b/UI/Utility/Glyph.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb78aa6ae2b60d248abc9e3a4699c85c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/GlyphPlatforms.cs b/UI/Utility/GlyphPlatforms.cs new file mode 100644 index 0000000..81c1480 --- /dev/null +++ b/UI/Utility/GlyphPlatforms.cs @@ -0,0 +1,13 @@ +namespace ModIOBrowser.Implementation +{ + public enum GlyphPlatforms + { + PC, + XBOX, + PLAYSTATION_4, + PLAYSTATION_5, + NINTENDO_SWITCH, + NINTENDO_SWITCH_RIGHT_JOYCON, + NINTENDO_SWITCH_LEFT_JOYCON + } +} diff --git a/UI/Utility/GlyphPlatforms.cs.meta b/UI/Utility/GlyphPlatforms.cs.meta new file mode 100644 index 0000000..850ff5f --- /dev/null +++ b/UI/Utility/GlyphPlatforms.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 328b21a0af942f44786966f51b16172d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/GlyphSetting.cs b/UI/Utility/GlyphSetting.cs new file mode 100644 index 0000000..9ea963e --- /dev/null +++ b/UI/Utility/GlyphSetting.cs @@ -0,0 +1,12 @@ +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + [CreateAssetMenu(fileName = "GlyphSetting.asset", menuName = "ModIo/GlyphSetting")] + class GlyphSetting : ScriptableObject + { + public Glyph glyph; + public ColorSetterType color; + public Sprite PC, Xbox, Steamdeck, Playstation4, Playstation5, NintendoSwitch, NintendoSwitchSingleJoyCon; + } +} diff --git a/UI/Utility/GlyphSetting.cs.meta b/UI/Utility/GlyphSetting.cs.meta new file mode 100644 index 0000000..5a7714a --- /dev/null +++ b/UI/Utility/GlyphSetting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e14bacfe5e795ab49894c37ba2556411 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/Glyphable.cs b/UI/Utility/Glyphable.cs new file mode 100644 index 0000000..b89dd3f --- /dev/null +++ b/UI/Utility/Glyphable.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections; +using ModIO.Util; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + + class Glyphable : MonoBehaviour + { + public Image image; + public GlyphSetting config; + + public void OnValidate() => image = image == null ? GetComponent() : image; + + void Awake() + { + UpdateGlyphs(); + SimpleMessageHub.Instance.Subscribe(x => UpdateGlyphs()); + } + + public void UpdateGlyphs() + { + var glyph = GetGlyphFromDisplayType(); + + if(glyph != null) + { + gameObject.SetActive(true); + image.sprite = glyph; + Glyphs.Instance.SetColor(config.color, x => image.color = x); + } + else + { + gameObject.SetActive(false); + } + } + + private Sprite GetGlyphFromDisplayType() + { + switch(Glyphs.Instance.PlatformType) + { + case GlyphPlatforms.PC: return config.PC; + case GlyphPlatforms.XBOX: return config.Xbox; + case GlyphPlatforms.PLAYSTATION_4: return config.Playstation4; + case GlyphPlatforms.PLAYSTATION_5: return config.Playstation5; + case GlyphPlatforms.NINTENDO_SWITCH: return config.NintendoSwitch; + } + + Debug.LogWarning($"{gameObject.name} is missing configuration for {Glyphs.Instance.PlatformType}"); + return Glyphs.Instance.fallbackSprite; + } + } +} diff --git a/UI/Utility/Glyphable.cs.meta b/UI/Utility/Glyphable.cs.meta new file mode 100644 index 0000000..44571ba --- /dev/null +++ b/UI/Utility/Glyphable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 855c6deec25285a45b525b71db458251 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/Glyphs.cs b/UI/Utility/Glyphs.cs new file mode 100644 index 0000000..13b6972 --- /dev/null +++ b/UI/Utility/Glyphs.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using ModIO.Util; +using UnityEngine; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + class MessageGlyphUpdate : ISimpleMessage { } + + class Glyphs : SelfInstancingMonoSingleton + { + private ColorScheme colorScheme; + public GlyphPlatforms PlatformType { get; internal set; } + + public Color glyphColorFallback; + public Sprite fallbackSprite; + public Color fallbackColor = Color.white; + + private bool hasStarted = false; + + private void Start() + { + colorScheme = Browser.Instance.colorScheme; + if(this.PlatformType == default) + ChangeGlyphs(Browser.Instance.uiConfig.GlyphPlatform); + } + + public void SetColor(ColorSetterType colorSetter, Action setter) + { + StartCoroutine(InternalSetColor(colorSetter, setter)); + } + + private IEnumerator InternalSetColor(ColorSetterType colorSetter, Action setter) + { + while(!hasStarted) + { + yield return new WaitForEndOfFrame(); + } + + setter(GetColor(colorSetter)); + } + + public Color GetColor(ColorSetterType colorSetter) + { + Color color = colorScheme.GetSchemeColor(colorSetter); + return color == default(Color) ? fallbackColor : color; + } + + public void ChangeGlyphs(GlyphPlatforms platform) + { + PlatformType = platform; + SimpleMessageHub.Instance.Publish(new MessageGlyphUpdate()); + } + + [ExposeMethodInEditor] public void ChangeToPc() => ChangeGlyphs(GlyphPlatforms.PC); + [ExposeMethodInEditor] public void ChangeToXbox() => ChangeGlyphs(GlyphPlatforms.XBOX); + [ExposeMethodInEditor] public void ChangeToNintendoSwitch() => ChangeGlyphs(GlyphPlatforms.NINTENDO_SWITCH); + [ExposeMethodInEditor] public void ChangeToPs4() => ChangeGlyphs(GlyphPlatforms.PLAYSTATION_4); + [ExposeMethodInEditor] public void ChangeToPs5() => ChangeGlyphs(GlyphPlatforms.PLAYSTATION_5); + } +} diff --git a/UI/Utility/Glyphs.cs.meta b/UI/Utility/Glyphs.cs.meta new file mode 100644 index 0000000..a7f4025 --- /dev/null +++ b/UI/Utility/Glyphs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3b04e195a5bf7c94eb12b62602e2a521 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/InputFieldCoadjutant.cs b/UI/Utility/InputFieldCoadjutant.cs new file mode 100644 index 0000000..5924d27 --- /dev/null +++ b/UI/Utility/InputFieldCoadjutant.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections; +using ModIO.Util; +using TMPro; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace ModIOBrowser.Implementation +{ + /// + /// This script is attached alongside InputField components so we can detect when an input field + /// is selected so that we know when to ignore certain inputs (for example when someone is using + /// their keyboard to navigate the UI but also to type into an input field). + /// This class also helps the UI navigation to select but not go into edit mode when highlighting + /// the input field. It also calls the VirtualKeyboardDelegate from OnSubmit when a user begins + /// editing the field. + /// + internal class InputFieldCoadjutant : MonoBehaviour, ISelectHandler, IDeselectHandler, ISubmitHandler + { + [SerializeField] bool editOnFocus; + [SerializeField] string inputFieldTitle; + [SerializeField] string inputFieldPlaceholderText; + [SerializeField] Browser.VirtualKeyboardType keyboardtype = Browser.VirtualKeyboardType.Default; + [SerializeField] TMP_InputField inputField; + + void Reset() + { + inputField = GetComponent(); + } + + void OnEnable() + { + if(!Browser.Instance.uiConfig.ShouldWeUseVirtualKeyboardDelegate()) + { + Destroy(this); + } + } + + public void OnSelect(BaseEventData eventData) + { + if (Browser.Instance.uiConfig.ShouldWeUseVirtualKeyboardDelegate()) + { + if(editOnFocus) + { + OpenKeyboard(); + } + else + { + StartCoroutine(UnFocusByDefault()); + + InputReceiver.currentSelectedInputField = this; + } + } + } + + IEnumerator UnFocusByDefault() + { + yield return new WaitForEndOfFrame(); + inputField.DeactivateInputField(); + } + + public void OnDeselect(BaseEventData eventData) + { + if (Browser.Instance.uiConfig.ShouldWeUseVirtualKeyboardDelegate()) + { + if(InputReceiver.currentSelectedInputField == this) + { + InputReceiver.currentSelectedInputField = null; + } + } + } + + public void OnSubmit(BaseEventData eventData) + { + if (Browser.Instance.uiConfig.ShouldWeUseVirtualKeyboardDelegate()) + { + // Check if the user has specified an OS virtual keyboard + OpenKeyboard(); + } + } + + void OpenKeyboard() + { + // Check if the user has specified an OS virtual keyboard + Browser.OpenVirtualKeyboard?.Invoke( + inputFieldTitle, + inputField.text, + inputFieldPlaceholderText, + keyboardtype, + inputField.characterLimit, + inputField.multiLine, + OnCloseVirtualKeyboard); + } + + void OnCloseVirtualKeyboard(string text) + { + // We need to add this action to a queue to be run on the main thread because this + // callback may have come from a different thread when dealing with cross platform SDKs + MonoDispatcher.Instance.Run(() => + { + // Change the text of the input field + inputField.text = text; + + // Unselect the inputField's edit mode + StartCoroutine(UnFocusByDefault()); + }); + } + } +} diff --git a/UI/Utility/InputFieldCoadjutant.cs.meta b/UI/Utility/InputFieldCoadjutant.cs.meta new file mode 100644 index 0000000..1a7ae8d --- /dev/null +++ b/UI/Utility/InputFieldCoadjutant.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 65f053af8f7d2fc4c9ce3f4452f26201 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/MainCanvasTmp.cs b/UI/Utility/MainCanvasTmp.cs new file mode 100644 index 0000000..02b13e6 --- /dev/null +++ b/UI/Utility/MainCanvasTmp.cs @@ -0,0 +1,18 @@ +#if UNITY_EDITOR +#endif +using UnityEngine; + +//REMOVE THIS CLASS + +namespace ModIOBrowser.Implementation +{ + class MainCanvasTmp : MonoBehaviour + { + public Canvas canvas; + public static Canvas Canvas; + private void Awake() + { + Canvas = canvas; + } + } +} diff --git a/UI/Utility/MainCanvasTmp.cs.meta b/UI/Utility/MainCanvasTmp.cs.meta new file mode 100644 index 0000000..1352ba8 --- /dev/null +++ b/UI/Utility/MainCanvasTmp.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d11270c61e1f1794594a2f365c733a22 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/ModListRow.cs b/UI/Utility/ModListRow.cs new file mode 100644 index 0000000..89c758d --- /dev/null +++ b/UI/Utility/ModListRow.cs @@ -0,0 +1,222 @@ +using System.Collections; +using System.Collections.Generic; +using ModIO; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace ModIOBrowser.Implementation +{ + public class ModListRow : MonoBehaviour, ISelectHandler + { + [Header("UI Elements")] + [SerializeField] GameObject ErrorPanel; + [SerializeField] GameObject LoadingPanel; + [SerializeField] GameObject RowPanel; + [SerializeField] GameObject MainSelectableHighlights; + [SerializeField] GameObject ModListItemPrefab; + [SerializeField] Transform ModListItemContainer; + + [Header("Selectables")] + [SerializeField] Selectable AboveSelection; + [SerializeField] Selectable BelowSelection; + + internal static Vector2 currentSelectedPosition = Vector2.zero; + List items = new List(); + SearchFilter lastUsedFilter; + + public void OnSelect(BaseEventData eventData) + { + StartCoroutine(OnSelectFrameDelay()); + } + + /// + /// This is a workaround for unity not working when using .Select() inside of OnSelect() + /// + IEnumerator OnSelectFrameDelay() + { + yield return null; + SelectFromPosition(currentSelectedPosition); + } + + // The position of the selection is determined by another row, informing what the offset + // of the selection is coming from. Eg if the 3rd item in Row A is selected, when the + // selection moves down to Row B it needs to tell Row B "we are on the 3rd item" so it can + // correlate that to a relevant position in the same row, whatever that row's offset is. + public void SelectFromPosition(Vector2 position) + { + // TODO write something to re-select an item when load finished and it's already selected + + if(ErrorPanel.activeSelf) + { + // error already active? keep selection + } + else if(items.Count == 0) + { + // TODO setup an error panel for "zero mods found" + } + else + { + // iterate over each item and find the one with the closest X position + ListItem closestItem = null; + float closestDistance = -1f; + foreach(ListItem item in items) + { + float distance = Mathf.Abs(position.x - item.transform.position.x); + if(closestDistance < 0f || closestDistance > distance) + { + closestItem = item; + closestDistance = distance; + } + } + if(closestItem == null) + { + Debug.LogError("[mod.io Browser] Attempted to select a null item in ModListRow"); + } + else + { + InputNavigation.Instance.Select(closestItem.selectable); + } + } + } + + /// + /// Use this method to swipe the entire row by a full page (roughly a screen width) + /// + /// the direction of the swipe + public void SwipeRow(bool right) + { + + // Rect rect = row.rect; + // Vector2 v = row.position; + + ListItem listItemToSnapTo = null; + float posX = 0; + var width = this.RowPanel.GetComponent().rect.width; + + // find the left most item that is partially offscreen + foreach(var item in items) + { + if(item.transform is RectTransform rectTransform) + { + float radius = rectTransform.sizeDelta.x / 2f; + float offset = this.ModListItemContainer.GetComponent().anchoredPosition.x; + + //Anchored position will give the location of the item, then we add to get the right edge or subtract to get the left edge, then we must + //add an offset to determine if the current position is visible + float edgePosition = right ? rectTransform.anchoredPosition.x + radius + offset : rectTransform.anchoredPosition.x - radius + offset; + + // Check if this list item is off the left side of the screen + if(!right && edgePosition < 0) + { + // make sure it's closer than any other (if any) item we've found + if (edgePosition > posX || posX == 0) + { + posX = edgePosition; + listItemToSnapTo = item; + } + } + else if(right && edgePosition > width) + { + // make sure it's closer than other (if any) item we've found + if (edgePosition < posX || posX == 0) + { + posX = edgePosition; + listItemToSnapTo = item; + } + } + } + } + + listItemToSnapTo?.viewportRestraint?.CheckSelectionHorizontalVisibility(); + InputNavigation.Instance.Select(listItemToSnapTo?.selectable); + } + + /// + /// This method queries the API for the first 20 mods of this filter and applies them to the + /// row once it has loaded (or not loaded with an error instead) + /// + /// + public void AttemptToPopulateRowWithMods(SearchFilter filter) + { + lastUsedFilter = filter; + ErrorPanel.SetActive(false); + RowPanel.SetActive(false); + LoadingPanel.SetActive(true); + MainSelectableHighlights.SetActive(true); + ModIOUnity.GetMods(filter, GetModsResponse); + } + + public void RetryGetMods() + { + AttemptToPopulateRowWithMods(lastUsedFilter); + } + + void GetModsResponse(ResultAnd response) + { + LoadingPanel.SetActive(false); + + if(response.result.Succeeded()) + { + PopulateRowFromModPage(response.value); + } + else + { + ErrorPanel.SetActive(true); + } + } + + void PopulateRowFromModPage(ModPage page) + { + LoadingPanel.SetActive(false); + ErrorPanel.SetActive(false); + RowPanel.SetActive(true); + MainSelectableHighlights.SetActive(false); + items.Clear(); + + // TODO Set the items that can fit on screen + // TODO + + ListItem lastItem = null; + + foreach(ModProfile mod in page.modProfiles) + { + ListItem li = ListItem.GetListItem(ModListItemPrefab, ModListItemContainer, Browser.Instance.colorScheme); + li.Setup(mod); + li.SetViewportRestraint(ModListItemContainer as RectTransform, null); + Home.Instance.AddModListItemToRowDictionaryCache(li, ModListItemContainer.gameObject); + + // get left nav + Selectable leftSelectable = null; + + // setup last item onRight navigation to this item + if(lastItem != null) + { + Navigation lastNavigation = lastItem.selectable.navigation; + lastNavigation.selectOnRight = li.selectable; + lastItem.selectable.navigation = lastNavigation; + + leftSelectable = lastItem.selectable; + } + + // setup navigation + Navigation navigation = new Navigation + { + mode = Navigation.Mode.Explicit, + selectOnUp = AboveSelection, + selectOnDown = BelowSelection, + selectOnLeft = leftSelectable + }; + li.selectable.navigation = navigation; + + lastItem = li; + + items.Add(li); + } + } + + // TODO sweep left/right methods + + // TODO Add the final item for 'see more' option + } +} diff --git a/UI/Utility/ModListRow.cs.meta b/UI/Utility/ModListRow.cs.meta new file mode 100644 index 0000000..91cfef3 --- /dev/null +++ b/UI/Utility/ModListRow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c24c539ef8622a49a05be42a385d095 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/ModListRowPositionIndicator.cs b/UI/Utility/ModListRowPositionIndicator.cs new file mode 100644 index 0000000..a1a7f13 --- /dev/null +++ b/UI/Utility/ModListRowPositionIndicator.cs @@ -0,0 +1,13 @@ +using UnityEngine; +using UnityEngine.EventSystems; + +namespace ModIOBrowser.Implementation +{ + public class ModListRowPositionIndicator : MonoBehaviour, IMoveHandler + { + public void OnMove(AxisEventData eventData) + { + ModListRow.currentSelectedPosition = transform.position; + } + } +} diff --git a/UI/Utility/ModListRowPositionIndicator.cs.meta b/UI/Utility/ModListRowPositionIndicator.cs.meta new file mode 100644 index 0000000..f75bb1e --- /dev/null +++ b/UI/Utility/ModListRowPositionIndicator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e842de213b82ba4d90c8520c94f83b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/QueueRunner.cs b/UI/Utility/QueueRunner.cs new file mode 100644 index 0000000..d4db3ba --- /dev/null +++ b/UI/Utility/QueueRunner.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using ModIO.Util; +using UnityEngine; +using UnityEngine.UIElements; + + +namespace ModIOBrowser.Implementation +{ + class QueueRunner : SelfInstancingMonoSingleton + { + private List sequences = new List(); + private Coroutine coroutine; + + public void Add(Action sequence) + { + if(sequence == null) + { + return; + } + + sequences.Add(sequence); + if(coroutine == null) + { + coroutine = StartCoroutine(Run()); + } + } + + IEnumerator Run() + { + while(sequences.Count > 0) + { + yield return 0; + sequences[0](); + sequences.RemoveAt(0); + } + + coroutine = null; + } + + public void AddSpriteCreation(Texture2D texture, Action onConversion) + => Add(() => onConversion(TextureToSprite(texture))); + + private static Sprite TextureToSprite(Texture2D texture) + { + var rect = new Rect(Vector2.zero, new Vector2(texture.width, texture.height)); + var ppi = 100; + var spritemeshType = SpriteMeshType.FullRect; + var sprite = Sprite.Create(texture, rect, Vector2.zero, ppi, 0, spritemeshType); + return sprite; + } + } +} diff --git a/UI/Utility/QueueRunner.cs.meta b/UI/Utility/QueueRunner.cs.meta new file mode 100644 index 0000000..5e711cd --- /dev/null +++ b/UI/Utility/QueueRunner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6baee032a7318a949992c55927ae7566 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/RectTransformOverlap.cs b/UI/Utility/RectTransformOverlap.cs new file mode 100644 index 0000000..21d6c8b --- /dev/null +++ b/UI/Utility/RectTransformOverlap.cs @@ -0,0 +1,91 @@ +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + /// + /// Simplifies hitbox overlap logic for rect transforms + /// + /// This class exists to formalize rect transform hit logic in a way that + /// bypasses the majority of unitys "helpful" rect transform logic, to make things + /// more readable and debuggable + /// + public class RectTransformOverlap + { + //Contains in this order: top left, bottom left, bottom right, top right + Vector3[] vectors = new Vector3[4]; + + public RectTransformOverlap(RectTransform rt) + { + rt.GetWorldCorners(vectors); + } + public static explicit operator RectTransformOverlap(RectTransform rt) => new RectTransformOverlap(rt); + + //These exist for readability + public float xMin { get { return vectors[0].x; } } + public float xMax { get { return vectors[2].x; } } + public float yMin { get { return vectors[0].y; } } + public float yMax { get { return vectors[2].y; } } + public float width { get { return xMax - xMin; } } + public float height { get { return yMax - yMin; } } + + public static float DistanceFromEdgeY(RectTransformOverlap a, RectTransformOverlap b, float paddingPercentage) + { + float padding = b.height * paddingPercentage; + + // Top + if(a.yMax > b.yMax - padding) + { + return b.yMax - padding - a.yMax; + } + // Bottom + if(a.yMin < b.yMin + padding) + { + return b.yMin + padding - a.yMin; + } + return 0f; + } + + public static float DistanceFromEdgeX(RectTransformOverlap a, RectTransformOverlap b, float paddingPercentage) + { + float padding = b.width * paddingPercentage; + + // Right + if(a.xMax > b.xMax - padding) + { + return b.xMax - padding - a.xMax; + } + // Left + if(a.xMin < b.xMin + padding) + { + return b.xMin + padding - a.xMin; + } + return 0f; + } + + public bool IsOutsideOfRectY(RectTransformOverlap b, float paddingPercentage) + { + float padding = b.height * paddingPercentage; + + if(yMin < b.yMin + padding + || yMax > b.yMax - padding) + { + return true; + } + + return false; + } + + public bool IsOutsideOfRectX(RectTransformOverlap b, float paddingPercentage) + { + float padding = b.width * paddingPercentage; + + if(xMin < b.xMin + padding + || xMax > b.xMax - padding) + { + return true; + } + + return false; + } + } +} diff --git a/UI/Utility/RectTransformOverlap.cs.meta b/UI/Utility/RectTransformOverlap.cs.meta new file mode 100644 index 0000000..972f512 --- /dev/null +++ b/UI/Utility/RectTransformOverlap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c93ff1d563cdce64aa2ba95ad6c569aa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/SelectableFeatureImage.cs b/UI/Utility/SelectableFeatureImage.cs new file mode 100644 index 0000000..e32667b --- /dev/null +++ b/UI/Utility/SelectableFeatureImage.cs @@ -0,0 +1,28 @@ + +using UnityEngine; +using UnityEngine.EventSystems; + +namespace ModIOBrowser.Implementation +{ + public class SelectableFeatureImage : MonoBehaviour, IMoveHandler, ISelectHandler, IDeselectHandler + { + + public void OnMove(AxisEventData eventData) + { + if(eventData.moveDir == MoveDirection.Left) + { + Home.Instance.PageFeaturedRow(false); + } + else if(eventData.moveDir == MoveDirection.Right) + { + Home.Instance.PageFeaturedRow(true); + } + } + + public void OnSelect(BaseEventData eventData) + => Home.Instance.FeaturedItemSelect(true); + + public void OnDeselect(BaseEventData eventData) + => Home.Instance.FeaturedItemSelect(false); + } +} diff --git a/UI/Utility/SelectableFeatureImage.cs.meta b/UI/Utility/SelectableFeatureImage.cs.meta new file mode 100644 index 0000000..1b2f95a --- /dev/null +++ b/UI/Utility/SelectableFeatureImage.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bbcd964da59403d42930ac6a72f8f2c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/SubscribedProgressTab.cs b/UI/Utility/SubscribedProgressTab.cs new file mode 100644 index 0000000..f172a5f --- /dev/null +++ b/UI/Utility/SubscribedProgressTab.cs @@ -0,0 +1,160 @@ +using ModIO; +using UnityEngine; +using UnityEngine.UI; +using TMPro; +using ModIOBrowser.Implementation; +using System.Collections.Specialized; + +namespace ModIOBrowser +{ + public class SubscribedProgressTab : MonoBehaviour + { + public GameObject progressBar; + public Image progressBarFill; + public TMP_Text progressBarText; + public GameObject progressBarQueuedOutline; + public ModProfile profile; + +#pragma warning disable 0649 //it is allocated + Translation progressBarTextTranslation; +#pragma warning restore 0649 + + public void Setup(ModProfile profile) + { + this.profile = profile; + + if(Collection.Instance.IsSubscribed(profile.id, out SubscribedModStatus status)) + { + if(status == SubscribedModStatus.Installed) + { + Translation.Get(progressBarTextTranslation, "Subscribed", progressBarText); + progressBarFill.fillAmount = 1f; + progressBarQueuedOutline.SetActive(false); + } + else + { + Translation.Get(progressBarTextTranslation, "Queued", progressBarText); + progressBarFill.fillAmount = 0f; + progressBarQueuedOutline.SetActive(true); + } + progressBar.SetActive(true); + } + else + { + progressBar.SetActive(false); + progressBarQueuedOutline.SetActive(false); + } + } + + public void MimicOtherProgressTab(SubscribedProgressTab other) + { + if (other == null) + Debug.LogWarning("Other is null"); + if (progressBar == null) + Debug.LogWarning("progressBar is null"); + + progressBar.SetActive(other.progressBar.activeSelf); + progressBarFill.fillAmount = other.progressBarFill.fillAmount; + progressBarText.text = other.progressBarText.text; + progressBarQueuedOutline.SetActive(other.progressBarQueuedOutline.activeSelf); + } + + public void UpdateProgress(ProgressHandle handle) + { + if(handle == null || handle.modId != profile.id) + { + return; + } + + progressBarQueuedOutline.SetActive(false); + + if(Collection.Instance.IsSubscribed(handle.modId)) + { + progressBar.SetActive(true); + } + else + { + progressBar.SetActive(false); + } + + progressBarFill.fillAmount = handle.Progress; + + switch(handle.OperationType) + { + case ModManagementOperationType.None_AlreadyInstalled: + progressBar.SetActive(true); + Translation.Get(progressBarTextTranslation, "Subscribed", progressBarText); + break; + case ModManagementOperationType.None_ErrorOcurred: + break; + case ModManagementOperationType.Install: + progressBar.SetActive(true); + Translation.Get(progressBarTextTranslation, "Installing", progressBarText); + break; + case ModManagementOperationType.Download: + progressBar.SetActive(true); + Translation.Get(progressBarTextTranslation, "Downloading", progressBarText); + break; + case ModManagementOperationType.Uninstall: + break; + case ModManagementOperationType.Update: + progressBar.SetActive(true); + Translation.Get(progressBarTextTranslation, "Updating", progressBarText); + break; + } + } + + internal void UpdateStatus(ModManagementEventType updatedStatus, ModId id) + { + if(profile.id != id) + { + return; + } + + // Always turn this off when state changes. It will auto get turned back on if needed + progressBar.SetActive(false); + progressBarQueuedOutline.SetActive(false); + + switch(updatedStatus) + { + case ModManagementEventType.UpdateFailed: + case ModManagementEventType.InstallFailed: + case ModManagementEventType.DownloadFailed: + case ModManagementEventType.UninstallStarted: + case ModManagementEventType.Uninstalled: + case ModManagementEventType.UninstallFailed: + Translation.Get(progressBarTextTranslation, "Error", progressBarText); + progressBarFill.fillAmount = 0f; + break; + case ModManagementEventType.InstallStarted: + Translation.Get(progressBarTextTranslation, "Installing", progressBarText); + progressBarFill.fillAmount = 1f; + progressBar.SetActive(true); + break; + case ModManagementEventType.Installed: + Translation.Get(progressBarTextTranslation, "Subscribed", progressBarText); + progressBarFill.fillAmount = 1f; + progressBar.SetActive(true); + break; + case ModManagementEventType.DownloadStarted: + Translation.Get(progressBarTextTranslation, "Downloading", progressBarText); + progressBar.SetActive(true); + break; + case ModManagementEventType.Downloaded: + Translation.Get(progressBarTextTranslation, "Downloaded", progressBarText); + progressBarFill.fillAmount = 1f; + progressBar.SetActive(true); + break; + case ModManagementEventType.UpdateStarted: + Translation.Get(progressBarTextTranslation, "Updating", progressBarText); + progressBar.SetActive(true); + break; + case ModManagementEventType.Updated: + Translation.Get(progressBarTextTranslation, "Subscribed", progressBarText); + progressBarFill.fillAmount = 1f; + progressBar.SetActive(true); + break; + } + } + } +} diff --git a/UI/Utility/SubscribedProgressTab.cs.meta b/UI/Utility/SubscribedProgressTab.cs.meta new file mode 100644 index 0000000..1ed3d6c --- /dev/null +++ b/UI/Utility/SubscribedProgressTab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b9b8a49fb798dad40a7bf351ff745a1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/Tag.cs b/UI/Utility/Tag.cs new file mode 100644 index 0000000..d2bfac8 --- /dev/null +++ b/UI/Utility/Tag.cs @@ -0,0 +1,41 @@ + +namespace ModIOBrowser +{ + /// + /// Supporting struct for holding tag name along with their corresponding category name to be + /// used inside of a HashSet. + /// + internal struct Tag + { + public string category; + public string name; + + // Start is called before the first frame update + public Tag(string category, string name) + { + this.category = category; + this.name = name; + } + + public override string ToString() + { + return $"{category}: {name}"; + } + + public override bool Equals(object obj) + { + if(obj is Tag tag) + { + return tag.category == category && tag.name == name; + } + + return false; + } + + // Update is called once per frame + public override int GetHashCode() + { + return (name + category).GetHashCode(); + } + } +} diff --git a/UI/Utility/Tag.cs.meta b/UI/Utility/Tag.cs.meta new file mode 100644 index 0000000..25c266b --- /dev/null +++ b/UI/Utility/Tag.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 441782127e259cc4b85ef18a03bb0a51 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/TagJumpToSelection.cs b/UI/Utility/TagJumpToSelection.cs new file mode 100644 index 0000000..14bc371 --- /dev/null +++ b/UI/Utility/TagJumpToSelection.cs @@ -0,0 +1,92 @@ +using System.Collections.Generic; +using ModIOBrowser.Implementation; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; + +namespace ModIOBrowser +{ + public class TagJumpToSelection : MonoBehaviour, ISelectHandler + { + + public Selectable selection; + public static List selections = new List(); + static TagJumpToSelection currentCategory; + + public static void ClearCache() + { + selections.Clear(); + currentCategory = null; + } + + public void Setup() + { + selections.Add(this); + if(currentCategory == null) + { + currentCategory = this; + } + } + + public static void GoToPreviousSelection() + { + InputNavigation.Instance.Select(selections[PreviousIndex()].selection); + } + + public static void GoToNextSelection() + { + InputNavigation.Instance.Select(selections[NextIndex()].selection); + } + + static int CurrentIndex() + { + if(currentCategory == null || !selections.Contains(currentCategory)) + { + return 0; + } + return selections.IndexOf(currentCategory); + } + + static int NextIndex() + { + if(CurrentIndex() + 1 >= selections.Count) + { + return CurrentIndex(); + } + return CurrentIndex() + 1; + } + + static int PreviousIndex() + { + if(CurrentIndex() - 1 < 0) + { + return CurrentIndex(); + } + return CurrentIndex() - 1; + } + + public static bool CanTabLeft() + { + if(CurrentIndex() == 0) + { + return false; + } + return true; + } + + public static bool CanTabRight() + { + if(CurrentIndex() + 1 >= selections.Count) + { + return false; + } + return true; + } + + public void OnSelect(BaseEventData eventData) + { + currentCategory = this; + SearchPanel.Instance.UpdateBumperIcons(); + } + } +} diff --git a/UI/Utility/TagJumpToSelection.cs.meta b/UI/Utility/TagJumpToSelection.cs.meta new file mode 100644 index 0000000..a84856e --- /dev/null +++ b/UI/Utility/TagJumpToSelection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e0c7d0d890a09344f9e892339799b7e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/TransformExtensions.cs b/UI/Utility/TransformExtensions.cs new file mode 100644 index 0000000..9b30286 --- /dev/null +++ b/UI/Utility/TransformExtensions.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + static class TransformExtensions + { + public static string FullPath(this Transform t) + { + Transform current = t; + string output = current.name; + + while(current != null) + { + if(current.parent == null) + { + return output; + } + output = current.parent.name + "\\" + output; + current = current.parent; + } + + return output; + } + } +} diff --git a/UI/Utility/TransformExtensions.cs.meta b/UI/Utility/TransformExtensions.cs.meta new file mode 100644 index 0000000..4895b7e --- /dev/null +++ b/UI/Utility/TransformExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28a151954b8c3054ab1ad681b15ec6c9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/ViewportRestraint.cs b/UI/Utility/ViewportRestraint.cs new file mode 100644 index 0000000..3558fe8 --- /dev/null +++ b/UI/Utility/ViewportRestraint.cs @@ -0,0 +1,143 @@ +using System.Collections; +using UnityEngine; +using UnityEngine.EventSystems; + +namespace ModIOBrowser.Implementation +{ + public class ViewportRestraint : MonoBehaviour, ISelectHandler + { + public float PercentPaddingHorizontal = 0.05f; + public float PercentPaddingVertical = 0.25f; + + public bool adjustHorizontally = false; + public bool adjustVertically = true; + static float transitionTime = 0.25f; + + public RectTransform Viewport; + + // These containers are what is getting moved in the adjustment check + public RectTransform DefaultViewportContainer; + public RectTransform HorizontalViewportContainer; + +#pragma warning disable 0649 + //This variable is infact allocated! + static IEnumerator HorizontalTransitionCoroutine; +#pragma warning restore 0649 + + public void OnSelect(BaseEventData eventData) + { + // This may be true when using mouse and keyboard + if(InputNavigation.Instance.mouseNavigation) + { + return; + } + + if(adjustVertically) + { + CheckSelectionVerticalVisibility(); + } + else if(adjustHorizontally) + { + CheckSelectionHorizontalVisibility(); + } + } + + void BeginTransition(IEnumerator coroutineHandle, IEnumerator coroutine, Vector2 containersNewTargetPosition) + { + if(coroutineHandle != null) + { + StopCoroutine(coroutineHandle); + } + + // run a new movement coroutine + coroutineHandle = coroutine; + StartCoroutine(coroutineHandle); + } + + public void CheckSelectionHorizontalVisibility() + { + RectTransform rt = transform as RectTransform; + RectTransformOverlap rto = new RectTransformOverlap(rt); + + RectTransformOverlap viewport = new RectTransformOverlap(Viewport ?? Home.Instance.BrowserPanel.transform as RectTransform); + + if(rto.IsOutsideOfRectX(viewport, PercentPaddingHorizontal)) + { + float distance = RectTransformOverlap.DistanceFromEdgeX(rto, viewport, PercentPaddingHorizontal); + + Vector2 containerPosition = HorizontalViewportContainer == null + ? DefaultViewportContainer.position + : HorizontalViewportContainer.position; + + Vector2 targetPosition = new Vector2( + containerPosition.x + distance, + containerPosition.y); + + BeginTransition(HorizontalTransitionCoroutine, + TransitionHorizontally(targetPosition, HorizontalViewportContainer ?? DefaultViewportContainer), + targetPosition); + } + } + + public void CheckSelectionVerticalVisibility() + { + RectTransform rt = transform as RectTransform; + RectTransformOverlap rto = new RectTransformOverlap(rt); + + RectTransformOverlap viewport = new RectTransformOverlap(Viewport ?? Home.Instance.BrowserPanel.transform as RectTransform); + + if(rto.IsOutsideOfRectY(viewport, PercentPaddingVertical)) + { + float distance = RectTransformOverlap.DistanceFromEdgeY(rto, viewport, PercentPaddingVertical); + + Vector2 targetPosition = new Vector2( + DefaultViewportContainer.position.x, + DefaultViewportContainer.position.y + distance); + + BeginTransition(HorizontalTransitionCoroutine, + TransitionVertically(targetPosition, DefaultViewportContainer), + targetPosition); + } + } + + static IEnumerator Transition(Vector2 end, Transform parent, bool lockX, bool lockY) + { + Vector2 start = parent.position; + Vector2 distance = end - start; + Vector2 current; + float timePassed = 0f; + float time; + + while(timePassed <= transitionTime) + { + timePassed += Time.fixedDeltaTime; + time = timePassed / transitionTime; + current = start; + current += distance * time; + + //The locks are super important. If you don't lock according to axis you can get strange behaviours + //if you move left / right AND up / down at the same time. + + if(lockX) + current.x = parent.position.x; + + if(lockY) + current.y = parent.position.y; + + parent.position = current; + + yield return new WaitForSecondsRealtime(0.01f); + } + } + + static IEnumerator TransitionHorizontally(Vector2 end, Transform parent) + { + yield return Transition(end, parent, false, true); + } + + static IEnumerator TransitionVertically(Vector2 end, Transform parent) + { + yield return Transition(end, parent, true, false); + } + } +} diff --git a/UI/Utility/ViewportRestraint.cs.meta b/UI/Utility/ViewportRestraint.cs.meta new file mode 100644 index 0000000..043a8c3 --- /dev/null +++ b/UI/Utility/ViewportRestraint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 78a172db96e209b41a0f30a5676688e3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: 5b5bfdc18aea28047bb94f3d28cfdf59, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/WebBrowser.meta b/UI/Utility/WebBrowser.meta new file mode 100644 index 0000000..dab97c5 --- /dev/null +++ b/UI/Utility/WebBrowser.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1d009b73dbe720d4a905226c293f22f5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Utility/WebBrowser/WebBrowser.cs b/UI/Utility/WebBrowser/WebBrowser.cs new file mode 100644 index 0000000..38c2885 --- /dev/null +++ b/UI/Utility/WebBrowser/WebBrowser.cs @@ -0,0 +1,14 @@ +using UnityEngine; + +namespace ModIOBrowser.Implementation +{ + public static partial class WebBrowser + { +#if UNITY_EDITOR || UNITY_STANDALONE || UNITY_ANDROID || UNITY_IOS || UNITY_WSA + public static void OpenWebPage(string url) + { + Application.OpenURL(url); + } +#endif + } +} diff --git a/UI/Utility/WebBrowser/WebBrowser.cs.meta b/UI/Utility/WebBrowser/WebBrowser.cs.meta new file mode 100644 index 0000000..67120a6 --- /dev/null +++ b/UI/Utility/WebBrowser/WebBrowser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 145ebcc2f626b354bbb91fc37d6848fb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/modio.UI.asmdef b/UI/modio.UI.asmdef new file mode 100644 index 0000000..f341f07 --- /dev/null +++ b/UI/modio.UI.asmdef @@ -0,0 +1,20 @@ +{ + "name": "modio.UI", + "references": [ + "modio.UnityPlugin", + "Unity.TextMeshPro", + "Unity.GameCore", + "NintendoSDK", + "Unity.PSN.PS5.Runtime", + "Unity.InputSystem" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/UI/modio.UI.asmdef.meta b/UI/modio.UI.asmdef.meta new file mode 100644 index 0000000..c2fd124 --- /dev/null +++ b/UI/modio.UI.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8cbf66468884dde4caeb56bbf6de9389 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/sfx_Click1.wav b/UI/sfx_Click1.wav new file mode 100644 index 0000000000000000000000000000000000000000..d7fd909bef4d7e7c603cdcab3ea2813f683da083 GIT binary patch literal 61790 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 literal 0 HcmV?d00001 diff --git a/UI/sfx_Click1.wav.meta b/UI/sfx_Click1.wav.meta new file mode 100644 index 0000000..05626b9 --- /dev/null +++ b/UI/sfx_Click1.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 1d0b2ded031fc884897ca4e1a9f9d806 +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/sfx_Rollover1.wav b/UI/sfx_Rollover1.wav new file mode 100644 index 0000000000000000000000000000000000000000..e3e0ca7281284f517ae7ccfdb16781d0f3aa9176 GIT binary patch literal 61790 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

~Z#~D89D4{wB({Q^gkLY{#mf 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 I_lQRPKbt>MssI20 literal 0 HcmV?d00001 diff --git a/UI/Fonts/EuclidCircularB-MediumItalic.otf.meta b/UI/Fonts/EuclidCircularB-MediumItalic.otf.meta new file mode 100644 index 0000000..2c67fca --- /dev/null +++ b/UI/Fonts/EuclidCircularB-MediumItalic.otf.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 83d2d1a3bf476424ab801476bb0f4664 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontName: Euclid Circular B + fontNames: + - Euclid Circular B + fallbackFontReferences: + - {fileID: 12800000, guid: 0526f5407dc9f0e46a5d3d5442ae8399, type: 3} + - {fileID: 12800000, guid: 45e963d45433f094a8634b334e9ede98, type: 3} + - {fileID: 12800000, guid: 313daa1a98f6ab5429c067e7dd5e8827, type: 3} + - {fileID: 12800000, guid: 0774b14b39d939b4f80ff528506c94ba, type: 3} + - {fileID: 12800000, guid: 07b0aa7e74149a94cb7ce0ec8ce6da47, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/EuclidCircularB-Regular.otf b/UI/Fonts/EuclidCircularB-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..ca09e0424b7f0bf469e4a01421e93caffbd9e54d GIT binary patch literal 115168 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 M#-pL~SM;d=4{rWZ%>V!Z literal 0 HcmV?d00001 diff --git a/UI/Fonts/EuclidCircularB-Regular.otf.meta b/UI/Fonts/EuclidCircularB-Regular.otf.meta new file mode 100644 index 0000000..317ecbc --- /dev/null +++ b/UI/Fonts/EuclidCircularB-Regular.otf.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 0774b14b39d939b4f80ff528506c94ba +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontName: Euclid Circular B + fontNames: + - Euclid Circular B + fallbackFontReferences: + - {fileID: 12800000, guid: 0526f5407dc9f0e46a5d3d5442ae8399, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/EuclidCircularB-RegularItalic.otf b/UI/Fonts/EuclidCircularB-RegularItalic.otf new file mode 100644 index 0000000000000000000000000000000000000000..5af11569355d4b0741d93d88db95b23b8732d9cf GIT binary patch literal 119480 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 a&+EA3)s1fFelYj7?#pP1%GY+$`2Po_r@k2g literal 0 HcmV?d00001 diff --git a/UI/Fonts/EuclidCircularB-RegularItalic.otf.meta b/UI/Fonts/EuclidCircularB-RegularItalic.otf.meta new file mode 100644 index 0000000..cb5f468 --- /dev/null +++ b/UI/Fonts/EuclidCircularB-RegularItalic.otf.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: da2fe288b7d8e4045bc7d0e845d7a885 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontName: Euclid Circular B + fontNames: + - Euclid Circular B + fallbackFontReferences: + - {fileID: 12800000, guid: 0526f5407dc9f0e46a5d3d5442ae8399, type: 3} + - {fileID: 12800000, guid: 83d2d1a3bf476424ab801476bb0f4664, type: 3} + - {fileID: 12800000, guid: 45e963d45433f094a8634b334e9ede98, type: 3} + - {fileID: 12800000, guid: 313daa1a98f6ab5429c067e7dd5e8827, type: 3} + - {fileID: 12800000, guid: 0774b14b39d939b4f80ff528506c94ba, type: 3} + - {fileID: 12800000, guid: a4d67c6bcb327e042ad6e7a2c316b181, type: 3} + - {fileID: 12800000, guid: 07b0aa7e74149a94cb7ce0ec8ce6da47, type: 3} + - {fileID: 12800000, guid: cbd343bf70f8a0046ba4ed534367cd1b, type: 3} + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UI/Fonts/EuclidCircularB-Semibold.otf b/UI/Fonts/EuclidCircularB-Semibold.otf new file mode 100644 index 0000000000000000000000000000000000000000..8f1145d2c991971b462e01b0d5aa277455d685e3 GIT binary patch literal 117828 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

XCVZ%HF563w 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